Solved java.lang.ClassCastException: gui.PunishGUI cannot be cast to org.bukkit.command.CommandExecutor

Discussion in 'Plugin Development' started by GodzillaFlame42, Jul 7, 2018.

Thread Status:
Not open for further replies.
  1. I dont know how to fix this problem someone pls help

    Error:
    Code:
    [00:16:13 ERROR]: Error occurred while enabling GLEssentials v1.0 (Is it up to date?)
    java.lang.ClassCastException: gui.PunishGUI cannot be cast to org.bukkit.command.CommandExecutor
        at main.Main.onEnable(Main.java:19) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[craftbukkit.jar:git-Bukkit-b105298]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [craftbukkit.jar:git-Bukkit-b105298]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404) [craftbukkit.jar:git-Bukkit-b105298]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:341) [craftbukkit.jar:git-Bukkit-b105298]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:313) [craftbukkit.jar:git-Bukkit-b105298]
        at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:406) [craftbukkit.jar:git-Bukkit-b105298]
        at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:370) [craftbukkit.jar:git-Bukkit-b105298]
        at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:325) [craftbukkit.jar:git-Bukkit-b105298]
        at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:235) [craftbukkit.jar:git-Bukkit-b105298]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:503) [craftbukkit.jar:git-Bukkit-b105298]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
    Main:
    Code:
    package main;
    
    import gui.PunishGUI;
    
    import org.bukkit.ChatColor;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import commands.GMC;
    import commands.GMS;
    
    public class Main extends JavaPlugin {
    
        public void onEnable() {
            System.out.println(ChatColor.BLUE + "Essentials> " + ChatColor.GRAY + "Plugin has been: " + ChatColor.GREEN + "ACTIVATED.");
                //commands
                    this.getCommand("gmc").setExecutor((CommandExecutor) new GMC());
                    this.getCommand("gms").setExecutor((CommandExecutor) new GMS());
                    this.getCommand("p").setExecutor((CommandExecutor) new PunishGUI());
           
            }
        public void Disable() {
            System.out.println(ChatColor.BLUE + "Essentials> " + ChatColor.GRAY + "Plugin has been: " + ChatColor.RED + "DEACTIVATED.");
        }
    }
    
    PunishGUI:
    Code:
    package gui;
    
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.Inventory;
    
    public class PunishGUI {
    
        public static Inventory punishGUI = Bukkit.createInventory(null, 54, "hi");
       
        public PunishGUI() {
           
        }
       
        public static boolean openGUI(Player player) {
           
            player.openInventory(punishGUI);
           
           
            punishGUI.setItem(0, null);
            punishGUI.setItem(1, null);
            punishGUI.setItem(2, null);
            punishGUI.setItem(3, null);
            punishGUI.setItem(4, null);
            punishGUI.setItem(5, null);
            punishGUI.setItem(6, null);
            punishGUI.setItem(7, null);
            punishGUI.setItem(8, null);
            return true;
        }
       
    }
    
     
  2. Online

    timtower Administrator Administrator Moderator

    @GodzillaFlame42
    getCommand("p").setExecutor((CommandExecutor) new PunishGUI());
    You should not cast here.
     
  3. Offline

    Zombie_Striker

    @GodzillaFlame42
    To add onto what Tim posted, you should not cast the object, you should let PunishGUI implement CommandExecutor.
     
  4. @timtower @Zombie_Striker
    i dont know whats wrong now. there are no errors but it wont open the gui itself.

    PunishGUI:
    Code:
    package gui;
    
    import org.bukkit.Bukkit;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.Inventory;
    
    public class PunishGUI implements CommandExecutor {
    
        public static Inventory punishGUI = Bukkit.createInventory(null, 54, "test");
       
            public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
                Player player = (Player) sender;
                if (sender instanceof Player) {
                }
                return false;
            }
           
            public PunishGUI() {
               
            }
       
        public static boolean openGUI(Player player) {
           
            player.openInventory(punishGUI);
           
           
            punishGUI.setItem(0, null);
            punishGUI.setItem(1, null);
            punishGUI.setItem(2, null);
            punishGUI.setItem(3, null);
            punishGUI.setItem(4, null);
            punishGUI.setItem(5, null);
            punishGUI.setItem(6, null);
            punishGUI.setItem(7, null);
            punishGUI.setItem(8, null);
            return true;
    
        }
       
    }
    
     
  5. Offline

    Zombie_Striker

Thread Status:
Not open for further replies.

Share This Page