Solved Economy Plugin prototype could not load

Discussion in 'Plugin Development' started by AGreenPig, Jun 15, 2019.

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

    AGreenPig

    Hi! so... I started trying to programm this plugin myself, but I ran inst some problems(the console says"Could not load 'plugins/Talon.jar' in folder 'plugins'").can someone help me?Please?
    Btw..its just a prototyp and does not have all the features I want yet...Because Its my first Plug in and I am a noob, I would like to save the talons of each player in the config file... now I don't know where the problem is I will send my whole code...be carefull..its messy:p

    Main:

    Code:
    package com.agreenpig.talon.main;
    
    
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import com.agreenpig.talon.command.HelpCommand;
    import com.agreenpig.talon.command.SetCommand;
    import com.agreenpig.talon.command.TalonCommand;
    import com.agreenpig.talon.listeners.JoinListener;
    
    public class Main extends JavaPlugin{
    
       private static Main plugin;
       @Override
       public void onEnable() {
         plugin= this;
      
         getLogger().info("Talon wunde aktiviert");
      
         PluginManager pm= getServer().getPluginManager();
         JoinListener listner=new JoinListener(plugin);
         pm.registerEvents(listner, plugin);
      
         getCommand("talon").setExecutor(new TalonCommand());
         getCommand("talonHelp").setExecutor(new HelpCommand());
         getCommand("talonSet").setExecutor(new SetCommand());
      
      
       }
       public void onDissable() {
      
         getLogger().info("Talon wurde ausgeschalten");
       }
       public static Main getPlugin() {
         return plugin;
       }
    
    
    }
    
    Listner:
    Code:
    package com.agreenpig.talon.listeners;
    
    
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    
    import com.agreenpig.talon.main.Main;
    
    public class JoinListener implements Listener{
     
        public JoinListener(Main plugin) {
         
        }
     
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent event) {
            FileConfiguration config= Main.getPlugin().getConfig();
            config.set(event.getPlayer().getName(), "0");
            Main.getPlugin().saveConfig();
        }
    }
    

    Help Command:
    Code:
    package com.agreenpig.talon.command;
    
    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.agreenpig.talon.main.Main;
    
    
    
    public class HelpCommand implements CommandExecutor{
       public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) {
         Player player= (Player) sender;
      
         if (sender instanceof Player) {
           player.sendMessage(ChatColor.GOLD+"=============Talon==============\n/talon (zeigt dir, wie viele Talons du hast)");
         }
         else {
           Main.getPlugin().getLogger().info("=============Talon==============\n/talon (zeigt dir, wie viele Talons du hast)");
         }
         return true;
       }
    }
    
    
    SetCommand:
    Code:
    package com.agreenpig.talon.command;
    
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    
    import com.agreenpig.talon.main.Main;
    
    
    
    public class SetCommand implements CommandExecutor {
       public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) {
         Player player= (Player) sender;
         FileConfiguration config= Main.getPlugin().getConfig();
           if (arg.length==2) {
             if (Main.getPlugin().getConfig().contains(arg[1])) {
               if (arg[2].charAt(0)=='-'||arg[2].length()>=11) {
                 if (sender instanceof Player) {
                   player.sendMessage(ChatColor.RED+"Nur werte über 0 und unter 999999999999 sind erlaubt!");
                 }
                 else {
                   Main.getPlugin().getLogger().info("Nur werte über 0 und unter 999999999999 sind erlaubt!");
                 }
               }
               else {
                 config.set(arg[1], arg[2]);
                 Main.getPlugin().saveConfig();
               }
             }
             else {
               if (sender instanceof Player) {
                 player.sendMessage(ChatColor.RED+"Dieser Spieler muss erst joinen um seinen account ändern zu können");
               }
               else {
                 Main.getPlugin().getLogger().info("Dieser Spieler muss erst joinen um seinen account ändern zu können");
               }
             }
           }
           else {
             if (sender instanceof Player) {
               player.sendMessage(ChatColor.RED+"Benutze bitte: "+ChatColor.GOLD+"/talon set <Player> <TalonAmount>");
             }
             else {
               Main.getPlugin().getLogger().info("Benutze bitte: /talon set <Player> <TalonAmount>");
             }
           }
      
         return true;
       }
    }
    
    
    TalonCommand:
    Code:
    package com.agreenpig.talon.command;
    
    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.agreenpig.talon.main.Main;
    
    public class TalonCommand implements CommandExecutor{
       public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) {
         Player player= (Player) sender;
         if (arg.length==0) {
           if (sender instanceof Player) {
             player.sendMessage(ChatColor.GOLD+"DuHast "+ChatColor.YELLOW+Main.getPlugin().getConfig().getString(player.getName()+ChatColor.GOLD+" Talons!"));
           }
           else {
             Main.getPlugin().getLogger().info("Das kannst du nur als Spieler");
           }
         }
      
         return true;
       }
    
    }
    
    
    and the plugin.yml
    Code:
    name: Talon
    main: com.agreenpig.talon.Main
    version: 1.0
    
    commands:
       talon:
         description: Zeigt dir dein Geld
       talonHelp:
         description: Gibt dir Hilfe
       talonSet:
         description: Setzt Das Geld Eines Spielers.
    
    PS: I'm austrian and some parts like Messages are in german...I don't think that is a big problem thogh because it is just a message.

    I would love it if someone could Help me!
     
  2. Offline

    timtower Administrator Administrator Moderator

  3. Offline

    AGreenPig

  4. Offline

    timtower Administrator Administrator Moderator

    @AGreenPig
    Code:
    [21:18:37] [Server thread/ERROR]: Could not load 'plugins/Talon.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: Cannot find main class `com.agreenpig.talon.Main'
        at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:61) ~[spigot-1.14.2.jar:git-Spigot-df0eb25-43431ba]
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot-1.14.2.jar:git-Spigot-df0eb25-43431ba]
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:333) ~[spigot-1.14.2.jar:git-Spigot-df0eb25-43431ba]
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:252) [spigot-1.14.2.jar:git-Spigot-df0eb25-43431ba]
        at org.bukkit.craftbukkit.v1_14_R1.CraftServer.loadPlugins(CraftServer.java:347) [spigot-1.14.2.jar:git-Spigot-df0eb25-43431ba]
        at net.minecraft.server.v1_14_R1.DedicatedServer.init(DedicatedServer.java:194) [spigot-1.14.2.jar:git-Spigot-df0eb25-43431ba]
        at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:761) [spigot-1.14.2.jar:git-Spigot-df0eb25-43431ba]
        at java.lang.Thread.run(Thread.java:813) [?:1.8.0_212]
    Caused by: java.lang.ClassNotFoundException: com.agreenpig.talon.Main
        at java.lang.Class.forNameImpl(Native Method) ~[?:1.8.0_212]
        at java.lang.Class.forName(Class.java:403) ~[?:1.8.0_212]
        at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:59) ~[spigot-1.14.2.jar:git-Spigot-df0eb25-43431ba]
        ... 7 more
    In that case: logs tell everything.
    Main in the plugin.yml should be
    com.agreenpig.talon.main.Main
     
    AGreenPig likes this.
  5. Offline

    AGreenPig

  6. Offline

    timtower Administrator Administrator Moderator

    @AGreenPig Open up the exported jar, check the plugin.yml and the classes to check if they are all there.
     
    AGreenPig likes this.
  7. Offline

    AGreenPig

  8. Offline

    timtower Administrator Administrator Moderator

    There is something going wrong with the java version, never seen this specific error though.
     
    AGreenPig likes this.
  9. Offline

    AGreenPig

    Well I had Installation Problems with eclipse in General. I Had to compleatly reinstall the jdk and Eclipse and was Just happy that it worked (Sort of). Should I maybe install a different ide(Like Intellij) and Copy my Code over?
     
  10. Offline

    Shqep

    What version did you use to compile and what to run the server xd?
    Seems to be a version mismatch error thingy ;-;
     
    AGreenPig likes this.
  11. Offline

    AGreenPig

    I have JDK 12 installed but I'm running JavaSE-10...My Complier is compliance level 10, but I tried changing and it still doesn't work... Programming on Spigot 1.14 and my server is on 1.14.2.Is that a problem?
     
  12. Offline

    timtower Administrator Administrator Moderator

    Server version difference is no problem here.
    Try to get a lower jdk version installed
     
    AGreenPig likes this.
  13. Offline

    AGreenPig

    Yes it worked! I had to compleatly reinstall the newest eclipse and changed the build path to 1.8! Thanks!
     
  14. Offline

    KarimAKL

    Why would you need to reinstall Eclipse?
     
    AGreenPig likes this.
  15. Offline

    AGreenPig

    I don't know... I Had Eclipse Photon installed and if I tried to Change the bulid path to JavaSE-8 It would give me an Error by my package. I installed Eclipse 2019-03 and then IT worked perfectly!

    This was my Error:
    The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files

    But honestly I don't Care why it works, Just THAT it works:p
     
Thread Status:
Not open for further replies.

Share This Page