refactor: generator minigame system (gui + text), fix color codes, holograms, messages, & config
This commit is contained in:
parent
957ab4a5a2
commit
7c7562a8d4
48 changed files with 1628 additions and 733 deletions
|
|
@ -1,10 +1,6 @@
|
|||
package dev.loki.command;
|
||||
|
||||
import dev.loki.config.LocationsConfig;
|
||||
import dev.loki.mdbd;
|
||||
import dev.loki.util.TextUtil;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
|
@ -27,13 +23,15 @@ public class DBDAdminCommand implements TabExecutor {
|
|||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String label, @NotNull String[] args) {
|
||||
var messages = plugin.getConfigManager().getMessages();
|
||||
|
||||
if (!sender.hasPermission("mdbd.admin")) {
|
||||
sender.sendMessage(Component.text("Нет прав!", NamedTextColor.RED));
|
||||
sender.sendMessage(messages.get("cmd.no-permission"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!(sender instanceof Player player)) {
|
||||
sender.sendMessage(Component.text("Только игроки!", NamedTextColor.RED));
|
||||
sender.sendMessage(messages.get("cmd.players-only"));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -64,14 +62,14 @@ public class DBDAdminCommand implements TabExecutor {
|
|||
case "killer-spawn", "killerspawn" -> listType(player, "Спавн киллера", locations.getKillerSpawns());
|
||||
case "survivor-spawn", "survivorspawn" -> listType(player, "Спавн выживших", locations.getSurvivorSpawns());
|
||||
default -> {
|
||||
player.sendMessage(TextUtil.color("<#FF0000>Неизвестный тип: " + args[1]));
|
||||
player.sendMessage(plugin.getConfigManager().getMessages().get("dbdadmin.unknown-type", args[1]));
|
||||
yield true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Показать всё
|
||||
player.sendMessage(TextUtil.color("<#FF6B00>=== Все установленные объекты ==="));
|
||||
player.sendMessage(plugin.getConfigManager().getMessages().get("dbdadmin-list.header"));
|
||||
|
||||
listType(player, "Генераторы", locations.getGenerators());
|
||||
listType(player, "Крюки", locations.getHooks());
|
||||
|
|
@ -83,24 +81,24 @@ public class DBDAdminCommand implements TabExecutor {
|
|||
}
|
||||
|
||||
private boolean listType(Player player, String label, List<Location> locations) {
|
||||
var messages = plugin.getConfigManager().getMessages();
|
||||
if (locations.isEmpty()) {
|
||||
player.sendMessage(TextUtil.color("<#808000>" + label + ": нет"));
|
||||
player.sendMessage(messages.get("dbdadmin-list.none", label));
|
||||
return true;
|
||||
}
|
||||
player.sendMessage(TextUtil.color("<#FFD700>" + label + " (" + locations.size() + "):"));
|
||||
player.sendMessage(messages.get("dbdadmin-list.count", label, locations.size()));
|
||||
for (int i = 0; i < locations.size(); i++) {
|
||||
Location loc = locations.get(i);
|
||||
player.sendMessage(TextUtil.color(String.format(
|
||||
"<#00CED1> #%d %s [%.1f, %.1f, %.1f]",
|
||||
player.sendMessage(messages.get("dbdadmin-list.entry",
|
||||
i + 1, loc.getWorld().getName(), loc.getX(), loc.getY(), loc.getZ()
|
||||
)));
|
||||
));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean handleWorld(Player player, String[] args) {
|
||||
if (args.length < 2) {
|
||||
player.sendMessage(TextUtil.color("<#FF0000>Использование: /dbdadmin world <game|название мира>"));
|
||||
player.sendMessage(plugin.getConfigManager().getMessages().get("dbdadmin-list.world-usage"));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -110,27 +108,28 @@ public class DBDAdminCommand implements TabExecutor {
|
|||
if (worldArg.equals("game")) {
|
||||
target = plugin.getLobbyManager().getGameWorld();
|
||||
if (target == null) {
|
||||
player.sendMessage(TextUtil.color("<#FF0000>Мир game не загружен!"));
|
||||
player.sendMessage(plugin.getConfigManager().getMessages().get("dbdadmin-list.world-not-found"));
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
target = org.bukkit.Bukkit.getWorld(args[1]);
|
||||
if (target == null) {
|
||||
player.sendMessage(TextUtil.color("<#FF0000>Мир не найден: " + args[1]));
|
||||
player.sendMessage(plugin.getConfigManager().getMessages().get("dbdadmin-list.world-not-exist", args[1]));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
player.teleport(target.getSpawnLocation());
|
||||
player.sendMessage(TextUtil.color("<#00FF00>Телепортирован в мир: <#FFD700>" + target.getName()));
|
||||
player.sendMessage(plugin.getConfigManager().getMessages().get("dbdadmin-list.world-teleport", target.getName()));
|
||||
return true;
|
||||
}
|
||||
|
||||
private void sendUsage(CommandSender sender) {
|
||||
sender.sendMessage(TextUtil.color("<#FF6B00>=== DBD Admin ==="));
|
||||
sender.sendMessage(TextUtil.color("<#FFD700>/dbdadmin list — Список всех объектов"));
|
||||
sender.sendMessage(TextUtil.color("<#FFD700>/dbdadmin list <тип> — Список по типу"));
|
||||
sender.sendMessage(TextUtil.color("<#FFD700>/dbdadmin world <game|мир> — Телепорт в мир"));
|
||||
var messages = plugin.getConfigManager().getMessages();
|
||||
sender.sendMessage(messages.get("usage.admin-list-header"));
|
||||
sender.sendMessage(messages.get("usage.admin-list-list"));
|
||||
sender.sendMessage(messages.get("usage.admin-list-type"));
|
||||
sender.sendMessage(messages.get("usage.admin-world"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue