From 8679b3ef1401891172de2ca4f95fe48404453fc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristjan=20Kru=C5=A1i=C4=8D?= Date: Tue, 14 Dec 2021 23:41:37 +0100 Subject: [PATCH] Updated for Paper 1.18.1. Not using adventure for now. --- WelcomeWarps/pom.xml | 26 +++--- .../com/wasteofplastic/wwarps/Messages.java | 29 +++--- .../src/com/wasteofplastic/wwarps/WWarps.java | 54 +++++------ .../com/wasteofplastic/wwarps/WarpSigns.java | 91 +++++++++---------- .../wwarps/commands/AdminCmd.java | 79 ++++++++-------- .../wwarps/commands/WarpCmd.java | 39 ++++---- .../wwarps/panels/WarpPanel.java | 19 ++-- 7 files changed, 160 insertions(+), 177 deletions(-) diff --git a/WelcomeWarps/pom.xml b/WelcomeWarps/pom.xml index 49551bc..e8ea750 100644 --- a/WelcomeWarps/pom.xml +++ b/WelcomeWarps/pom.xml @@ -4,7 +4,7 @@ com.wasteofplastic WelcomeWarpSigns - 1.5 + 1.6 jar com.wasteofplastic @@ -42,24 +42,24 @@ maven-compiler-plugin 3.8.1 - 1.8 - 1.8 + 17 + 17 - - org.bukkit - bukkit - 1.14.4-R0.1-SNAPSHOT - provided - + + io.papermc.paper + paper-api + 1.18.1-R0.1-SNAPSHOT + provided + - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - + + papermc + https://papermc.io/repo/repository/maven-public/ + diff --git a/WelcomeWarps/src/com/wasteofplastic/wwarps/Messages.java b/WelcomeWarps/src/com/wasteofplastic/wwarps/Messages.java index f2242f0..ce5b752 100644 --- a/WelcomeWarps/src/com/wasteofplastic/wwarps/Messages.java +++ b/WelcomeWarps/src/com/wasteofplastic/wwarps/Messages.java @@ -1,11 +1,10 @@ package com.wasteofplastic.wwarps; -import java.util.*; - +import com.wasteofplastic.wwarps.util.Util; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; -import com.wasteofplastic.wwarps.util.Util; +import java.util.*; /** * Handles offline messaging to players and teams @@ -68,19 +67,19 @@ public void saveMessages() { public boolean loadMessages() { plugin.getLogger().info("Loading offline messages..."); try { - messageStore = Util.loadYamlFile("messages.yml"); - if (messageStore.getConfigurationSection("messages") == null) { - messageStore.createSection("messages"); // This is only used to - // create - } - HashMap temp = (HashMap) messageStore.getConfigurationSection("messages").getValues(true); - for (String s : temp.keySet()) { - List messageList = messageStore.getStringList("messages." + s); - if (!messageList.isEmpty()) { - messages.put(UUID.fromString(s), messageList); + messageStore = Util.loadYamlFile("messages.yml"); + if (messageStore.getConfigurationSection("messages") == null) { + messageStore.createSection("messages"); // This is only used to + // create } - } - return true; + HashMap temp = (HashMap) Objects.requireNonNull(messageStore.getConfigurationSection("messages")).getValues(true); + for (String s : temp.keySet()) { + List messageList = messageStore.getStringList("messages." + s); + if (!messageList.isEmpty()) { + messages.put(UUID.fromString(s), messageList); + } + } + return true; } catch (Exception e) { e.printStackTrace(); return false; diff --git a/WelcomeWarps/src/com/wasteofplastic/wwarps/WWarps.java b/WelcomeWarps/src/com/wasteofplastic/wwarps/WWarps.java index d60f713..e1f3486 100644 --- a/WelcomeWarps/src/com/wasteofplastic/wwarps/WWarps.java +++ b/WelcomeWarps/src/com/wasteofplastic/wwarps/WWarps.java @@ -17,8 +17,10 @@ package com.wasteofplastic.wwarps; -import java.util.HashMap; - +import com.wasteofplastic.wwarps.commands.AdminCmd; +import com.wasteofplastic.wwarps.commands.WarpCmd; +import com.wasteofplastic.wwarps.listeners.JoinLeaveEvents; +import com.wasteofplastic.wwarps.panels.WarpPanel; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Tag; @@ -29,10 +31,8 @@ import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; -import com.wasteofplastic.wwarps.commands.AdminCmd; -import com.wasteofplastic.wwarps.commands.WarpCmd; -import com.wasteofplastic.wwarps.listeners.JoinLeaveEvents; -import com.wasteofplastic.wwarps.panels.WarpPanel; +import java.util.HashMap; +import java.util.Objects; /** * @author tastybento @@ -185,28 +185,28 @@ public void onDisable() { */ @Override public void onEnable() { - plugin = this; - saveDefaultConfig(); - // Load all the configuration of the plugin and localization strings - loadPluginConfig(); - // Set up commands for this plugin + plugin = this; + saveDefaultConfig(); + // Load all the configuration of the plugin and localization strings + loadPluginConfig(); + // Set up commands for this plugin WarpCmd warpCmd = new WarpCmd(this); - AdminCmd adminCmd = new AdminCmd(this); - - getCommand("wwarp").setExecutor(warpCmd); - getCommand("wwarp").setTabCompleter(warpCmd); - getCommand("wwadmin").setExecutor(adminCmd); - // Register events - registerEvents(); - // Have to do this a tick later to wait for all the worlds to load - getServer().getScheduler().runTask(this, () -> { - // Load warps - getWarpSignsListener().loadWarpList(); - // Load the warp panel - warpPanel = new WarpPanel(plugin); - getServer().getPluginManager().registerEvents(warpPanel, plugin); - }); - } + AdminCmd adminCmd = new AdminCmd(this); + + Objects.requireNonNull(getCommand("wwarp")).setExecutor(warpCmd); + Objects.requireNonNull(getCommand("wwarp")).setTabCompleter(warpCmd); + Objects.requireNonNull(getCommand("wwadmin")).setExecutor(adminCmd); + // Register events + registerEvents(); + // Have to do this a tick later to wait for all the worlds to load + getServer().getScheduler().runTask(this, () -> { + // Load warps + getWarpSignsListener().loadWarpList(); + // Load the warp panel + warpPanel = new WarpPanel(plugin); + getServer().getPluginManager().registerEvents(warpPanel, plugin); + }); + } /** * Registers events diff --git a/WelcomeWarps/src/com/wasteofplastic/wwarps/WarpSigns.java b/WelcomeWarps/src/com/wasteofplastic/wwarps/WarpSigns.java index 0fde1c3..a8b998e 100644 --- a/WelcomeWarps/src/com/wasteofplastic/wwarps/WarpSigns.java +++ b/WelcomeWarps/src/com/wasteofplastic/wwarps/WarpSigns.java @@ -16,12 +16,9 @@ *******************************************************************************/ package com.wasteofplastic.wwarps; -import java.util.*; -import java.util.Map.Entry; - +import com.wasteofplastic.wwarps.util.Util; import org.bukkit.ChatColor; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.block.Sign; @@ -33,7 +30,8 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.SignChangeEvent; -import com.wasteofplastic.wwarps.util.Util; +import java.util.*; +import java.util.Map.Entry; /** * Handles warping in ASkyBlock Players can add one sign @@ -56,21 +54,22 @@ public WarpSigns(WWarps plugin) { this.warpList = new HashMap<>(); } - /** - * Checks to see if a sign has been broken - * @param e - */ - @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = false) - public void onSignBreak(BlockBreakEvent e) { - Block b = e.getBlock(); - Player player = e.getPlayer(); - if (Settings.worldName.isEmpty() || Settings.worldName.contains(b.getWorld().getName())) { - if (Tag.SIGNS.isTagged(b.getType())) { - Sign s = (Sign) b.getState(); - //plugin.getLogger().info("DEBUG: sign found at location " + s.toString()); - if (s.getLine(0).equalsIgnoreCase(ChatColor.GREEN + plugin.myLocale().warpswelcomeLine)) { - // Do a quick check to see if this sign location is in - //plugin.getLogger().info("DEBUG: welcome sign"); + /** + * Checks to see if a sign has been broken + * + * @param e + */ + @EventHandler(priority = EventPriority.NORMAL) + public void onSignBreak(BlockBreakEvent e) { + Block b = e.getBlock(); + Player player = e.getPlayer(); + if (Settings.worldName.isEmpty() || Settings.worldName.contains(b.getWorld().getName())) { + if (Tag.SIGNS.isTagged(b.getType())) { + Sign s = (Sign) b.getState(); + //plugin.getLogger().info("DEBUG: sign found at location " + s.toString()); + if (s.getLine(0).equalsIgnoreCase(ChatColor.GREEN + plugin.myLocale().warpswelcomeLine)) { + // Do a quick check to see if this sign location is in + //plugin.getLogger().info("DEBUG: welcome sign"); // the list of warp signs if (warpList.containsValue(s.getLocation())) { //plugin.getLogger().info("DEBUG: warp sign is in list"); @@ -92,24 +91,24 @@ public void onSignBreak(BlockBreakEvent e) { } } } - } + } - /** - * Event handler for Sign Changes - * - * @param e - */ - @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = false) - public void onSignWarpCreate(SignChangeEvent e) { - //plugin.getLogger().info("DEBUG: SignChangeEvent called"); - String title = e.getLine(0); - Player player = e.getPlayer(); - //plugin.getLogger().info("DEBUG: The first line of the sign says " + title); + /** + * Event handler for Sign Changes + * + * @param e + */ + @EventHandler(priority = EventPriority.NORMAL) + public void onSignWarpCreate(SignChangeEvent e) { + //plugin.getLogger().info("DEBUG: SignChangeEvent called"); + String title = e.getLine(0); + Player player = e.getPlayer(); + //plugin.getLogger().info("DEBUG: The first line of the sign says " + title); assert title != null; if (title.equalsIgnoreCase(plugin.myLocale().warpswelcomeLine)) { - //plugin.getLogger().info("DEBUG: Welcome sign detected"); - if (!Settings.worldName.isEmpty() && !Settings.worldName.contains(player.getWorld().getName())) { - //plugin.getLogger().info("DEBUG: Incorrect world"); + //plugin.getLogger().info("DEBUG: Welcome sign detected"); + if (!Settings.worldName.isEmpty() && !Settings.worldName.contains(player.getWorld().getName())) { + //plugin.getLogger().info("DEBUG: Incorrect world"); player.sendMessage(ChatColor.RED + plugin.myLocale().errorWrongWorld); return; } @@ -148,7 +147,6 @@ public void onSignWarpCreate(SignChangeEvent e) { // The block is still a sign //plugin.getLogger().info("DEBUG: The block is still a sign"); Sign oldSign = (Sign) oldSignBlock.getState(); - if (oldSign != null) { //plugin.getLogger().info("DEBUG: Sign block is a sign"); if (oldSign.getLine(0).equalsIgnoreCase(ChatColor.GREEN + plugin.myLocale().warpswelcomeLine)) { //plugin.getLogger().info("DEBUG: Old sign had a green welcome"); @@ -157,7 +155,6 @@ public void onSignWarpCreate(SignChangeEvent e) { player.sendMessage(ChatColor.RED + plugin.myLocale().warpsdeactivate); removeWarp(player.getUniqueId()); } - } } // Set up the warp if (addWarp(player.getUniqueId(), e.getBlock().getLocation())) { @@ -237,18 +234,16 @@ void loadWarpList() { * @param loc */ public boolean addWarp(UUID player, Location loc) { - // Do not allow warps to be in the same location - if (warpList.containsValue(loc)) { - return false; - } - // Remove the old warp if it existed - if (warpList.containsKey(player)) { - warpList.remove(player); + // Do not allow warps to be in the same location + if (warpList.containsValue(loc)) { + return false; + } + // Remove the old warp if it existed + warpList.remove(player); + warpList.put(player, loc); + saveWarpList(true); + return true; } - warpList.put(player, loc); - saveWarpList(true); - return true; - } /** * Removes a warp when the welcome sign is destroyed. Called by diff --git a/WelcomeWarps/src/com/wasteofplastic/wwarps/commands/AdminCmd.java b/WelcomeWarps/src/com/wasteofplastic/wwarps/commands/AdminCmd.java index 3d16f66..373ce9f 100644 --- a/WelcomeWarps/src/com/wasteofplastic/wwarps/commands/AdminCmd.java +++ b/WelcomeWarps/src/com/wasteofplastic/wwarps/commands/AdminCmd.java @@ -17,58 +17,57 @@ package com.wasteofplastic.wwarps.commands; +import com.wasteofplastic.wwarps.Settings; +import com.wasteofplastic.wwarps.WWarps; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; - -import com.wasteofplastic.wwarps.Settings; -import com.wasteofplastic.wwarps.WWarps; +import org.jetbrains.annotations.NotNull; /** * This class handles admin commands - * */ public class AdminCmd implements CommandExecutor { - private final WWarps plugin; - public AdminCmd(WWarps aSkyBlock) { - this.plugin = aSkyBlock; - } + private final WWarps plugin; - /* - * (non-Javadoc) - * @see - * org.bukkit.command.CommandExecutor#onCommand(org.bukkit.command.CommandSender - * , org.bukkit.command.Command, java.lang.String, java.lang.String[]) - */ - public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] split) { - // Console commands - Player player; - if (sender instanceof Player) { - player = (Player) sender; - if (!player.hasPermission(Settings.PERMPREFIX + "admin")) { - player.sendMessage(ChatColor.RED + plugin.myLocale().errorNoPermission); - return true; - } + public AdminCmd(WWarps aSkyBlock) { + this.plugin = aSkyBlock; } - if (split.length == 0) { - sender.sendMessage(plugin.myLocale().adminHelpHelp); - sender.sendMessage(ChatColor.YELLOW + "/" + label + " reload:" + ChatColor.WHITE + " " + plugin.myLocale().adminHelpreload); - return true; - } - if (split.length == 1) { - if (split[0].equalsIgnoreCase("reload")) { - // reload - plugin.reloadConfig(); - plugin.loadPluginConfig(); - sender.sendMessage(ChatColor.YELLOW + plugin.myLocale().reloadconfigReloaded); - return true; - } else { - sender.sendMessage(ChatColor.RED + plugin.myLocale().errorUnknownCommand); - return true; - } - } + + /* + * (non-Javadoc) + * @see + * org.bukkit.command.CommandExecutor#onCommand(org.bukkit.command.CommandSender + * , org.bukkit.command.Command, java.lang.String, java.lang.String[]) + */ + public boolean onCommand(final @NotNull CommandSender sender, final @NotNull Command command, final @NotNull String label, final String[] split) { + // Console commands + Player player; + if (sender instanceof Player) { + player = (Player) sender; + if (!player.hasPermission(Settings.PERMPREFIX + "admin")) { + player.sendMessage(ChatColor.RED + plugin.myLocale().errorNoPermission); + return true; + } + } + if (split.length == 0) { + sender.sendMessage(plugin.myLocale().adminHelpHelp); + sender.sendMessage(ChatColor.YELLOW + "/" + label + " reload:" + ChatColor.WHITE + " " + plugin.myLocale().adminHelpreload); + return true; + } + if (split.length == 1) { + if (split[0].equalsIgnoreCase("reload")) { + // reload + plugin.reloadConfig(); + plugin.loadPluginConfig(); + sender.sendMessage(ChatColor.YELLOW + plugin.myLocale().reloadconfigReloaded); + } else { + sender.sendMessage(ChatColor.RED + plugin.myLocale().errorUnknownCommand); + } + return true; + } sender.sendMessage(ChatColor.RED + plugin.myLocale().errorUnknownCommand); return true; } diff --git a/WelcomeWarps/src/com/wasteofplastic/wwarps/commands/WarpCmd.java b/WelcomeWarps/src/com/wasteofplastic/wwarps/commands/WarpCmd.java index 9b73987..41fb2da 100644 --- a/WelcomeWarps/src/com/wasteofplastic/wwarps/commands/WarpCmd.java +++ b/WelcomeWarps/src/com/wasteofplastic/wwarps/commands/WarpCmd.java @@ -16,10 +16,13 @@ *******************************************************************************/ package com.wasteofplastic.wwarps.commands; -import java.util.*; -import java.util.Map.Entry; - -import org.bukkit.*; +import com.wasteofplastic.wwarps.Settings; +import com.wasteofplastic.wwarps.WWarps; +import com.wasteofplastic.wwarps.util.Util; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Sound; +import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.data.type.Sign; @@ -29,10 +32,10 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; -import com.wasteofplastic.wwarps.Settings; -import com.wasteofplastic.wwarps.WWarps; -import com.wasteofplastic.wwarps.util.Util; +import java.util.*; +import java.util.Map.Entry; public class WarpCmd implements CommandExecutor, TabCompleter { private final WWarps plugin; @@ -76,11 +79,10 @@ public static T getKeyByValue(Map map, E value) { * , org.bukkit.command.Command, java.lang.String, java.lang.String[]) */ @Override - public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] split) { - if (!(sender instanceof Player)) { + public boolean onCommand(final @NotNull CommandSender sender, final @NotNull Command command, final @NotNull String label, final String[] split) { + if (!(sender instanceof final Player player)) { return false; } - final Player player = (Player) sender; final UUID playerUUID = player.getUniqueId(); if (label.equalsIgnoreCase("wwarps")) { if (player.hasPermission(Settings.PERMPREFIX + "use")) { @@ -90,7 +92,6 @@ public boolean onCommand(final CommandSender sender, final Command command, fina if (warpList.isEmpty()) { player.sendMessage(ChatColor.YELLOW + plugin.myLocale().warpserrorNoWarpsYet); player.sendMessage(ChatColor.YELLOW + plugin.myLocale().warpswarpTip); - return true; } else { // Try the warp panel int panelNum; @@ -100,7 +101,6 @@ public boolean onCommand(final CommandSender sender, final Command command, fina panelNum = 0; } player.openInventory(plugin.getWarpPanel().getWarpPanel(panelNum)); - return true; } } else { // Step through warp table @@ -108,7 +108,6 @@ public boolean onCommand(final CommandSender sender, final Command command, fina if (warpList.isEmpty()) { player.sendMessage(ChatColor.YELLOW + plugin.myLocale().warpserrorNoWarpsYet); player.sendMessage(ChatColor.YELLOW + plugin.myLocale().warpswarpTip); - return true; } else { if (Settings.useWarpPanel) { // Try the warp panel @@ -131,13 +130,12 @@ public boolean onCommand(final CommandSender sender, final Command command, fina player.sendMessage(ChatColor.YELLOW + plugin.myLocale().warpswarpTip); } } - return true; } } } else { player.sendMessage(ChatColor.RED + plugin.myLocale().errorNoPermission); - return true; } + return true; } if (label.equalsIgnoreCase("wwarp")) { if (split.length == 1) {// Warp somewhere command @@ -165,7 +163,6 @@ public boolean onCommand(final CommandSender sender, final Command command, fina } if (foundWarp == null) { player.sendMessage(ChatColor.RED + plugin.myLocale().warpserrorDoesNotExist); - return true; } else { // Warp exists! final Location warpSpot = plugin.getWarpSignsListener().getWarp(foundWarp); @@ -205,17 +202,16 @@ public boolean onCommand(final CommandSender sender, final Command command, fina // WALL_SIGN's will always be unsafe if the place in front is obscured. if (Tag.STANDING_SIGNS.isTagged(b.getType())) { plugin.getLogger().warning( - "Unsafe warp found at " + warpSpot.toString() + " owned by " + plugin.getServer().getOfflinePlayer(foundWarp).getName()); + "Unsafe warp found at " + warpSpot + " owned by " + plugin.getServer().getOfflinePlayer(foundWarp).getName()); } - return true; } else { final Location actualWarp = new Location(warpSpot.getWorld(), warpSpot.getBlockX() + 0.5D, warpSpot.getBlockY(), warpSpot.getBlockZ() + 0.5D); player.teleport(actualWarp); player.getWorld().playSound(player.getLocation(), batTakeOff, 1F, 1F); - return true; } } + return true; } } player.performCommand("wwarps"); @@ -246,9 +242,9 @@ private void warpPlayer(Player player, Location inFront, UUID foundWarp, BlockFa } @Override - public List onTabComplete(final CommandSender sender, final Command command, final String label, final String[] args) { + public List onTabComplete(final @NotNull CommandSender sender, final @NotNull Command command, final @NotNull String label, final String[] args) { final List options = new ArrayList<>(); - if (!(sender instanceof Player)) { + if (!(sender instanceof final Player player)) { //plugin.getLogger().info("DEBUG: not a player"); return options; } @@ -256,7 +252,6 @@ public List onTabComplete(final CommandSender sender, final Command comm //plugin.getLogger().info("DEBUG: not right command"); return options; } - final Player player = (Player) sender; if (!player.hasPermission(Settings.PERMPREFIX + "use")) { //plugin.getLogger().info("DEBUG: not right permission"); return options; diff --git a/WelcomeWarps/src/com/wasteofplastic/wwarps/panels/WarpPanel.java b/WelcomeWarps/src/com/wasteofplastic/wwarps/panels/WarpPanel.java index f8e719f..e8130bd 100644 --- a/WelcomeWarps/src/com/wasteofplastic/wwarps/panels/WarpPanel.java +++ b/WelcomeWarps/src/com/wasteofplastic/wwarps/panels/WarpPanel.java @@ -1,7 +1,6 @@ package com.wasteofplastic.wwarps.panels; -import java.util.*; - +import com.wasteofplastic.wwarps.WWarps; import org.bukkit.*; import org.bukkit.block.Sign; import org.bukkit.entity.Player; @@ -11,11 +10,10 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryType.SlotType; import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import com.wasteofplastic.wwarps.WWarps; +import java.util.*; public class WarpPanel implements Listener { private final WWarps plugin; @@ -58,8 +56,8 @@ public void updatePanel() { count++; // Make a head if the player is known String playerName = plugin.getServer().getOfflinePlayer(playerUUID).getName(); + ItemStack playerSign = new ItemStack(Material.OAK_SIGN); //Item that is displayed instead of the player head if (playerName != null) { - ItemStack playerSign = new ItemStack(Material.OAK_SIGN); //Item that is displayed instead of the player head if (signpostCache.containsKey(playerUUID)) { playerSign = signpostCache.get(playerUUID); } else { @@ -68,8 +66,8 @@ public void updatePanel() { meta.setDisplayName(playerName); //get the sign info Location signLocation = plugin.getWarpSignsListener().getWarp(playerUUID); - if (Tag.STANDING_SIGNS.isTagged(signLocation.getBlock().getType())){ - Sign sign = (Sign)signLocation.getBlock().getState(); + if (Tag.STANDING_SIGNS.isTagged(signLocation.getBlock().getType())) { + Sign sign = (Sign) signLocation.getBlock().getState(); List lines = new ArrayList<>(Arrays.asList(sign.getLines())); meta.setLore(lines); } @@ -81,7 +79,6 @@ public void updatePanel() { warpPanel.get(panelNumber).setItem(slot++, newButton.getItem()); } else { // Just make a blank space - ItemStack playerSign = new ItemStack(Material.OAK_SIGN); ItemMeta meta = playerSign.getItemMeta(); assert meta != null; meta.setDisplayName("#" + count); @@ -116,7 +113,6 @@ public Inventory getWarpPanel(int panelNumber) { @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled=true) public void onInventoryClick(InventoryClickEvent event) { - Inventory inventory = event.getInventory(); // The inventory that was clicked in String title = event.getView().getTitle(); if (!event.getView().getTitle().startsWith(plugin.myLocale().warpsTitle + " #")) { return; @@ -129,8 +125,7 @@ public void onInventoryClick(InventoryClickEvent event) { return; } ItemStack clicked = event.getCurrentItem(); // The item that was clicked - assert clicked != null; - if (event.getRawSlot() >= event.getInventory().getSize() || clicked.getType() == Material.AIR) { + if (event.getRawSlot() >= event.getInventory().getSize() || clicked == null || clicked.getType() == Material.AIR) { return; } int panelNumber; @@ -152,4 +147,4 @@ public void onInventoryClick(InventoryClickEvent event) { player.performCommand("wwarp " + command); } } -} +} \ No newline at end of file