implement PlayerArgumentType
implement OfflinePlayerArgumentType
This commit is contained in:
parent
d936a9246a
commit
dc5dd62b6e
2 changed files with 45 additions and 2 deletions
|
|
@ -0,0 +1,40 @@
|
|||
package de.kentoj.kencommandapi.type;
|
||||
|
||||
import de.kentoj.kencommandapi.api.processing.CommandContext;
|
||||
import de.kentoj.kencommandapi.api.structure.argument.ArgumentType;
|
||||
import de.kentoj.kencommandapi.api.structure.argument.SuggestionProvider;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
// TODO
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class OfflinePlayerArgumentType implements ArgumentType<OfflinePlayer> {
|
||||
|
||||
@Getter(lazy = true)
|
||||
private static final OfflinePlayerArgumentType instance = new OfflinePlayerArgumentType();
|
||||
|
||||
@Override
|
||||
public OfflinePlayer parseInput(String string) {
|
||||
OfflinePlayer player = Bukkit.getPlayer(string);
|
||||
if (player == null) {
|
||||
try {
|
||||
player = Bukkit.getOfflinePlayer(UUID.fromString(string));
|
||||
} catch (IllegalArgumentException ex) {
|
||||
throw new RuntimeException("Not a UUID or online player -- " + string);
|
||||
}
|
||||
}
|
||||
if (!player.hasPlayedBefore()) throw new RuntimeException("Unknown player -- " + string);
|
||||
return player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuggestionProvider<?> defaultSuggestionProvider() {
|
||||
return (SuggestionProvider<CommandContext<OfflinePlayer>>) context -> Set.of();
|
||||
}
|
||||
}
|
||||
|
|
@ -4,16 +4,19 @@ import de.kentoj.kencommandapi.api.processing.CommandContext;
|
|||
import de.kentoj.kencommandapi.api.structure.argument.ArgumentType;
|
||||
import de.kentoj.kencommandapi.api.structure.argument.SuggestionProvider;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
// TODO
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class PlayerArgumentType implements ArgumentType<Player> {
|
||||
|
||||
@Getter(lazy = true)
|
||||
private static final PlayerArgumentType instance = new PlayerArgumentType();
|
||||
|
||||
@Override
|
||||
public Player parseInput(String string) {
|
||||
var player = Bukkit.getPlayer(string);
|
||||
|
|
@ -23,6 +26,6 @@ public class PlayerArgumentType implements ArgumentType<Player> {
|
|||
|
||||
@Override
|
||||
public SuggestionProvider<?> defaultSuggestionProvider() {
|
||||
return (SuggestionProvider<CommandContext>) context -> Set.of();
|
||||
return (SuggestionProvider<CommandContext<Player>>) context -> Set.of();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue