This commit is contained in:
babymsp2k
2025-07-05 17:51:07 +02:00
parent 51b7e9e7b8
commit 73aa0d7d4a
@@ -4,11 +4,15 @@ import dev.trixinity.eventmanager.TrixinityEventManager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter; import org.bukkit.command.TabCompleter;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -50,6 +54,13 @@ public class EventCommand implements CommandExecutor, TabCompleter {
} }
handleEventEnd(sender); handleEventEnd(sender);
break; break;
case "event":
if (!sender.hasPermission("trixinity.event.admin")) {
sender.sendMessage(ChatColor.RED + "Nemáte oprávnění k použití tohoto příkazu!");
return true;
}
handleEventEvent(sender, args);
break;
case "build": case "build":
if (!sender.hasPermission("trixinity.event.build")) { if (!sender.hasPermission("trixinity.event.build")) {
sender.sendMessage(ChatColor.RED + "Nemáte oprávnění k použití tohoto příkazu!"); sender.sendMessage(ChatColor.RED + "Nemáte oprávnění k použití tohoto příkazu!");
@@ -98,7 +109,7 @@ public class EventCommand implements CommandExecutor, TabCompleter {
if (args.length == 1) { if (args.length == 1) {
// První argument - sub-příkazy // První argument - sub-příkazy
List<String> subCommands = Arrays.asList("starting", "start", "end", "build", "pvp", "spawn", "hunger", "kick"); List<String> subCommands = Arrays.asList("starting", "start", "end", "event", "build", "pvp", "spawn", "hunger", "kick");
for (String subCommand : subCommands) { for (String subCommand : subCommands) {
if (subCommand.toLowerCase().startsWith(args[0].toLowerCase())) { if (subCommand.toLowerCase().startsWith(args[0].toLowerCase())) {
completions.add(subCommand); completions.add(subCommand);
@@ -117,6 +128,14 @@ public class EventCommand implements CommandExecutor, TabCompleter {
} }
} }
break; break;
case "event":
List<String> eventOptions = Arrays.asList("spleef", "end");
for (String option : eventOptions) {
if (option.toLowerCase().startsWith(args[1].toLowerCase())) {
completions.add(option);
}
}
break;
case "spawn": case "spawn":
case "kick": case "kick":
// Autocomplete pro jména hráčů // Autocomplete pro jména hráčů
@@ -220,6 +239,8 @@ public class EventCommand implements CommandExecutor, TabCompleter {
+ ChatColor.RED + "/event start"); + ChatColor.RED + "/event start");
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- " sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
+ ChatColor.RED + "/event end"); + ChatColor.RED + "/event end");
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
+ ChatColor.RED + "/event event <spleef/end>");
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- " sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
+ 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() + "- "
@@ -464,4 +485,79 @@ public class EventCommand implements CommandExecutor, TabCompleter {
} }
} }
} }
/**
* Zpracuje příkaz event event.
*
* @param sender Odesílatel příkazu
* @param args Argumenty příkazu
*/
private void handleEventEvent(CommandSender sender, String[] args) {
if (args == null || args.length < 2) {
sender.sendMessage(ChatColor.RED + "Použití: /event event <spleef/end>");
return;
}
String eventType = args[1].toLowerCase();
switch (eventType) {
case "spleef":
handleSpleefStart(sender);
break;
case "end":
handleSpleefEnd(sender);
break;
default:
sender.sendMessage(ChatColor.RED + "Použití: /event event <spleef/end>");
break;
}
}
/**
* Spustí spleef event.
*
* @param sender Odesílatel příkazu
*/
private void handleSpleefStart(CommandSender sender) {
// Vyplnění oblasti sněhovými bloky
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fill 22 107 -21 50 107 9 minecraft:snow_block");
// Teleportace všech hráčů
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "minecraft:tp @a 42 108 1");
// Dání zlaté lopaty všem hráčům
for (Player player : Bukkit.getOnlinePlayers()) {
ItemStack goldenShovel = new ItemStack(Material.GOLDEN_SHOVEL);
ItemMeta meta = goldenShovel.getItemMeta();
if (meta != null) {
meta.setUnbreakable(true);
meta.addEnchant(Enchantment.EFFICIENCY, 3, true); // Opraveno z DIG_SPEED na EFFICIENCY
meta.setDisplayName(ChatColor.GOLD + "Spleef Lopata");
goldenShovel.setItemMeta(meta);
}
player.getInventory().addItem(goldenShovel);
}
sender.sendMessage(ChatColor.GREEN + "Spleef event byl spuštěn!");
Bukkit.broadcastMessage(ChatColor.YELLOW + ChatColor.BOLD.toString() + "SPLEEF EVENT ZAČAL!");
}
/**
* Ukončí spleef event.
*
* @param sender Odesílatel příkazu
*/
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 všech hráčů
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "minecraft:tp @a 43 60 26");
sender.sendMessage(ChatColor.RED + "Spleef event byl ukončen!");
Bukkit.broadcastMessage(ChatColor.RED + ChatColor.BOLD.toString() + "SPLEEF EVENT SKONČIL!");
}
} }