Untitled
unknown
plain_text
a year ago
11 kB
2
Indexable
package org.lifestealsmp.duelscore; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; public class EventsManager implements Listener { public ArrayList<String> respawning = new ArrayList<String>(); @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { Main.getInstance().createPlayerFile(event.getPlayer().getUniqueId().toString()); } @EventHandler public void onPlayerTeleport(PlayerTeleportEvent event) { Location to = event.getTo(); World duelsWorld = Bukkit.getWorld("duels"); if (duelsWorld == null) { return; // World not found, you might want to handle this case. } for (Player player : duelsWorld.getPlayers()) { if (player.getLocation().equals(to)) { event.getPlayer().sendMessage("You cannot teleport to a player in the duels world!"); event.setCancelled(true); return; } } } @EventHandler public void onCmd(PlayerCommandPreprocessEvent event) { Player player = (Player) event.getPlayer(); if (Main.getInstance().functionsManager.savedInventories.containsKey(player.getName())) { event.setCancelled(true); } } @EventHandler public void onInventoryClick(InventoryClickEvent event) { Player player = (Player) event.getWhoClicked(); if (event.getView().getTitle().startsWith("§4§lDuels §0§lSelect Game Mode")) { event.setCancelled(true); if (event.getSlot() == 12) { Main.getInstance().inventoryManager.openUnRankedDuelsGUI(player); } if (event.getSlot() == 14) { Main.getInstance().inventoryManager.openRankedDuelsGUI(player); } } } @EventHandler public void onPlayerDroppingItem(PlayerDropItemEvent event) { Player player = (Player) event.getPlayer(); World duels = Bukkit.getServer().getWorld("duels"); if(player.getLocation().getWorld().equals(duels)) { event.setCancelled(true); } } @EventHandler public void onInventoryClickUnRankedDuelsGUI(InventoryClickEvent event) { Player player = (Player) event.getWhoClicked(); if (event.getView().getTitle().startsWith("§4§lDuels §0§lUnranked Kits")) { event.setCancelled(true); ItemStack clickedItem = event.getCurrentItem(); if (clickedItem != null && clickedItem.hasItemMeta()) { // Get the kits section from the config here, so it's accessible throughout the method ConfigurationSection kitsSection = Main.getInstance().getConfig().getConfigurationSection("Kits"); ItemMeta itemMeta = clickedItem.getItemMeta(); if (clickedItem.getType().equals(Material.EMERALD_BLOCK) && itemMeta.getDisplayName().contains("Join All Un-Ranked Queues")) { // Logic to add the player to all unranked queues if (kitsSection != null) { for (String key : kitsSection.getKeys(false)) { Main.getInstance().functionsManager.addPlayerToUnRankedQueue(player, key); } } player.sendMessage("§e§lDuels §8> §cYou've joined all unranked queues!"); player.closeInventory(); return; } if (!clickedItem.getType().equals(Material.BLACK_STAINED_GLASS_PANE)) { String kitDisplayName = ChatColor.stripColor(itemMeta.getDisplayName()).trim(); // Check if kitsSection is not null if (kitsSection != null) { for (String key : kitsSection.getKeys(false)) { String displayName = ChatColor.stripColor(kitsSection.getString(key + ".name")).trim(); if (displayName.contains(kitDisplayName)) { // key is the kit path you're looking for player.sendMessage("§e§lDuels §8> §cYou've joined the queue for kit §a" + kitDisplayName); Main.getInstance().functionsManager.addPlayerToUnRankedQueue(player, key); break; } } } player.closeInventory(); } } } } @EventHandler public void onInventoryClickRankedDuelsGUI(InventoryClickEvent event) { Player player = (Player) event.getWhoClicked(); if (event.getView().getTitle().startsWith("§4§lDuels §0§lRanked Kits")) { event.setCancelled(true); ItemStack clickedItem = event.getCurrentItem(); if (clickedItem != null && clickedItem.hasItemMeta()) { // Get the kits section from the config here, so it's accessible throughout the method ConfigurationSection kitsSection = Main.getInstance().getConfig().getConfigurationSection("Kits"); ItemMeta itemMeta = clickedItem.getItemMeta(); if (clickedItem.getType().equals(Material.EMERALD_BLOCK) && itemMeta.getDisplayName().contains("Join All Ranked Queues")) { // Logic to add the player to all ranked queues if (kitsSection != null) { for (String key : kitsSection.getKeys(false)) { Main.getInstance().functionsManager.addPlayerToRankedQueue(player, key); } } player.sendMessage("§e§lDuels §8> §cYou've joined all ranked queues!"); player.closeInventory(); return; } if (!clickedItem.getType().equals(Material.BLACK_STAINED_GLASS_PANE)) { String kitDisplayName = ChatColor.stripColor(itemMeta.getDisplayName()).trim(); // Check if kitsSection is not null if (kitsSection != null) { for (String key : kitsSection.getKeys(false)) { String displayName = ChatColor.stripColor(kitsSection.getString(key + ".name")).trim(); if (displayName.contains(kitDisplayName)) { player.sendMessage("§e§lDuels §8> §cYou've joined the queue for kit §a" + kitDisplayName); Main.getInstance().functionsManager.addPlayerToRankedQueue(player, key); break; } } } player.closeInventory(); } } } } @EventHandler public void onEntityDeath(EntityDeathEvent event) { if (event.getEntity() instanceof Player) { Player deceasedPlayer = (Player) event.getEntity(); for (Map.Entry<String, List<Player>> entry : Main.getInstance().functionsManager.map.entrySet()) { List<Player> players = entry.getValue(); if (players.contains(deceasedPlayer)) { respawning.add(deceasedPlayer.getName()); event.getDrops().clear(); String arenaName = entry.getKey(); Player otherPlayer = players.stream().filter(player -> !player.equals(deceasedPlayer)).findFirst() .orElse(null); if (otherPlayer != null) { Main.getInstance().functionsManager.FinishDuelMatch(arenaName, otherPlayer, deceasedPlayer); } break; } } } } @EventHandler public void onPlayerRespawn(PlayerRespawnEvent event) { Player player = (Player) event.getPlayer(); if (respawning.contains(player.getName())) { Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.getInstance(), new Runnable() { public void run() { Main.getInstance().functionsManager.RestorePlayerData(player); respawning.remove(player.getName()); } }, 1); } } @EventHandler public void OnPlayerQuit(PlayerQuitEvent event) { Player QuittingPlayer = (Player) event.getPlayer(); Main.getInstance().functionsManager.RemoveQueue(QuittingPlayer); File directory = new File("plugins/Duels/players"); File QuittingPlayerFile = new File(directory, QuittingPlayer.getUniqueId() + ".yml"); FileConfiguration QuittingPlayerConfig = YamlConfiguration.loadConfiguration(QuittingPlayerFile); for (Map.Entry<String, List<Player>> entry : Main.getInstance().functionsManager.map.entrySet()) { List<Player> players = entry.getValue(); if (players.contains(QuittingPlayer)) { String arenaName = entry.getKey(); Player otherPlayer = players.stream().filter(player -> !player.equals(QuittingPlayer)).findFirst() .orElse(null); if (otherPlayer != null) { QuittingPlayerConfig.set("Location", Main.getInstance().functionsManager.savedlocation.get(QuittingPlayer.getName())); try { QuittingPlayerConfig.save(QuittingPlayerFile); } catch (IOException e) { e.printStackTrace(); // Handle any exceptions } Main.getInstance().functionsManager.RestorePlayerData(QuittingPlayer); Main.getInstance().functionsManager.FinishDuelMatch(arenaName, otherPlayer, QuittingPlayer); } } } } @EventHandler public void onLocationTeleportJoin(PlayerJoinEvent event) { Player joiningPlayer = event.getPlayer(); // Renamed for clarity, as they are no longer quitting File directory = new File("plugins/Duels/players"); File playerFile = new File(directory, joiningPlayer.getUniqueId() + ".yml"); FileConfiguration playerConfig = YamlConfiguration.loadConfiguration(playerFile); // Check if the location is saved in the config Location savedLocation = playerConfig.getLocation("Location"); if(savedLocation != null) { // Teleport the player to the saved location joiningPlayer.teleport(savedLocation); // Remove the location from config after successful teleport playerConfig.set("Location", null); try { // Save the config to reflect the removal of the location playerConfig.save(playerFile); } catch (IOException e) { e.printStackTrace(); // Handle any exceptions } } } }
Editor is loading...
Leave a Comment