package eu.univento.core.listeners; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.help.HelpTopic; import eu.univento.core.Core; import eu.univento.core.api.Messages; import eu.univento.core.api.player.CustomPlayer; import eu.univento.core.api.player.Perms.Ranks; /** * commands * @author joethei * @version 1.0 */ public class Commands implements Listener{ /** * prints unknown command message * @param e PlayerCommandPreprocessEvent */ @EventHandler(priority = EventPriority.NORMAL) public void onPlayerPreprocess(PlayerCommandPreprocessEvent e) { if(!(e.isCancelled())) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer().getName()); String cmd = e.getMessage().split(" ")[0]; HelpTopic topic = Bukkit.getServer().getHelpMap().getHelpTopic(cmd); if(topic == null) { String msg = Messages.COMMAND_NOT_FOUND; p.sendMessage(msg); e.setCancelled(true); } } } /** * custom reload * @param e PlayerPreprocessEvent */ @EventHandler public void onReload(PlayerCommandPreprocessEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer().getName()); String cmd = e.getMessage(); if(cmd.equalsIgnoreCase("/rl") || cmd.equalsIgnoreCase("/reload")) { if(p.isAllowed(Ranks.Admin)) { e.setCancelled(true); Bukkit.broadcastMessage(Messages.PREFIX + "§cAchtung der Server wird gleich neu geladen"); Bukkit.getScheduler().scheduleSyncDelayedTask(Core.getInstance(), new Runnable() { @Override public void run() { for(Player players : Bukkit.getOnlinePlayers()) { players.kickPlayer("§cServer wurde neu geladen \n §6Bitte joine doch neu unter \n §bplay§5.§6univento§5.§aeu"); } Bukkit.reload(); } }, 100L); }else { p.sendMessage(Messages.NO_PERMS); } } } }