spleef
This commit is contained in:
@@ -4,11 +4,15 @@ import dev.trixinity.eventmanager.TrixinityEventManager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -50,6 +54,13 @@ public class EventCommand implements CommandExecutor, TabCompleter {
|
||||
}
|
||||
handleEventEnd(sender);
|
||||
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":
|
||||
if (!sender.hasPermission("trixinity.event.build")) {
|
||||
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) {
|
||||
// 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) {
|
||||
if (subCommand.toLowerCase().startsWith(args[0].toLowerCase())) {
|
||||
completions.add(subCommand);
|
||||
@@ -117,6 +128,14 @@ public class EventCommand implements CommandExecutor, TabCompleter {
|
||||
}
|
||||
}
|
||||
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 "kick":
|
||||
// Autocomplete pro jména hráčů
|
||||
@@ -220,6 +239,8 @@ public class EventCommand implements CommandExecutor, TabCompleter {
|
||||
+ ChatColor.RED + "/event start");
|
||||
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
||||
+ ChatColor.RED + "/event end");
|
||||
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
||||
+ ChatColor.RED + "/event event <spleef/end>");
|
||||
sender.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "- "
|
||||
+ ChatColor.RED + "/event build off/on");
|
||||
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!");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user