Solved Another problem >.<

Discussion in 'Plugin Development' started by yPedx, Mar 25, 2017.

Thread Status:
Not open for further replies.
  1. Offline

    yPedx

    Error in console:​
    Code:
    [18:50:14 ERROR]: Could not pass event InventoryClickEvent to SuchBans v1.1.6
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[craftbukkit.jar:git-Bukkit-b105298]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-b105298]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-b105298]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1537) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(SourceFile:31) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(SourceFile:9) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit.jar:git-Bukkit-b105298]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_121]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_121]
            at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:19) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:672) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:335) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:628) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:536) [craftbukkit.jar:git-Bukkit-b105298]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
    Caused by: java.lang.NullPointerException
            at me.developer.kriss.GUI.onInventoryClick(GUI.java:156) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:300) ~[craftbukkit.jar:git-Bukkit-b105298]
            ... 15 more
    Code: (Cut out)​
    Code:
            case DIAMOND_SWORD:
                if (map.containsValue(player.getUniqueId()) || map.containsKey(player.getUniqueId())) {
                    String killAuraBanCommand = plugin.getConfig().getString("KillAura Ban Command").replaceAll("%player%", map.get(player.getUniqueId()));
                    String killAuraBanReason = plugin.getConfig().getString("KillAura Ban Reason").replaceAll("&", "§");
                    player.performCommand(killAuraBanCommand + map.get(player.getUniqueId()) + killAuraBanReason);
                break; }
    at me.developer.kriss.GUI.onInventoryClick(GUI.java:156) ~[?:?] is String killAuraBanCommand = plugin.getConfig().getString("KillAura Ban Command").replaceAll("%player%", map.get(player.getUniqueId()));


    Also, another problem I'm experiencing is that the config file won't load everything I've set as default.
    config.yml:
    Code:
    # SuchBans by yPedx[/COLOR][/LEFT][/COLOR][/LEFT][/COLOR][/LEFT]
    [COLOR=#000000]
    [LEFT][COLOR=#000000]
    [LEFT][COLOR=#000000]
    [LEFT]# Report bugs & issues at
    #
    # Colour codes are supported.
    # Use %player% to get the player.
    #
    # Permission required to use /punish: suchbans.ban
    #
    
    # Ban Reasons
    # Change to your own reason for the ban
    
    KillAura Ban Reason: 'Hacked Client - KillAura / Triggerbot'
    
    Speed Ban Reason: 'Hacked Client - Speed'
    
    Phase Ban Reason: 'Hacked Client - Phase'
    
    Aimbot Ban Reason: 'Hacked Client - Aimbot'
    
    X-Ray Ban Reason: 'Hacked Client - X-Ray / Tracers'
    
    AutoClicker Ban Reason: 'Hacked Client - AutoClicker'
    
    Reach Ban Reason: 'Hacked Client - Reach'
    
    Freecam Ban Reason: 'Hacked Client - Freecam'
    
    Fly Ban Reason: 'Hacked Client - Fly'
    
    
    
    # Ban Commands
    
    KillAura Ban Command: 'ban %player%'
    
    Speed Ban Command: 'ban %player%'
    
    Phase Ban Command: 'ban %player%'
    
    Aimbot Ban Command: 'ban %player%'
    
    X-Ray Ban Command: 'ban %player%'
    
    AutoClicker Ban Command: 'ban %player%'
    
    Reach Ban Command: 'ban %player%'
    
    Freecam Ban Command: 'ban %player%'
    
    Fly Ban Command: 'ban %player%'






    config.yml appears like this when you load your server:​
    Code:
    # SuchBans by yPedx
    # Report bugs & issues at
    KillAura Ban Reason: Hacked Client - KillAura / Triggerbot
    Speed Ban Reason: Hacked Client - Speed
    Phase Ban Reason: Hacked Client - Phase
    Aimbot Ban Reason: Hacked Client - Aimbot
    X-Ray Ban Reason: Hacked Client - X-Ray / Tracers
    AutoClicker Ban Reason: Hacked Client - AutoClicker
    Reach Ban Reason: Hacked Client - Reach
    Freecam Ban Reason: Hacked Client - Freecam
    Fly Ban Reason: Hacked Client - Fly
    KillAura Ban Command: ban %player%
    Speed Ban Command: ban %player%
    Phase Ban Command: ban %player%
    Aimbot Ban Command: ban %player%
    X-Ray Ban Command: ban %player%
    AutoClicker Ban Command: ban %player%
    Reach Ban Command: ban %player%
    Freecam Ban Command: ban %player%
    Fly Ban Command: ban %player%
    
    NOTE: I only tried to use this method: String killAuraBanCommand = plugin.getConfig().getString("KillAura Ban Command").replaceAll("%player%", map.get(player.getUniqueId())); once.
    Example. Reach has a standard ban message and command in the code, and cannot be changed. I just filled in the config to get ready to use the method above (in red). I wanted to test first if it really worked.
     
    Last edited: Mar 25, 2017
  2. Offline

    mehboss

    Can I see your "plugin" variable
     
  3. Offline

    yPedx

    This?
    Code:
    public class GUI extends JavaPlugin implements Listener, CommandExecutor {
        public static JavaPlugin plugin;
    
        public void onEnable() {
            Bukkit.getPluginManager().registerEvents(this, this);
           
            registerConfig();
        }
       
        private void registerConfig() {
            getConfig().options().copyDefaults(true);
            saveConfig();
        }
     
  4. Online

    timtower Administrator Administrator Moderator

    @yPedx You never set the plugin variable.
     
  5. Offline

    yPedx

    Oh.. I fixed that now.. but now another error pops up..
    Code:
    [19:38:40 INFO]: yPedx issued server command: /punish imaimbotting
    [19:38:42 INFO]: Error -> null
    [19:38:42 INFO]: !! Failed fetching UUID of imaimbottingimaimbottinghacked
    [19:38:42 INFO]: !! Could not find key 'id' in the servers response
    [19:38:42 INFO]: !! Response: No Content
    [19:38:42 INFO]: Trying to fetch UUID form BackUp-API...
    [19:38:42 INFO]: Error -> null
    [19:38:42 INFO]: !! Failed fetching UUID of imaimbottingimaimbottinghacked
    [19:38:42 INFO]: !! Could not find key 'uuid' in the servers response
    [19:38:42 INFO]: !! Response: OK
    [19:38:42 INFO]: !! !! Warning we have not been able to fetch the UUID of the Player imaimbottingimaimbottinghacked
    [19:38:42 INFO]: !! Make sure that the name is spelled correctly and if it is change your UUID-Fetcher settings!
     
  6. Online

    timtower Administrator Administrator Moderator

  7. Offline

    yPedx

    Apologize! Fixed: player.performCommand(killAuraBanCommand + " " + map.get(player.getUniqueId()) + " " + killAuraBanReason);

    @timtower
    However the config still doesn't load everything it should. There's no errors either.
     
    Last edited: Mar 25, 2017
  8. Offline

    FrostedSnowman

    show all of your code
     
  9. Offline

    yPedx

    Code:
    package me.developer.kriss;
    
    import java.util.HashMap;
    import java.util.UUID;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public final class GUI extends JavaPlugin implements Listener, CommandExecutor {
        public static JavaPlugin plugin;
    
        public void onEnable() {
            saveDefaultConfig();
            plugin = this;
           
            Bukkit.getPluginManager().registerEvents(this, this);
           
            registerConfig();
        }
       
        private void registerConfig() {
            getConfig().options().copyDefaults(true);
            saveConfig();
        }
       
        HashMap<UUID, String> map = new HashMap<UUID, String>();
       
        private void openGUI(Player player) {
            Inventory inv = Bukkit.createInventory(null, 18, ChatColor.RED
                    + "Punishments");
           
            ItemStack killaura = new ItemStack (Material.DIAMOND_SWORD);
            ItemMeta killauraMeta = killaura.getItemMeta();
           
            ItemStack speed = new ItemStack (Material.SUGAR);
            ItemMeta speedMeta = speed.getItemMeta();
           
            ItemStack phase = new ItemStack (Material.IRON_FENCE);
            ItemMeta phaseMeta = phase.getItemMeta();
           
            ItemStack aimbot = new ItemStack (Material.BOW);
            ItemMeta aimbotMeta = aimbot.getItemMeta();
           
            ItemStack xray = new ItemStack (Material.DIAMOND_ORE);
            ItemMeta xrayMeta = xray.getItemMeta();
           
            ItemStack autoclicker = new ItemStack (Material.IRON_SWORD);
            ItemMeta autoclickerMeta = autoclicker.getItemMeta();
           
            ItemStack reach = new ItemStack (Material.STICK);
            ItemMeta reachMeta = reach.getItemMeta();
           
            ItemStack freecam = new ItemStack (Material.GLASS);
            ItemMeta freecamMeta = freecam.getItemMeta();
           
            ItemStack fly = new ItemStack (Material.FEATHER);
            ItemMeta flyMeta = fly.getItemMeta();
           
            ItemStack theplayer = new ItemStack (Material.ANVIL);
            ItemMeta theplayerMeta = theplayer.getItemMeta();
           
           
            killauraMeta.setDisplayName(ChatColor.RED + "KillAura");
            killaura.setItemMeta(killauraMeta);
           
            speedMeta.setDisplayName(ChatColor.AQUA + "Speed");
            speed.setItemMeta(speedMeta);
           
            phaseMeta.setDisplayName(ChatColor.DARK_PURPLE + "Phase");
            phase.setItemMeta(phaseMeta);
           
            aimbotMeta.setDisplayName(ChatColor.YELLOW + "Aimbot");
            aimbot.setItemMeta(aimbotMeta);
           
            xrayMeta.setDisplayName(ChatColor.DARK_GREEN + "X-Ray");
            xray.setItemMeta(xrayMeta);
           
            autoclickerMeta.setDisplayName(ChatColor.RED + "AutoClicker");
            autoclicker.setItemMeta(autoclickerMeta);
           
            reachMeta.setDisplayName(ChatColor.RED + "Reach");
            reach.setItemMeta(reachMeta);
           
            freecamMeta.setDisplayName(ChatColor.WHITE + "Freecam");
            freecam.setItemMeta(freecamMeta);
           
            flyMeta.setDisplayName(ChatColor.YELLOW + "Fly");
            fly.setItemMeta(flyMeta);
           
            theplayerMeta.setDisplayName(ChatColor.WHITE + "Player selected: " + map.get(player.getUniqueId()));
            theplayer.setItemMeta(theplayerMeta);
           
            inv.setItem(0, killaura);
            inv.setItem(1, speed);
            inv.setItem(2, phase);
            inv.setItem(3, aimbot);
            inv.setItem(4, xray);
            inv.setItem(5, autoclicker);
            inv.setItem(6, reach);
            inv.setItem(7, freecam);
            inv.setItem(8, fly);
            inv.setItem(13, theplayer);
           
            player.openInventory(inv);
        }
       
        @EventHandler
        public void onInventoryClick(InventoryClickEvent event) {
            if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Punishments"))
               return;
            Player player = (Player) event.getWhoClicked();
            event.setCancelled(true);
           
            if(event.getCurrentItem()==null
                   || event.getCurrentItem().getType()==Material.AIR
                   || !event.getCurrentItem().hasItemMeta()) {
                player.closeInventory();
                return;
            }
           
            switch(event.getCurrentItem().getType()) {
            case FEATHER:
                if (map.containsValue(player.getUniqueId()) || map.containsKey(player.getUniqueId())) {
                    player.performCommand("ban " + map.get(player.getUniqueId()) + " Hacked Client - Fly");
                break; }
            case GLASS:
                if (map.containsValue(player.getUniqueId()) || map.containsKey(player.getUniqueId())) {
                    player.performCommand("ban " + map.get(player.getUniqueId()) + " Hacked Client - Freecam");
                break; }
            case STICK:
                if (map.containsValue(player.getUniqueId()) || map.containsKey(player.getUniqueId())) {
                    player.performCommand("ban " + map.get(player.getUniqueId()) + " Hacked Client - Reach");
                break; }
            case IRON_SWORD:
                if (map.containsValue(player.getUniqueId()) || map.containsKey(player.getUniqueId())) {
                    player.performCommand("ban " + map.get(player.getUniqueId()) + " Hacked Client - AutoClicker");
                break; }
            case DIAMOND_ORE:
                if (map.containsValue(player.getUniqueId()) || map.containsKey(player.getUniqueId())) {
                    player.performCommand("ban " + map.get(player.getUniqueId()) + " Hacked Client - X-Ray / Tracers");
                break; }
            case BOW:
                if (map.containsValue(player.getUniqueId()) || map.containsKey(player.getUniqueId())) {
                    player.performCommand("ban " + map.get(player.getUniqueId()) + " Hacked Client - Aimbot");
                break; }
            case IRON_FENCE:
                if (map.containsValue(player.getUniqueId()) || map.containsKey(player.getUniqueId())) {
                    player.performCommand("ban " + map.get(player.getUniqueId()) + " Hacked Client - Phase");
                break; }
            case SUGAR:
                if (map.containsValue(player.getUniqueId()) || map.containsKey(player.getUniqueId())) {
                    player.performCommand("ban " + map.get(player.getUniqueId()) + " Hacked Client - Speed");
                break; }
            case DIAMOND_SWORD:
                if (map.containsValue(player.getUniqueId()) || map.containsKey(player.getUniqueId())) {
                    String killAuraBanCommand = plugin.getConfig().getString("KillAura Ban Command").replaceAll("%player%", map.get(player.getUniqueId()));
                    String killAuraBanReason = plugin.getConfig().getString("KillAura Ban Reason").replaceAll("&", "§");
                    player.performCommand(killAuraBanCommand + " " + map.get(player.getUniqueId()) + " " + killAuraBanReason);
                break; }
            default:
                player.closeInventory();
                break;
            }
        }
       
       
    
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
       
                Player player = (Player) sender;
                if(label.equalsIgnoreCase("punish")); {
                    if (args.length >= 2 || args.length == 0)
                        sender.sendMessage(String.format("%s[%sSuch %sBans%s] %sInvalid information! Usage: /punish <player>", ChatColor.DARK_GRAY, ChatColor.RED, ChatColor.GRAY, ChatColor.DARK_GRAY, ChatColor.RED));
                }
                    if (args.length == 1) {
                        map.put(player.getUniqueId(), args[0]);
                        openGUI(player);
                        sender.sendMessage(String.format("%s[%sSuch %sBans%s] %sLet the punishing begin!", ChatColor.DARK_GRAY, ChatColor.RED, ChatColor.GRAY, ChatColor.DARK_GRAY, ChatColor.RED));
    }
                return true;
    }
    }
     
  10. Offline

    FrostedSnowman

    no need for your registerConfig method. remove that entirely

    JavaPlugin#saveDefaultConfig will suffice
     
  11. Offline

    yPedx

Thread Status:
Not open for further replies.

Share This Page