ServerPlugin Error beim Laden eines Plugins

Dieses Thema im Forum "Programmierung" wurde erstellt von adagi, 31. Oktober 2015.

  1. adagi
    Offline

    adagi

    Registriert seit:
    3. Oktober 2015
    Beiträge:
    65
    Ort:
    hinter dir
    Minecraft:
    adagi
    Hallo,
    ich bin gerade dabei ein Jump'n'Run Plugin zu schreiben (mit Spezialeffekten und so :D ). Seit kurzem kommt ein Error,wenn ich das Plugin auf dem Spigot Server laden will. Ich würde mich über Hilfe freuen.

    plugin.yml
    Code (Text):
    1. name: JNR
    2. author: adagi
    3. version: 0.1.0
    4. description: Jump'n'Run Plugin
    5.  
    6. main: de.adagi.jnr.Main
    7.  
    8. commands:
    9.   jumpspawn:
    10.     usage: /<command>
    11.     description: Setzt die Postition des Jump'n'Run Starts.
    12.     permission: jnr.setspawn
    13.   jumpstart:
    14.     usage: /<command>
    15.     description: Startet das JumpIt Minigame.
    16.     permission: jnr.start
    17.  
    18.      
    main
    Code (Javascript):
    1. package de.adagi.jnr;
    2.  
    3.  
    4. import java.util.Random;
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.Location;
    8. import org.bukkit.Material;
    9. import org.bukkit.World;
    10. import org.bukkit.command.Command;
    11. import org.bukkit.command.CommandSender;
    12. import org.bukkit.configuration.file.FileConfiguration;
    13. import org.bukkit.entity.Player;
    14. import org.bukkit.event.EventHandler;
    15. import org.bukkit.event.Listener;
    16. import org.bukkit.event.entity.EntityDamageEvent;
    17. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    18. import org.bukkit.event.player.PlayerMoveEvent;
    19. import org.bukkit.plugin.PluginManager;
    20. import org.bukkit.plugin.java.JavaPlugin;
    21. import org.bukkit.potion.PotionEffect;
    22. import org.bukkit.potion.PotionEffectType;
    23.  
    24. public class Main extends JavaPlugin implements Listener {
    25.  
    26.  
    27.  
    28. String todesMsg []= { " dachte er sei Batman!", " war zu jung um zu sterben!", " hat sich überschätzt!", " ist geflogen!", " ist an Altersschwäche gestorben!", " ist gestorben! R.I.P !", " hat vergessen seine Hacks einzuschalten!", " ist auf seinem Ohrenschmalz ausgerutscht!", " wurde vom Antihack-Plugin getötet!"};
    29.  
    30.  
    31.    
    32.     int countdown;
    33.     int ende = 10;
    34.    
    35.  
    36.    
    37.     // String fehler = "\u00A7c\u00A7lFEHLER: \u00A7r";
    38.     // String onlyPlayers = "\u00A74Nur Spieler dürfen diesen Befehl ausführen!";
    39.     // String noPerms = "\u00A74Du hast nicht die benötigten Berechtigungen um diesen Befehl ausführen!";
    40.     // String pluginJump = "\u00A77[\u00A79JumpIt\u00A77] \u00A7r";
    41.     // String enable = "\u00A7aPlugin wurde erkannt und geladen!";
    42.     // String disable = "\u00A74Plugin wurde deaktiviert!";
    43.     // String oneArg = "\u00A74Du musst \u00A7lGENAU \u00A7r\u00A74ein Argument angeben!";
    44.    
    45.     Location spawn;
    46.  
    47.     private void loadConfig()
    48.     {
    49.         // String fehler = "Config.fehler";
    50.         getConfig().addDefault("fehler", "§c§lFEHLER: §r");
    51.         // String onlyPlayers = "Config.onlyPlayers";
    52.         getConfig().addDefault("onlyPlayers", "§4Nur Spieler dürfen diesen Befehl ausführen!");
    53.         // String noPerms = "Config.noPerms";
    54.         getConfig().addDefault("noPerms", "§4Du hast nicht die benötigten Berechtigungen um diesen Befehl ausführen!");
    55.         // String pluginJump = "Config.pluginJump";
    56.         getConfig().addDefault("pluginJump", "§7[§9JumpIt§7] §r");
    57.         // String enable = "Config.enable";
    58.         getConfig().addDefault("enable", "§aPlugin wurde erkannt und geladen!");
    59.         // String disable = "Config.disable";
    60.         getConfig().addDefault("disable", "§4Plugin wurde deaktiviert!");
    61.         // String oneArg = "Config.oneArg";
    62.         getConfig().addDefault("oneArg", "§4Du musst \u00A7lGENAU \u00A7r\u00A74ein Argument angeben!");
    63.         FileConfiguration config = this.getConfig();
    64.         config.options().copyDefaults(true);
    65.         saveConfig();
    66.        
    67.         }
    68.    
    69.  
    70.     String fehler = getConfig().getString("fehler");
    71.     String onlyPlayers = getConfig().getString("onlyPlayers");
    72.     String noPerms = getConfig().getString("noPerms");
    73.     String pluginJump = getConfig().getString("pluginJump");
    74.     String enable = getConfig().getString("enable");
    75.     String disable = getConfig().getString("disable");
    76.     String oneArg = getConfig().getString("oneArg");
    77.    
    78.    
    79. public void onEnable() {
    80. System.out.println(pluginJump + enable);
    81. registerEvents();
    82. PluginManager pm = this.getServer().getPluginManager();
    83. pm.registerEvents(this, this);
    84. loadConfig();
    85.  
    86. }
    87. /*String fehler = "Config.fehler";
    88. this.getConfig().addDefault(fehler, "§c§lFEHLER: §r");
    89. String onlyPlayers = "Config.onlyPlayers";
    90. this.getConfig().addDefault("onlyPlayers", "§4Nur Spieler dürfen diesen Befehl ausführen!");
    91. String noPerms = "Config.noPerms";
    92. this.getConfig().addDefault("noPerms", "§4Du hast nicht die benötigten Berechtigungen um diesen Befehl ausführen!");
    93. String pluginJump = "Config.pluginJump";
    94. this.getConfig().addDefault("pluginJump", "§7[§9JumpIt§7] §r");
    95. String enable = "Config.enable";
    96. this.getConfig().addDefault("enable", "§aPlugin wurde erkannt und geladen!");
    97. String disable = "Config.disable";
    98. this.getConfig().addDefault("disable", "§4Plugin wurde deaktiviert!");
    99. String oneArg = "Config.oneArg";
    100. this.getConfig().addDefault("oneArg", "§4Du musst \u00A7lGENAU \u00A7r\u00A74ein Argument angeben!");
    101. FileConfiguration config = this.getConfig();
    102. config.options().copyDefaults(true);
    103. saveConfig();
    104.  
    105.  
    106.  
    107. }
    108. */
    109. Player[] spieler = (Player[]) Bukkit.getServer().getOnlinePlayers().toArray();
    110.  
    111. public void onDisable() {
    112. System.out.println(pluginJump + disable);
    113. }
    114.  
    115. private void registerEvents() {
    116. getServer().getPluginManager().registerEvents(this, this);
    117. }
    118.  
    119.  
    120. @Override
    121. public boolean onCommand(CommandSender sender,Command cmd, String string, String[] args) {
    122.     Player p = (Player)sender;
    123.     if(cmd.getName().equalsIgnoreCase("jumpspawn")){
    124.         if(sender instanceof Player){
    125.             if (p.hasPermission("jnr.setspawn")){
    126.                
    127.                 p.sendMessage("\u00A7aDu hast den Spawn von JumpIt erfolgreich gesetzt!");
    128.                 spawn = p.getLocation();
    129.                 return true;
    130.                
    131.             }else{
    132.                 p.sendMessage(pluginJump + fehler + noPerms);
    133.                 return false;
    134.             }
    135.         }else{
    136.             System.out.println(pluginJump + fehler + onlyPlayers);
    137.             return false;
    138.         }
    139.     }
    140.     if(cmd.getName().equalsIgnoreCase("jumpstart")){
    141.         if(sender instanceof Player){
    142.             if (p.hasPermission("jnr.start")){
    143.                 ende = 10;
    144.                 p.sendMessage(pluginJump + "§eDas Spiel startet in " + ChatColor.RED + " 10 §eSekunden");
    145.                
    146.                
    147.                
    148.                 return true;
    149.             }else{
    150.                 p.sendMessage(pluginJump + fehler + noPerms);
    151.                 return false;
    152.             }
    153.         }else{
    154.             System.out.println(pluginJump + fehler + onlyPlayers);
    155.             return false;
    156.         }
    157.     }
    158.    
    159.        
    160.     return true;
    161.  
    162. }
    163. /* public boolean onCommand1(CommandSender sender, Command cmd, String string, String[] args) {
    164.     Player p = (Player)sender;
    165.     if(cmd.getName().equalsIgnoreCase("jumpstart")){
    166.         if(sender instanceof Player){
    167.             if (p.hasPermission("jnr.start")){
    168.                
    169.                 p.sendMessage(pluginJump + "\u00A7eDas Spiel startet in " + ChatColor.RED + " 10 \u00A7eSekunden");
    170.                
    171.                
    172.                
    173.                 return true;
    174.             }else{
    175.                 p.sendMessage(pluginJump + fehler + noPerms);
    176.                 return false;
    177.             }
    178.         }else{
    179.             System.out.println(pluginJump + fehler + onlyPlayers);
    180.             return false;
    181.         }
    182.     }
    183.    
    184.        
    185.     return true;
    186. */
    187.  
    188.  
    189. @EventHandler
    190. public void onFall(EntityDamageEvent e) {
    191. if(!(e.getEntity() instanceof Player)) {
    192.     return;  
    193. }else{
    194.     if(e.getCause().equals(DamageCause.FALL)){
    195.         e.setCancelled(true);
    196.     }
    197. }
    198.  
    199.  
    200. }
    201.  
    202.  
    203. @EventHandler
    204. public void onMove(PlayerMoveEvent e) {
    205.     Player p = e.getPlayer();
    206.     String randTodesMsg = (todesMsg[new Random().nextInt(todesMsg.length)]);
    207.     Location loc = p.getLocation();
    208.     double y = loc.getY();
    209.     int todesY = 2;
    210.     if (y <= todesY) {
    211.         p.teleport(spawn);
    212.         String weltname = p.getWorld().getName();
    213.         if (!(weltname == "jumpit1" || weltname == "jumpit2" || weltname == "jumpit3" || weltname == "jumpit4" || weltname == "jumpit5" || weltname == "jumpit6" || weltname == "jumpit7" || weltname == "jumpit8")) {
    214.             return;
    215.         }else{
    216.             Bukkit.broadcastMessage(pluginJump + ChatColor.RED + "" + ChatColor.BOLD + p.getName() + ChatColor.RESET + ChatColor.GOLD + randTodesMsg);
    217.         }
    218.        
    219.     }
    220. }
    221.  
    222.  
    223.    
    224.  
    225.  
    226.  
    227. @SuppressWarnings("deprecation")
    228. @EventHandler
    229. public void onEffectJump(PlayerMoveEvent e) {
    230.    
    231.     Player p = e.getPlayer();
    232.     Location loc = new Location(p.getWorld(), e.getTo().getX(), e.getTo().getY() - 1.0D, e.getTo().getZ());
    233.    
    234.     if(loc.getBlock().getType() == Material.DIAMOND_BLOCK) {
    235.         p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 99999999, 2));
    236.     }
    237.    
    238.     if(loc.getBlock().getType() == Material.REDSTONE_BLOCK) {
    239.         p.removePotionEffect(PotionEffectType.SPEED);
    240.         p.removePotionEffect(PotionEffectType.JUMP);
    241.         p.removePotionEffect(PotionEffectType.BLINDNESS);
    242.         p.removePotionEffect(PotionEffectType.CONFUSION);
    243.         p.removePotionEffect(PotionEffectType.SLOW);
    244.         p.removePotionEffect(PotionEffectType.POISON);
    245.     }
    246.    
    247.     if(loc.getBlock().getType() == Material.EMERALD_BLOCK) {
    248.         p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 99999999, 2));
    249.     }
    250.    
    251.     if(loc.getBlock().getType() == Material.COAL_BLOCK) {
    252.         p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 99999999, 0));
    253.         p.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 99999999, 0));
    254.     }
    255.    
    256.     if(loc.getBlock().getType() == Material.GOLD_BLOCK) {
    257.         p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 99999999, 0));
    258.     }
    259.    
    260.     /*Player[] ap = Bukkit.getOnlinePlayers();
    261.     for(Player target : ap) {
    262.        
    263.     }*/
    264.    
    265.  
    266.    
    267.    
    268.     if(loc.getBlock().getType() == Material.LAPIS_BLOCK) {
    269.         p.removePotionEffect(PotionEffectType.SPEED);
    270.         p.removePotionEffect(PotionEffectType.JUMP);
    271.         p.removePotionEffect(PotionEffectType.BLINDNESS);
    272.         p.removePotionEffect(PotionEffectType.CONFUSION);
    273.         p.removePotionEffect(PotionEffectType.SLOW);
    274.         p.removePotionEffect(PotionEffectType.POISON);
    275.         int x = loc.getBlockX();
    276.         int y = loc.getBlockY();
    277.         int z = loc.getBlockZ();
    278.         World world = loc.getWorld();
    279.         world.getBlockAt(x, y, z).setType(Material.SEA_LANTERN);
    280.         // JumpBlock p.setVelocity(p.getLocation().getDirection().multiply(2.0D).setY(1.7D));
    281.         Bukkit.broadcastMessage(pluginJump + ChatColor.AQUA + p.getName() + ChatColor.GOLD + " hat das Rennen beendet!");
    282.         Bukkit.broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 60 Sekunden!");
    283.         p.sendTitle("§3GLÜCKWUNSCH !", "§6Du hast JumpIt als erster beendet!");
    284.  
    285.  
    286.    
    287.        
    288.        
    289.         this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    290.            
    291.             public void run() {
    292.             getServer().broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 30 Sekunden");
    293.             }
    294.             }, 20*30L);
    295.        
    296.         this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    297.  
    298.             public void run() {
    299.             getServer().broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 20 Sekunden");
    300.             }
    301.             }, 20*40L);
    302.        
    303.         this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    304.  
    305.             public void run() {
    306.             getServer().broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 10 Sekunden");
    307.             }
    308.             }, 20*50L);
    309.        
    310.             ende = 10;
    311.             ende = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
    312.         @Override
    313.         public void run() {
    314.             if (ende != 0) {
    315.                 ende--;
    316.                 for(Player target : spieler) {
    317.                     target.setExp(ende);
    318.                 }
    319.             }else{
    320.                 for(Player target : spieler) {
    321.                     target.sendMessage("§aDas Spiel startet...");
    322.                 }
    323.             }
    324.         }
    325.        
    326.            
    327.    
    328.  
    329. }, 0L, 20L);
    330.     }
    331. }
    332. }
    333.  
    Ghosts ( damit man andere Spieler fast nicht sieht)
    Code (Javascript):
    1. package de.adagi.jnr;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.command.Command;
    5. import org.bukkit.command.CommandExecutor;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.potion.PotionEffect;
    9. import org.bukkit.potion.PotionEffectType;
    10. import org.bukkit.scoreboard.Scoreboard;
    11. import org.bukkit.scoreboard.Team;
    12.  
    13. public class Ghosts implements CommandExecutor{
    14.  
    15.    
    16.    
    17.     Scoreboard board;
    18.     Team ghost;
    19.    
    20.     @SuppressWarnings("deprecation")
    21.     @Override
    22.     public boolean onCommand(CommandSender sender, Command cmd, String string, String[] args) {
    23.         Player  p = (Player) sender;
    24.        
    25.         if(args.length == 0) {
    26.            
    27.             board = Bukkit.getScoreboardManager().getNewScoreboard();
    28.             ghost = board.getTeam("team");
    29.             if(ghost == null) {
    30.                 ghost = board.registerNewTeam("team");
    31.             }
    32.            
    33.             ghost.setCanSeeFriendlyInvisibles(true);
    34.            
    35.             for(Player players : Bukkit.getOnlinePlayers()) {
    36.                 ghost.addPlayer(players);
    37.                 players.setScoreboard(board);
    38.             }
    39.        
    40.         p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, 1));
    41.        
    42.         }
    43.         return false;
    44.     }
    45. }
    Und der relevante Teil des logs:
    Code (Text):
    1. [14:09:24] [Server thread/ERROR]: Could not load 'plugins/jnr.jar' in folder 'plugins'
    2. org.bukkit.plugin.InvalidPluginException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lorg.bukkit.entity.Player;
    3.     at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    4.     at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    5.     at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    6.     at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    7.     at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:739) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    8.     at org.bukkit.Bukkit.reload(Bukkit.java:535) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    9.     at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    10.     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    11.     at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    12.     at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    13.     at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    14.     at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    15.     at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    16.     at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    17.     at java.lang.Thread.run(Thread.java:745) [?:1.8.0_60]
    18. Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lorg.bukkit.entity.Player;
    19.     at de.adagi.jnr.Main.<init>(Main.java:109) ~[?:?]
    20.     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_60]
    21.     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_60]
    22.     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_60]
    23.     at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[?:1.8.0_60]
    24.     at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_60]
    25.     at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    26.     at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    27.     ... 14 more
    Ich bitte um Hilfe und freue mich über Antworten..
    ~ adagi
     
    #1
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    1. Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lorg.bukkit.entity.Player;
    2. at de.adagi.jnr.Main.<init>(Main.java:109) ~[?:?]
    ...
     
    #2
  3. adagi
    Offline

    adagi

    Registriert seit:
    3. Oktober 2015
    Beiträge:
    65
    Ort:
    hinter dir
    Minecraft:
    adagi
    Danke.. :) Aber ich verstehe nicht, was ich denn genau ändern muss.
    Kann mir da jemand helfen? :D
    ~ adagi
     
    #3
  4. Basti07711
    Offline

    Basti07711 Ehem. Teammitglied

    Registriert seit:
    2. August 2012
    Beiträge:
    714
    Ort:
    Hinter dir
    Minecraft:
    Basti07711
    Also der Fehler sagt aus, das in Zeile 109 ein Fehler bei deinem Cast ist.

    Code (Javascript):
    1. Player[] spieler = (Player[]) Bukkit.getServer().getOnlinePlayers().toArray();
    Ich würde es mal so probieren:

    Code (Javascript):
    1. List<Player> spieler = Bukkit.getServer().getOnlinePlayers().toArray();
    Kann mich aber auch täuschen.
     
    #4
  5. Victini151
    Online

    Victini151

    #5
  6. letsz0ck3r
    Offline

    letsz0ck3r

    Registriert seit:
    14. Februar 2014
    Beiträge:
    4
    Minecraft:
    Heddo
    Du kannst das auch so nutzen:

    Code (Text):
    1. Player[] spieler = Bukkit.getOnlinePlayers().toArray(new Player[Bukkit.getOnlinePlayers().size()]);
     
    #6
  7. adagi
    Offline

    adagi

    Registriert seit:
    3. Oktober 2015
    Beiträge:
    65
    Ort:
    hinter dir
    Minecraft:
    adagi
    #7