spleef
This commit is contained in:
@@ -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!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user