Added UserInfoCommand
This commit is contained in:
parent
463874a024
commit
09e0db05d9
@ -4,6 +4,7 @@ import eu.mhsl.craftattack.spawn.appliance.Appliance;
|
|||||||
import eu.mhsl.craftattack.spawn.appliances.adminMarker.AdminMarker;
|
import eu.mhsl.craftattack.spawn.appliances.adminMarker.AdminMarker;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.chatMessages.ChatMessages;
|
import eu.mhsl.craftattack.spawn.appliances.chatMessages.ChatMessages;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.countdown.Countdown;
|
import eu.mhsl.craftattack.spawn.appliances.countdown.Countdown;
|
||||||
|
import eu.mhsl.craftattack.spawn.appliances.debug.Debug;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.tablist.Tablist;
|
import eu.mhsl.craftattack.spawn.appliances.tablist.Tablist;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.titleClear.TitleClear;
|
import eu.mhsl.craftattack.spawn.appliances.titleClear.TitleClear;
|
||||||
import eu.mhsl.craftattack.spawn.config.Configuration;
|
import eu.mhsl.craftattack.spawn.config.Configuration;
|
||||||
@ -32,6 +33,8 @@ public final class Main extends JavaPlugin {
|
|||||||
new Countdown(),
|
new Countdown(),
|
||||||
new Tablist(),
|
new Tablist(),
|
||||||
new ChatMessages()
|
new ChatMessages()
|
||||||
|
new ChatMessages(),
|
||||||
|
new Debug()
|
||||||
);
|
);
|
||||||
Bukkit.getLogger().info("Loading appliances...");
|
Bukkit.getLogger().info("Loading appliances...");
|
||||||
appliances.forEach(appliance -> {
|
appliances.forEach(appliance -> {
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.appliances.debug;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.appliance.Appliance;
|
||||||
|
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
|
||||||
|
import eu.mhsl.craftattack.spawn.appliances.debug.command.UserInfoCommand;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
public class Debug extends Appliance {
|
||||||
|
@Override
|
||||||
|
protected @NotNull List<ApplianceCommand<?>> commands() {
|
||||||
|
return List.of(new UserInfoCommand());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.appliances.debug.command;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
|
||||||
|
import eu.mhsl.craftattack.spawn.appliances.debug.Debug;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.event.ClickEvent;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
public class UserInfoCommand extends ApplianceCommand<Debug> {
|
||||||
|
public UserInfoCommand() {
|
||||||
|
super("userInfo");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
|
if(args.length != 1) {
|
||||||
|
sender.sendMessage(Component.text("Bitte gib einen Nutzernamen an.", NamedTextColor.RED));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
OfflinePlayer player = Bukkit.getOfflinePlayer(args[0]);
|
||||||
|
|
||||||
|
sender.sendMessage(
|
||||||
|
Component.text()
|
||||||
|
.appendNewline()
|
||||||
|
.append(Component.text("Informationen zu: ", NamedTextColor.GOLD))
|
||||||
|
.append(
|
||||||
|
Component
|
||||||
|
.text(Objects.requireNonNull(player.getName()), NamedTextColor.YELLOW)
|
||||||
|
.clickEvent(ClickEvent.copyToClipboard(Objects.requireNonNull(player.getName())))
|
||||||
|
)
|
||||||
|
.appendNewline()
|
||||||
|
.append(
|
||||||
|
Component
|
||||||
|
.text("UUID: " + player.getUniqueId(), NamedTextColor.GRAY)
|
||||||
|
.clickEvent(ClickEvent.copyToClipboard(player.getUniqueId().toString()))
|
||||||
|
)
|
||||||
|
.appendNewline()
|
||||||
|
.append(
|
||||||
|
Component
|
||||||
|
.text("Erster Besuch: " + formatUnixTimestamp(player.getFirstPlayed()), NamedTextColor.GRAY)
|
||||||
|
.clickEvent(ClickEvent.copyToClipboard(String.valueOf(player.getFirstPlayed())))
|
||||||
|
)
|
||||||
|
.appendNewline()
|
||||||
|
.append(
|
||||||
|
Component
|
||||||
|
.text("Letzter Besuch: " + formatUnixTimestamp(player.getLastSeen()), NamedTextColor.GRAY)
|
||||||
|
.clickEvent(ClickEvent.copyToClipboard(String.valueOf(player.getLastSeen())))
|
||||||
|
)
|
||||||
|
.appendNewline()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
|
if(args.length < 2) {
|
||||||
|
return Stream.concat(
|
||||||
|
Bukkit.getOnlinePlayers().stream().map(Player::getName),
|
||||||
|
Arrays.stream(Bukkit.getOfflinePlayers()).map(OfflinePlayer::getName)
|
||||||
|
).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String formatUnixTimestamp(long timestamp) {
|
||||||
|
DateFormat format = new SimpleDateFormat("E dd.MM.yyyy H:m:s");
|
||||||
|
return format.format(new Date(timestamp));
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user