problem with nullpointerExeption

Discussion in 'Plugin Development' started by ramptoetsenbord, Jan 6, 2018.

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

    ramptoetsenbord

    I am trying to make a plugin that when a player dies, it checks if he has an item with a particular name and only drops that item when the player has it.

    But i get this error:
    Code:
    [14:27:22 ERROR]: Could not pass event PlayerDeathEvent to PartialInventoryDrops v0.1.0
    org.bukkit.event.EventException: null
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:413) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.EntityPlayer.die(EntityPlayer.java:423) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity(EntityLiving.java:956) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity(EntityHuman.java:759) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.EntityPlayer.damageEntity(EntityPlayer.java:577) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.EntityLiving.killEntity(EntityLiving.java:134) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.CommandKill.execute(SourceFile:35) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.command.VanillaCommandWrapper.dispatchVanillaCommand(VanillaCommandWrapper.java:109) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.command.VanillaCommandWrapper.execute(VanillaCommandWrapper.java:38) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:649) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1397) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1232) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_151]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_151]
            at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_151]
    Caused by: java.lang.NullPointerException
            at server.PartialInventoryDrop.Events.Player.PlayerDeadEvent.onPlayerDead(PlayerDeadEvent.java:35) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_151]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            ... 27 more
    
    and here is my code:
    Code:
    package server.PartialInventoryDrop.Events.Player;
    
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    import server.PartialInventoryDrop.PIDMain;
    
    public class PlayerDeadEvent implements Listener {
    
        private PIDMain plugin;
    
        public void plgn(PIDMain pl) {
    
            plugin = pl;
        }
    
        @EventHandler
        public void onPlayerDead(PlayerDeathEvent event) {
    
            Player player = event.getEntity();
    
            //if (player.hasPermission("PID.byPass") == false) {
    
                List<String> items = plugin.getConfig().getStringList("names");
                List<String> type = plugin.getConfig().getStringList("textures");
    
                String[] typeS = (String[]) type.toArray();
                String[] itemS = (String[]) items.toArray();
    
                ItemStack item1 = new ItemStack(Material.getMaterial(typeS[0]));
                ItemStack item2 = new ItemStack(Material.getMaterial(typeS[1]));
                ItemStack item3 = new ItemStack(Material.getMaterial(typeS[2]));
                ItemStack item4 = new ItemStack(Material.getMaterial(typeS[3]));
                ItemStack item5 = new ItemStack(Material.getMaterial(typeS[4]));
    
                ItemMeta iteM1 = item1.getItemMeta();
                ItemMeta iteM2 = item1.getItemMeta();
                ItemMeta iteM3 = item1.getItemMeta();
                ItemMeta iteM4 = item1.getItemMeta();
                ItemMeta iteM5 = item1.getItemMeta();
    
                Location loc = player.getLocation();
                Inventory inv = player.getInventory();
    
                if (item1 != null) {
                    if (inv.contains(item1)) {
    
                        if (iteM1.getDisplayName() == itemS[0]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM1.getDisplayName());
                            player.getWorld().dropItem(loc, item1);
                        }
                    }
                }
    
                if (item2 != null) {
                    if (inv.contains(item2)) {
    
                        if (iteM2.getDisplayName() == itemS[1]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM2.getDisplayName());
                            player.getWorld().dropItem(loc, item2);
                        }
                    }
                }
    
                if (item3 != null) {
                    if (inv.contains(item3)) {
    
                        if (iteM3.getDisplayName() == itemS[2]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM3.getDisplayName());
                            player.getWorld().dropItem(loc, item3);
                        }
                    }
                }
    
                if (item4 != null) {
                    if (inv.contains(item4)) {
    
                        if (iteM4.getDisplayName() == itemS[3]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM4.getDisplayName());
                            player.getWorld().dropItem(loc, item4);
                        }
                    }
                }
    
                if (item5 != null) {
                    if (inv.contains(item5)) {
    
                        if (iteM5.getDisplayName() == itemS[4]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM5.getDisplayName());
                            player.getWorld().dropItem(loc, item5);
                        }
                    }
                }
            }
        }
    //}
    
    
    and if you need it, my config:
    Code:
    
    names:
      - Boss egg
      - Enimy egg
    textures:
      - EGG
      - EGG
    

    if you need somthing else just ask!
     
  2. Offline

    yoyopower

    You don't set the plugin variable, so it's null which causes a null pointer when you do
    Code:
     List<String> items = plugin.getConfig().getStringList("names"); 
    You have the method "plgn" but i'm guessing you're just not calling the method, not that this method really makes any sense. You should refactor this method into being a constructor instead, so you pass the plugin instance when creating the object instead of making some weird method that looks like it's being held together with cellotape and love.
     
  3. Offline

    ramptoetsenbord

    how would ou do it?
     
  4. Offline

    RunsWithShovels

    @ramptoetsenbord
    To get access to your main class:
    replace all this:
    private PIDMain plugin;

    public void plgn(PIDMain pl) {

    plugin = pl;
    }

    with this:
    private CLASSNAME plugin = Main.getPlugin(CLASSNAME.class)
     
  5. Offline

    yoyopower

    I'd replace this:
    Code:
    private PIDMain plugin;
    
    public void plgn(PIDMain pl) {
    
    plugin = pl;
    }
    
    with
    Code:
    private final PIDMain plugin;
    
    public PlayerDeadEvent(PIDMain plugin) {
        this.plugin = plugin;
    }
    
    You'd have to replace object creation with (presuming you're making it from the onEnable method of your main class):

    Code:
    new PlayerDeadEvent(this);
    
    Therefore you require an instance of your main class to create the class, good practices all round here.
     
    Last edited: Jan 11, 2018
  6. Offline

    ramptoetsenbord

    Sorry but somehow it doesnt work... (i also tried the method of @RunsWithShovels )
     
  7. Offline

    Max8801

    Please send your new code in the listener class along with your main class.
     
  8. Offline

    ramptoetsenbord

    my listener:
    Code:
    package server.PartialInventoryDrop.Events.Player;
    
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    import server.PartialInventoryDrop.PIDMain;
    
    public class PlayerDeadEvent implements Listener {
    
        private final PIDMain plugin;
    
        public void PIDMain(PIDMain plugin) {
            this.plugin = plugin;
            // the final field of plugin cannot be assigned
        }
    
        @EventHandler
        public void onPlayerDead(PlayerDeathEvent event) {
    
            Player player = event.getEntity();
    
            //if (player.hasPermission("PID.byPass") == false) {
    
                List<String> items = plugin.getConfig().getStringList("names");
                List<String> type = plugin.getConfig().getStringList("textures");
    
                String[] typeS = (String[]) type.toArray();
                String[] itemS = (String[]) items.toArray();
    
                ItemStack item1 = new ItemStack(Material.getMaterial(typeS[0]));
                ItemStack item2 = new ItemStack(Material.getMaterial(typeS[1]));
                ItemStack item3 = new ItemStack(Material.getMaterial(typeS[2]));
                ItemStack item4 = new ItemStack(Material.getMaterial(typeS[3]));
                ItemStack item5 = new ItemStack(Material.getMaterial(typeS[4]));
    
                ItemMeta iteM1 = item1.getItemMeta();
                ItemMeta iteM2 = item1.getItemMeta();
                ItemMeta iteM3 = item1.getItemMeta();
                ItemMeta iteM4 = item1.getItemMeta();
                ItemMeta iteM5 = item1.getItemMeta();
    
                Location loc = player.getLocation();
                Inventory inv = player.getInventory();
    
                if (item1 != null) {
                    if (inv.contains(item1)) {
    
                        if (iteM1.getDisplayName() == itemS[0]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM1.getDisplayName());
                            player.getWorld().dropItem(loc, item1);
                        }
                    }
                }
    
                if (item2 != null) {
                    if (inv.contains(item2)) {
    
                        if (iteM2.getDisplayName() == itemS[1]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM2.getDisplayName());
                            player.getWorld().dropItem(loc, item2);
                        }
                    }
                }
    
                if (item3 != null) {
                    if (inv.contains(item3)) {
    
                        if (iteM3.getDisplayName() == itemS[2]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM3.getDisplayName());
                            player.getWorld().dropItem(loc, item3);
                        }
                    }
                }
    
                if (item4 != null) {
                    if (inv.contains(item4)) {
    
                        if (iteM4.getDisplayName() == itemS[3]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM4.getDisplayName());
                            player.getWorld().dropItem(loc, item4);
                        }
                    }
                }
    
                if (item5 != null) {
                    if (inv.contains(item5)) {
    
                        if (iteM5.getDisplayName() == itemS[4]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM5.getDisplayName());
                            player.getWorld().dropItem(loc, item5);
                        }
                    }
                }
            }
        }
    //}
    
    and my main:

    Code:
    package server.PartialInventoryDrop;
    
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import server.PartialInventoryDrop.Events.Player.PlayerDeadEvent;
    import server.PartialInventoryDrop.commands.PID;
    
    public class PIDMain extends JavaPlugin {
    
        public void onEnable() {
    
            registerEvents();
            registerCommands();
    
        }
    
        public void registerCommands() {
    
            getCommand("PID").setExecutor(new PID());
        }
    
        public void registerEvents() {
    
            PluginManager pm = getServer().getPluginManager();
           
            pm.registerEvents(new PlayerDeadEvent(this), this);
    
        }
    
        public void registerConfig() {
    
            FileConfiguration config = this.getConfig();
            config.options().copyDefaults(true);
            saveConfig();
    
        }
    }
    
     
  9. Online

    timtower Administrator Administrator Moderator

  10. Offline

    yoyopower

    @ramptoetsenbord

    Code:
    public void PIDMain(PIDMain plugin) {
    this.plugin = plugin;
    // the final field of plugin cannot be assigned
    }
    
    This should be

    Code:
    public PlayerDeadEvent(PIDMain plugin) {
        this.plugin = plugin;
    }
    
     
  11. Offline

    ramptoetsenbord

    I Applied your code and I don 't get an error in eclipse but I get this when someone dies:
    Code:
    Could not pass event PlayerDeathEvent to PartialInventoryDrops v0.1.0
    org.bukkit.event.EventException: null
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:413) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.EntityPlayer.die(EntityPlayer.java:423) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity(EntityLiving.java:956) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity(EntityHuman.java:759) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.EntityPlayer.damageEntity(EntityPlayer.java:577) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.EntityLiving.killEntity(EntityLiving.java:134) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.CommandKill.execute(SourceFile:35) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.command.VanillaCommandWrapper.dispatchVanillaCommand(VanillaCommandWrapper.java:109) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.command.VanillaCommandWrapper.execute(VanillaCommandWrapper.java:38) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:649) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1397) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1232) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_151]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_151]
            at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_151]
    Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
            at server.PartialInventoryDrop.Events.Player.PlayerDeadEvent.onPlayerDead(PlayerDeadEvent.java:38) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_151]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-809c399]
            ... 27 more
    
     
  12. Online

    timtower Administrator Administrator Moderator

  13. Offline

    ramptoetsenbord

    my new code is
    Code:
    package server.PartialInventoryDrop.Events.Player;
    
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    import server.PartialInventoryDrop.PIDMain;
    
    public class PlayerDeadEvent implements Listener {
    
        private final PIDMain plugin;
    
        public PlayerDeadEvent(PIDMain plugin) {
            this.plugin = plugin;
        }
    
        @EventHandler
        public void onPlayerDead(PlayerDeathEvent event) {
    
            Player player = event.getEntity();
    
            //if (player.hasPermission("PID.byPass") == false) {
    
                List<String> items = plugin.getConfig().getStringList("names");
                List<String> type = plugin.getConfig().getStringList("textures");
    
                String[] typeS = (String[]) type.toArray();
                String[] itemS = (String[]) items.toArray();
    
                ItemStack item1 = new ItemStack(Material.getMaterial(typeS[0]));
                ItemStack item2 = new ItemStack(Material.getMaterial(typeS[1]));
                ItemStack item3 = new ItemStack(Material.getMaterial(typeS[2]));
                ItemStack item4 = new ItemStack(Material.getMaterial(typeS[3]));
                ItemStack item5 = new ItemStack(Material.getMaterial(typeS[4]));
    
                ItemMeta iteM1 = item1.getItemMeta();
                ItemMeta iteM2 = item1.getItemMeta();
                ItemMeta iteM3 = item1.getItemMeta();
                ItemMeta iteM4 = item1.getItemMeta();
                ItemMeta iteM5 = item1.getItemMeta();
    
                Location loc = player.getLocation();
                Inventory inv = player.getInventory();
    
                if (item1 != null) {
                    if (inv.contains(item1)) {
    
                        if (iteM1.getDisplayName() == itemS[0]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM1.getDisplayName());
                            player.getWorld().dropItem(loc, item1);
                        }
                    }
                }
    
                if (item2 != null) {
                    if (inv.contains(item2)) {
    
                        if (iteM2.getDisplayName() == itemS[1]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM2.getDisplayName());
                            player.getWorld().dropItem(loc, item2);
                        }
                    }
                }
    
                if (item3 != null) {
                    if (inv.contains(item3)) {
    
                        if (iteM3.getDisplayName() == itemS[2]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM3.getDisplayName());
                            player.getWorld().dropItem(loc, item3);
                        }
                    }
                }
    
                if (item4 != null) {
                    if (inv.contains(item4)) {
    
                        if (iteM4.getDisplayName() == itemS[3]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM4.getDisplayName());
                            player.getWorld().dropItem(loc, item4);
                        }
                    }
                }
    
                if (item5 != null) {
                    if (inv.contains(item5)) {
    
                        if (iteM5.getDisplayName() == itemS[4]) {
    
                            event.getDrops().clear();
    
                            Bukkit.broadcastMessage(
                                    ChatColor.DARK_AQUA + player.getName() + " dropped " + iteM5.getDisplayName());
                            player.getWorld().dropItem(loc, item5);
                        }
                    }
                }
            }
        }
    //}
    
    
     
  14. Offline

    yoyopower


    Problem is this:
    Code:
    (String[]) type.toArray();
    toArray() will return an array of objects which can't be cast to an array of strings. To be perfectly honest converting the list to an array doesn't make any sense in the first place, but if you insist on doing it you just need to change the line I quoted (and the other line where you do this) to the following:
    Code:
    type.toArray(new String[0]);
     
Thread Status:
Not open for further replies.

Share This Page