feat(event): implement event management commands and status handling
- Add complete event command functionality including start/end/status management - Implement event status tracking in TrixinityEvent class with getter/setter - Update placeholder expansion to support event status and current eventer - Modify ClearEventerCommand and EventerCommand to properly handle eventer role - Remove unused permissions and clean up plugin.yml - Add tab completion for event commands
This commit is contained in:
@@ -17,6 +17,7 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||||||
*/
|
*/
|
||||||
public class TrixinityEvent extends JavaPlugin {
|
public class TrixinityEvent extends JavaPlugin {
|
||||||
private static volatile TrixinityEvent instance;
|
private static volatile TrixinityEvent instance;
|
||||||
|
private String eventStatus = "Skončil"; // Změněno na velké písmeno
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
@@ -63,4 +64,13 @@ public class TrixinityEvent extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Getter a setter pre event status
|
||||||
|
public String getEventStatus() {
|
||||||
|
return eventStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEventStatus(String status) {
|
||||||
|
this.eventStatus = status;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -19,12 +19,26 @@ public class ClearEventerCommand implements CommandExecutor {
|
|||||||
if (!sender.hasPermission("*")) {
|
if (!sender.hasPermission("*")) {
|
||||||
sender.sendMessage(String.format("%s%sTrixinity-Event v1.0",
|
sender.sendMessage(String.format("%s%sTrixinity-Event v1.0",
|
||||||
ChatColor.RED, ChatColor.BOLD));
|
ChatColor.RED, ChatColor.BOLD));
|
||||||
sender.sendMessage(ChatColor.RED + "Vytvořil: TrixinityDev");
|
sender.sendMessage(ChatColor.RED + "Vytvořil: BabyMsp2k");
|
||||||
sender.sendMessage(ChatColor.GRAY
|
sender.sendMessage(ChatColor.GRAY
|
||||||
+ "Plugin pro správu herních eventů s podporou WorldGuard.");
|
+ "Plugin pro správu herních eventů s podporou WorldGuard.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ... zbytek kódu zůstává stejný ...
|
// Vymazání současného eventera
|
||||||
|
TrixinityEvent plugin = TrixinityEvent.getInstance();
|
||||||
|
String currentEventer = plugin.getConfig().getString("current_eventer");
|
||||||
|
|
||||||
|
if (currentEventer != null) {
|
||||||
|
// Reset eventer role na default pomocí LuckPerms
|
||||||
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
|
||||||
|
"lp user " + currentEventer + " parent set default");
|
||||||
|
}
|
||||||
|
|
||||||
|
plugin.getConfig().set("current_eventer", null);
|
||||||
|
plugin.saveConfig();
|
||||||
|
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "Současný eventer byl vymazán!");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -23,12 +23,194 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class EventCommand implements CommandExecutor, TabCompleter {
|
public class EventCommand implements CommandExecutor, TabCompleter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
if (args.length == 0) {
|
||||||
|
showPluginInfo(sender);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
String subCommand = args[0].toLowerCase();
|
||||||
|
|
||||||
|
switch (subCommand) {
|
||||||
|
case "starting":
|
||||||
|
if (!sender.hasPermission("trixinity.event.admin")) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Nemáš oprávnění k použití tohoto příkazu!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
handleEventStarting(sender);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "start":
|
||||||
|
if (!sender.hasPermission("trixinity.event.admin")) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Nemáš oprávnění k použití tohoto příkazu!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
handleEventStart(sender);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "end":
|
||||||
|
if (!sender.hasPermission("trixinity.event.admin")) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Nemáš oprávnění k použití tohoto příkazu!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
handleEventEnd(sender);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "event":
|
||||||
|
if (!sender.hasPermission("trixinity.event.admin")) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Nemáš oprávnění k použití tohoto příkazu!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (args.length < 2) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Použití: /event event <spleef/end>");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
handleEventType(sender, args[1]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "build":
|
||||||
|
if (!sender.hasPermission("trixinity.event.admin")) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Nemáš oprávnění k použití tohoto příkazu!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (args.length < 2) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Použití: /event build <on/off>");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
handleBuild(sender, args[1]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "pvp":
|
||||||
|
if (!sender.hasPermission("trixinity.event.admin")) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Nemáš oprávnění k použití tohoto příkazu!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (args.length < 2) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Použití: /event pvp <on/off>");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
handlePvp(sender, args[1]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "kick":
|
||||||
|
if (!sender.hasPermission("trixinity.event.admin")) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Nemáš oprávnění k použití tohoto příkazu!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (args.length < 2) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Použití: /event kick <hráč>");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
handleKick(sender, args[1]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
showPluginInfo(sender);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||||
|
List<String> completions = new ArrayList<>();
|
||||||
|
|
||||||
|
if (args.length == 1) {
|
||||||
|
List<String> subCommands = Arrays.asList("starting", "start", "end", "build", "pvp", "kick", "event");
|
||||||
|
for (String subCommand : subCommands) {
|
||||||
|
if (subCommand.toLowerCase().startsWith(args[0].toLowerCase())) {
|
||||||
|
completions.add(subCommand);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (args.length == 2) {
|
||||||
|
String subCommand = args[0].toLowerCase();
|
||||||
|
switch (subCommand) {
|
||||||
|
case "build":
|
||||||
|
case "pvp":
|
||||||
|
List<String> modes = Arrays.asList("on", "off");
|
||||||
|
for (String mode : modes) {
|
||||||
|
if (mode.toLowerCase().startsWith(args[1].toLowerCase())) {
|
||||||
|
completions.add(mode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "kick":
|
||||||
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
|
if (player.getName().toLowerCase().startsWith(args[1].toLowerCase())) {
|
||||||
|
completions.add(player.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "event":
|
||||||
|
List<String> eventTypes = Arrays.asList("spleef", "end");
|
||||||
|
for (String eventType : eventTypes) {
|
||||||
|
if (eventType.toLowerCase().startsWith(args[1].toLowerCase())) {
|
||||||
|
completions.add(eventType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return completions;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handleEventType(CommandSender sender, String eventType) {
|
||||||
|
switch (eventType.toLowerCase()) {
|
||||||
|
case "spleef":
|
||||||
|
handleSpleefStart(sender);
|
||||||
|
break;
|
||||||
|
case "end":
|
||||||
|
handleSpleefEnd(sender);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sender.sendMessage(ChatColor.RED + "Neznámý typ eventu! Použij: spleef nebo end");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handleSpleefStart(CommandSender sender) {
|
||||||
|
// Vyplnění oblasti sněhovými bloky
|
||||||
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fill 30 107 -10 54 107 14 snow_block");
|
||||||
|
|
||||||
|
// Teleportace všech hráčů na souřadnice 42 108 1
|
||||||
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
|
player.teleport(player.getWorld().getBlockAt(42, 108, 1).getLocation().add(0.5, 0, 0.5));
|
||||||
|
|
||||||
|
// Dání nerozbitné zlaté lopaty s Efficiency III
|
||||||
|
ItemStack shovel = new ItemStack(Material.GOLDEN_SHOVEL);
|
||||||
|
ItemMeta meta = shovel.getItemMeta();
|
||||||
|
if (meta != null) {
|
||||||
|
meta.setUnbreakable(true);
|
||||||
|
meta.addEnchant(Enchantment.EFFICIENCY, 3, true);
|
||||||
|
shovel.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
player.getInventory().addItem(shovel);
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "Spleef event byl spuštěn!");
|
||||||
|
Bukkit.broadcastMessage(ChatColor.YELLOW + ChatColor.BOLD.toString() + "SPLEEF EVENT ZAČAL!");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handleSpleefEnd(CommandSender sender) {
|
||||||
|
// Odebrání zlatých lopat všem hráčům
|
||||||
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
|
player.getInventory().remove(Material.GOLDEN_SHOVEL);
|
||||||
|
// Teleportace na souřadnice 43 60 26
|
||||||
|
player.teleport(player.getWorld().getBlockAt(43, 60, 26).getLocation().add(0.5, 0, 0.5));
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(ChatColor.RED + "Spleef event byl ukončen!");
|
||||||
|
Bukkit.broadcastMessage(ChatColor.RED + ChatColor.BOLD.toString() + "SPLEEF EVENT SKONČIL!");
|
||||||
|
}
|
||||||
|
|
||||||
private void handleEventStarting(CommandSender sender) {
|
private void handleEventStarting(CommandSender sender) {
|
||||||
TrixinityEvent plugin = TrixinityEvent.getInstance();
|
TrixinityEvent plugin = TrixinityEvent.getInstance();
|
||||||
|
|
||||||
// Nastavení stavu eventu na "starting"
|
// Nastavenie stavu len v pamäti
|
||||||
plugin.getConfig().set("event_status", "starting");
|
plugin.setEventStatus("Začíná"); // Už je správně
|
||||||
plugin.saveConfig();
|
|
||||||
|
|
||||||
// Vyplnění oblasti vzduchem
|
// Vyplnění oblasti vzduchem
|
||||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fill 47 62 42 39 60 42 air");
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fill 47 62 42 39 60 42 air");
|
||||||
@@ -36,15 +218,17 @@ public class EventCommand implements CommandExecutor, TabCompleter {
|
|||||||
sender.sendMessage(ChatColor.YELLOW + "Event začíná");
|
sender.sendMessage(ChatColor.YELLOW + "Event začíná");
|
||||||
|
|
||||||
// Oznámení všem hráčům
|
// Oznámení všem hráčům
|
||||||
Bukkit.broadcastMessage(ChatColor.YELLOW + ChatColor.BOLD.toString() + "EVENT ZAČÍNÁ!");
|
Bukkit.broadcastMessage(ChatColor.YELLOW + ChatColor.BOLD.toString() + "EVENT ZAČINÁ!");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleEventStart(CommandSender sender) {
|
private void handleEventStart(CommandSender sender) {
|
||||||
TrixinityEvent plugin = TrixinityEvent.getInstance();
|
TrixinityEvent plugin = TrixinityEvent.getInstance();
|
||||||
|
|
||||||
// Nastavení stavu eventu na "začal"
|
// Nastavenie stavu len v pamäti
|
||||||
plugin.getConfig().set("event_status", "started");
|
plugin.setEventStatus("Začal"); // Změněno z "začal" na "Začal"
|
||||||
plugin.saveConfig();
|
|
||||||
|
// Zapnutie whitelistu
|
||||||
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "whitelist on");
|
||||||
|
|
||||||
// Vyplnění oblasti železnými mřížemi
|
// Vyplnění oblasti železnými mřížemi
|
||||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fill 47 62 42 39 60 42 iron_bars");
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fill 47 62 42 39 60 42 iron_bars");
|
||||||
@@ -58,19 +242,65 @@ public class EventCommand implements CommandExecutor, TabCompleter {
|
|||||||
private void handleEventEnd(CommandSender sender) {
|
private void handleEventEnd(CommandSender sender) {
|
||||||
TrixinityEvent plugin = TrixinityEvent.getInstance();
|
TrixinityEvent plugin = TrixinityEvent.getInstance();
|
||||||
|
|
||||||
// Nastavení stavu eventu na "skončil"
|
// Nastavenie stavu len v pamäti
|
||||||
plugin.getConfig().set("event_status", "ended");
|
plugin.setEventStatus("Skončil");
|
||||||
plugin.saveConfig();
|
|
||||||
|
|
||||||
// Vyplnění oblasti vzduchem (reset po skončení eventu)
|
// Vyplnění oblasti vzduchem (reset po skončení eventu)
|
||||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fill 47 62 42 39 60 42 air");
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fill 47 62 42 39 60 42 air");
|
||||||
|
|
||||||
|
// Přidání iron_bars podle požadavku
|
||||||
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fill 47 62 42 39 60 42 iron_bars");
|
||||||
|
|
||||||
sender.sendMessage(ChatColor.RED + "Event byl ukončen!");
|
sender.sendMessage(ChatColor.RED + "Event byl ukončen!");
|
||||||
|
|
||||||
// Oznámení všem hráčům
|
// Oznámení všem hráčům
|
||||||
Bukkit.broadcastMessage(ChatColor.RED + ChatColor.BOLD.toString() + "EVENT SKONČIL!");
|
Bukkit.broadcastMessage(ChatColor.RED + ChatColor.BOLD.toString() + "EVENT SKONČIL!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void handleBuild(CommandSender sender, String mode) {
|
||||||
|
String command;
|
||||||
|
if (mode.equalsIgnoreCase("on")) {
|
||||||
|
command = "rg flag __global__ build -w EVENT allow";
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "Build byl povolen v EVENT regionu!");
|
||||||
|
} else if (mode.equalsIgnoreCase("off")) {
|
||||||
|
command = "rg flag __global__ build -w EVENT deny";
|
||||||
|
sender.sendMessage(ChatColor.RED + "Build byl zakázán v EVENT regionu!");
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Použití: /event build <on/off>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handlePvp(CommandSender sender, String mode) {
|
||||||
|
String command;
|
||||||
|
if (mode.equalsIgnoreCase("on")) {
|
||||||
|
command = "rg flag __global__ pvp -w EVENT allow";
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "PvP byl povolen v EVENT regionu!");
|
||||||
|
} else if (mode.equalsIgnoreCase("off")) {
|
||||||
|
command = "rg flag __global__ pvp -w EVENT deny";
|
||||||
|
sender.sendMessage(ChatColor.RED + "PvP byl zakázán v EVENT regionu!");
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Použití: /event pvp <on/off>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handleKick(CommandSender sender, String playerName) {
|
||||||
|
Player target = Bukkit.getPlayer(playerName);
|
||||||
|
if (target == null) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Hráč " + playerName + " není online!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spustenie príkazu /gmsp pre daného hráča
|
||||||
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gmsp " + playerName);
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "Hráč " + playerName + " byl přesunut do spectator módu!");
|
||||||
|
}
|
||||||
|
|
||||||
private void showPluginInfo(CommandSender sender) {
|
private void showPluginInfo(CommandSender sender) {
|
||||||
sender.sendMessage(String.format("%s%s------------(%s%s TRIXINITY EVENT %s%s)------------",
|
sender.sendMessage(String.format("%s%s------------(%s%s TRIXINITY EVENT %s%s)------------",
|
||||||
ChatColor.RED, ChatColor.STRIKETHROUGH,
|
ChatColor.RED, ChatColor.STRIKETHROUGH,
|
||||||
@@ -97,10 +327,6 @@ public class EventCommand implements CommandExecutor, TabCompleter {
|
|||||||
+ ChatColor.RED + "/event build off/on");
|
+ ChatColor.RED + "/event build off/on");
|
||||||
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
||||||
+ ChatColor.RED + "/event pvp off/on");
|
+ ChatColor.RED + "/event pvp off/on");
|
||||||
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
|
||||||
+ ChatColor.RED + "/event spawn (hráč)");
|
|
||||||
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
|
||||||
+ ChatColor.RED + "/event hunger on/off");
|
|
||||||
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
||||||
+ ChatColor.RED + "/event kick (hráč)");
|
+ ChatColor.RED + "/event kick (hráč)");
|
||||||
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
||||||
@@ -111,6 +337,4 @@ public class EventCommand implements CommandExecutor, TabCompleter {
|
|||||||
sender.sendMessage(ChatColor.RED + ChatColor.STRIKETHROUGH.toString()
|
sender.sendMessage(ChatColor.RED + ChatColor.STRIKETHROUGH.toString()
|
||||||
+ "---------------------------------");
|
+ "---------------------------------");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ... zbytek kódu zůstává stejný ...
|
|
||||||
}
|
}
|
||||||
@@ -20,12 +20,44 @@ public class EventerCommand implements CommandExecutor {
|
|||||||
if (!sender.hasPermission("*")) {
|
if (!sender.hasPermission("*")) {
|
||||||
sender.sendMessage(String.format("%s%sTrixinity-Event v1.0",
|
sender.sendMessage(String.format("%s%sTrixinity-Event v1.0",
|
||||||
ChatColor.RED, ChatColor.BOLD));
|
ChatColor.RED, ChatColor.BOLD));
|
||||||
sender.sendMessage(ChatColor.RED + "Vytvořil: TrixinityDev");
|
sender.sendMessage(ChatColor.RED + "Vytvořil: BabyMsp2k");
|
||||||
sender.sendMessage(ChatColor.GRAY
|
sender.sendMessage(ChatColor.GRAY
|
||||||
+ "Plugin pro správu herních eventů s podporou WorldGuard.");
|
+ "Plugin pro správu herních eventů s podporou WorldGuard.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ... zbytek kódu zůstává stejný ...
|
// Pokud není zadán argument, zobrazí aktuálního eventera
|
||||||
|
if (args.length == 0) {
|
||||||
|
TrixinityEvent plugin = TrixinityEvent.getInstance();
|
||||||
|
String currentEventer = plugin.getConfig().getString("current_eventer");
|
||||||
|
if (currentEventer != null) {
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "Současný eventer: " + ChatColor.YELLOW + currentEventer);
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Žádný eventer není nastaven.");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Nastavení nového eventera
|
||||||
|
String playerName = args[0];
|
||||||
|
Player targetPlayer = Bukkit.getPlayer(playerName);
|
||||||
|
|
||||||
|
if (targetPlayer == null) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Hráč " + playerName + " není online!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Nastavení eventer role pomocí LuckPerms
|
||||||
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
|
||||||
|
"lp user " + targetPlayer.getName() + " parent set eventer");
|
||||||
|
|
||||||
|
TrixinityEvent plugin = TrixinityEvent.getInstance();
|
||||||
|
plugin.getConfig().set("current_eventer", targetPlayer.getName());
|
||||||
|
plugin.saveConfig();
|
||||||
|
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "Eventer byl nastaven na: " + ChatColor.YELLOW + targetPlayer.getName());
|
||||||
|
targetPlayer.sendMessage(ChatColor.GREEN + "Byl jsi nastaven jako eventer!");
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -24,7 +24,7 @@ public class TrixinityPlaceholderExpansion extends PlaceholderExpansion {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull String getAuthor() {
|
public @NotNull String getAuthor() {
|
||||||
return "TrixinityDev";
|
return "BabyMsp2k";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -39,6 +39,18 @@ public class TrixinityPlaceholderExpansion extends PlaceholderExpansion {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @Nullable String onRequest(OfflinePlayer player, @NotNull String params) {
|
public @Nullable String onRequest(OfflinePlayer player, @NotNull String params) {
|
||||||
// ... zbytek kódu zůstává stejný ...
|
// Zpracování různých placeholderů
|
||||||
|
switch (params.toLowerCase()) {
|
||||||
|
case "status": // Změněno z "trixinity_status"
|
||||||
|
return plugin.getEventStatus();
|
||||||
|
case "eventer":
|
||||||
|
case "current_eventer":
|
||||||
|
String eventer = plugin.getConfig().getString("current_eventer");
|
||||||
|
return eventer != null && !eventer.isEmpty() ? eventer : "Žádný";
|
||||||
|
case "plugin_version":
|
||||||
|
return getVersion();
|
||||||
|
default:
|
||||||
|
return null; // Placeholder není rozpoznán
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,9 +4,6 @@
|
|||||||
# Aktuální eventer
|
# Aktuální eventer
|
||||||
current_eventer: ""
|
current_eventer: ""
|
||||||
|
|
||||||
# Stav eventu (started/ended)
|
|
||||||
event_status: "ended"
|
|
||||||
|
|
||||||
# Seznam všech eventerů pro historii
|
# Seznam všech eventerů pro historii
|
||||||
eventers:
|
eventers:
|
||||||
# Příklad: BabyMsp2k: true
|
# Příklad: BabyMsp2k: true
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
main: ${PACKAGE}.${NAME}
|
main: dev.trixinity.event.TrixinityEvent
|
||||||
name: ${NAME}
|
name: Trixinity-Event
|
||||||
version: "${VERSION}"
|
version: "${VERSION}"
|
||||||
api-version: "1.21"
|
api-version: "1.21"
|
||||||
author: TrixinityDev
|
author: BabyMsp2k
|
||||||
description: Plugin pro správu eventů na Minecraft serveru s přehlednými příkazy, integrovanými WorldGuard příkazy a možností základního ovládání přes konzoli nebo přímo ze hry.
|
description: Plugin pro správu eventů na Minecraft serveru s přehlednými příkazy, integrovanými WorldGuard příkazy a možností základního ovládání přes konzoli nebo přímo ze hry.
|
||||||
depend: [WorldGuard]
|
depend: [WorldGuard]
|
||||||
softdepend: [PlaceholderAPI]
|
softdepend: [PlaceholderAPI]
|
||||||
@@ -48,35 +48,23 @@ permissions:
|
|||||||
trixinity.event.build: true
|
trixinity.event.build: true
|
||||||
trixinity.event.pvp: true
|
trixinity.event.pvp: true
|
||||||
trixinity.event.spawn: true
|
trixinity.event.spawn: true
|
||||||
trixinity.event.gamemode: true
|
|
||||||
trixinity.event.heal: true
|
|
||||||
trixinity.event.teleport: true
|
|
||||||
trixinity.event.hunger: true
|
trixinity.event.hunger: true
|
||||||
trixinity.event.kick: true
|
trixinity.event.kick: true
|
||||||
trixinity.event.build:
|
trixinity.event.build:
|
||||||
description: Povolení pro build příkazy
|
description: Oprávnění pro /event build
|
||||||
default: op
|
default: op
|
||||||
trixinity.event.pvp:
|
trixinity.event.pvp:
|
||||||
description: Povolení pro pvp příkazy
|
description: Oprávnění pro /event pvp
|
||||||
default: op
|
default: op
|
||||||
trixinity.event.spawn:
|
trixinity.event.spawn:
|
||||||
description: Povolení pro spawn příkazy
|
description: Oprávnění pro /event spawn
|
||||||
default: op
|
|
||||||
trixinity.event.gamemode:
|
|
||||||
description: Povolení pro gamemode příkazy
|
|
||||||
default: op
|
|
||||||
trixinity.event.heal:
|
|
||||||
description: Povolení pro heal příkazy
|
|
||||||
default: op
|
|
||||||
trixinity.event.teleport:
|
|
||||||
description: Povolení pro teleport příkazy
|
|
||||||
default: op
|
default: op
|
||||||
trixinity.event.hunger:
|
trixinity.event.hunger:
|
||||||
description: Povolení pro hunger příkazy
|
description: Oprávnění pro /event hunger
|
||||||
default: op
|
default: op
|
||||||
trixinity.event.kick:
|
trixinity.event.kick:
|
||||||
description: Povolení pro kick příkazy
|
description: Oprávnění pro /event kick
|
||||||
default: op
|
default: op
|
||||||
trixinity.eventer.help:
|
trixinity.eventer.help:
|
||||||
description: Povolení pro zobrazení nápovědy
|
description: Zobrazení nápovědy pro event příkazy
|
||||||
default: op
|
default: op
|
||||||
Reference in New Issue
Block a user