• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Error beim Laden eines Plugins

adagi

Kuhfänger
Registriert
3 Oktober 2015
Beiträge
65
Diamanten
301
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:
name: JNR
author: adagi
version: 0.1.0
description: Jump'n'Run Plugin

main: de.adagi.jnr.Main

commands:
  jumpspawn:
    usage: /<command>
    description: Setzt die Postition des Jump'n'Run Starts.
    permission: jnr.setspawn
  jumpstart:
    usage: /<command>
    description: Startet das JumpIt Minigame.
    permission: jnr.start

main
Javascript:
package de.adagi.jnr;


import java.util.Random;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;

public class Main extends JavaPlugin implements Listener {



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!"};


   
    int countdown;
    int ende = 10;
   

   
    // String fehler = "\u00A7c\u00A7lFEHLER: \u00A7r";
    // String onlyPlayers = "\u00A74Nur Spieler dürfen diesen Befehl ausführen!";
    // String noPerms = "\u00A74Du hast nicht die benötigten Berechtigungen um diesen Befehl ausführen!";
    // String pluginJump = "\u00A77[\u00A79JumpIt\u00A77] \u00A7r";
    // String enable = "\u00A7aPlugin wurde erkannt und geladen!";
    // String disable = "\u00A74Plugin wurde deaktiviert!";
    // String oneArg = "\u00A74Du musst \u00A7lGENAU \u00A7r\u00A74ein Argument angeben!";
   
    Location spawn;

    private void loadConfig()
    {
        // String fehler = "Config.fehler";
        getConfig().addDefault("fehler", "§c§lFEHLER: §r");
        // String onlyPlayers = "Config.onlyPlayers";
        getConfig().addDefault("onlyPlayers", "§4Nur Spieler dürfen diesen Befehl ausführen!");
        // String noPerms = "Config.noPerms";
        getConfig().addDefault("noPerms", "§4Du hast nicht die benötigten Berechtigungen um diesen Befehl ausführen!");
        // String pluginJump = "Config.pluginJump";
        getConfig().addDefault("pluginJump", "§7[§9JumpIt§7] §r");
        // String enable = "Config.enable";
        getConfig().addDefault("enable", "§aPlugin wurde erkannt und geladen!");
        // String disable = "Config.disable";
        getConfig().addDefault("disable", "§4Plugin wurde deaktiviert!");
        // String oneArg = "Config.oneArg";
        getConfig().addDefault("oneArg", "§4Du musst \u00A7lGENAU \u00A7r\u00A74ein Argument angeben!");
        FileConfiguration config = this.getConfig();
        config.options().copyDefaults(true);
        saveConfig();
       
        }
   

    String fehler = getConfig().getString("fehler");
    String onlyPlayers = getConfig().getString("onlyPlayers");
    String noPerms = getConfig().getString("noPerms");
    String pluginJump = getConfig().getString("pluginJump");
    String enable = getConfig().getString("enable");
    String disable = getConfig().getString("disable");
    String oneArg = getConfig().getString("oneArg");
   
   
public void onEnable() {
System.out.println(pluginJump + enable);
registerEvents();
PluginManager pm = this.getServer().getPluginManager();
pm.registerEvents(this, this);
loadConfig();

}
/*String fehler = "Config.fehler";
this.getConfig().addDefault(fehler, "§c§lFEHLER: §r");
String onlyPlayers = "Config.onlyPlayers";
this.getConfig().addDefault("onlyPlayers", "§4Nur Spieler dürfen diesen Befehl ausführen!");
String noPerms = "Config.noPerms";
this.getConfig().addDefault("noPerms", "§4Du hast nicht die benötigten Berechtigungen um diesen Befehl ausführen!");
String pluginJump = "Config.pluginJump";
this.getConfig().addDefault("pluginJump", "§7[§9JumpIt§7] §r");
String enable = "Config.enable";
this.getConfig().addDefault("enable", "§aPlugin wurde erkannt und geladen!");
String disable = "Config.disable";
this.getConfig().addDefault("disable", "§4Plugin wurde deaktiviert!");
String oneArg = "Config.oneArg";
this.getConfig().addDefault("oneArg", "§4Du musst \u00A7lGENAU \u00A7r\u00A74ein Argument angeben!");
FileConfiguration config = this.getConfig();
config.options().copyDefaults(true);
saveConfig();



}
*/
Player[] spieler = (Player[]) Bukkit.getServer().getOnlinePlayers().toArray();

public void onDisable() {
System.out.println(pluginJump + disable);
}

private void registerEvents() {
getServer().getPluginManager().registerEvents(this, this);
}


@Override
public boolean onCommand(CommandSender sender,Command cmd, String string, String[] args) {
    Player p = (Player)sender;
    if(cmd.getName().equalsIgnoreCase("jumpspawn")){
        if(sender instanceof Player){
            if (p.hasPermission("jnr.setspawn")){
               
                p.sendMessage("\u00A7aDu hast den Spawn von JumpIt erfolgreich gesetzt!");
                spawn = p.getLocation();
                return true;
               
            }else{
                p.sendMessage(pluginJump + fehler + noPerms);
                return false;
            }
        }else{
            System.out.println(pluginJump + fehler + onlyPlayers);
            return false;
        }
    }
    if(cmd.getName().equalsIgnoreCase("jumpstart")){
        if(sender instanceof Player){
            if (p.hasPermission("jnr.start")){
                ende = 10;
                p.sendMessage(pluginJump + "§eDas Spiel startet in " + ChatColor.RED + " 10 §eSekunden");
               
               
               
                return true;
            }else{
                p.sendMessage(pluginJump + fehler + noPerms);
                return false;
            }
        }else{
            System.out.println(pluginJump + fehler + onlyPlayers);
            return false;
        }
    }
   
       
    return true;

}
/* public boolean onCommand1(CommandSender sender, Command cmd, String string, String[] args) {
    Player p = (Player)sender;
    if(cmd.getName().equalsIgnoreCase("jumpstart")){
        if(sender instanceof Player){
            if (p.hasPermission("jnr.start")){
               
                p.sendMessage(pluginJump + "\u00A7eDas Spiel startet in " + ChatColor.RED + " 10 \u00A7eSekunden");
               
               
               
                return true;
            }else{
                p.sendMessage(pluginJump + fehler + noPerms);
                return false;
            }
        }else{
            System.out.println(pluginJump + fehler + onlyPlayers);
            return false;
        }
    }
   
       
    return true;
*/


@EventHandler
public void onFall(EntityDamageEvent e) {
if(!(e.getEntity() instanceof Player)) {
    return;   
}else{
    if(e.getCause().equals(DamageCause.FALL)){
        e.setCancelled(true);
    }
}


}


@EventHandler
public void onMove(PlayerMoveEvent e) {
    Player p = e.getPlayer();
    String randTodesMsg = (todesMsg[new Random().nextInt(todesMsg.length)]);
    Location loc = p.getLocation();
    double y = loc.getY();
    int todesY = 2;
    if (y <= todesY) {
        p.teleport(spawn);
        String weltname = p.getWorld().getName();
        if (!(weltname == "jumpit1" || weltname == "jumpit2" || weltname == "jumpit3" || weltname == "jumpit4" || weltname == "jumpit5" || weltname == "jumpit6" || weltname == "jumpit7" || weltname == "jumpit8")) {
            return;
        }else{
            Bukkit.broadcastMessage(pluginJump + ChatColor.RED + "" + ChatColor.BOLD + p.getName() + ChatColor.RESET + ChatColor.GOLD + randTodesMsg);
        }
       
    }
}


   



@SuppressWarnings("deprecation")
@EventHandler
public void onEffectJump(PlayerMoveEvent e) {
   
    Player p = e.getPlayer();
    Location loc = new Location(p.getWorld(), e.getTo().getX(), e.getTo().getY() - 1.0D, e.getTo().getZ());
   
    if(loc.getBlock().getType() == Material.DIAMOND_BLOCK) {
        p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 99999999, 2));
    }
   
    if(loc.getBlock().getType() == Material.REDSTONE_BLOCK) {
        p.removePotionEffect(PotionEffectType.SPEED);
        p.removePotionEffect(PotionEffectType.JUMP);
        p.removePotionEffect(PotionEffectType.BLINDNESS);
        p.removePotionEffect(PotionEffectType.CONFUSION);
        p.removePotionEffect(PotionEffectType.SLOW);
        p.removePotionEffect(PotionEffectType.POISON);
    }
   
    if(loc.getBlock().getType() == Material.EMERALD_BLOCK) {
        p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 99999999, 2));
    }
   
    if(loc.getBlock().getType() == Material.COAL_BLOCK) {
        p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 99999999, 0));
        p.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 99999999, 0));
    }
   
    if(loc.getBlock().getType() == Material.GOLD_BLOCK) {
        p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 99999999, 0));
    }
   
    /*Player[] ap = Bukkit.getOnlinePlayers();
    for(Player target : ap) {
       
    }*/
   

   
   
    if(loc.getBlock().getType() == Material.LAPIS_BLOCK) {
        p.removePotionEffect(PotionEffectType.SPEED);
        p.removePotionEffect(PotionEffectType.JUMP);
        p.removePotionEffect(PotionEffectType.BLINDNESS);
        p.removePotionEffect(PotionEffectType.CONFUSION);
        p.removePotionEffect(PotionEffectType.SLOW);
        p.removePotionEffect(PotionEffectType.POISON);
        int x = loc.getBlockX();
        int y = loc.getBlockY();
        int z = loc.getBlockZ();
        World world = loc.getWorld();
        world.getBlockAt(x, y, z).setType(Material.SEA_LANTERN);
        // JumpBlock p.setVelocity(p.getLocation().getDirection().multiply(2.0D).setY(1.7D));
        Bukkit.broadcastMessage(pluginJump + ChatColor.AQUA + p.getName() + ChatColor.GOLD + " hat das Rennen beendet!");
        Bukkit.broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 60 Sekunden!");
        p.sendTitle("§3GLÜCKWUNSCH !", "§6Du hast JumpIt als erster beendet!");


   
       
       
        this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
           
            public void run() {
            getServer().broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 30 Sekunden");
            }
            }, 20*30L);
       
        this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {

            public void run() {
            getServer().broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 20 Sekunden");
            }
            }, 20*40L);
       
        this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {

            public void run() {
            getServer().broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 10 Sekunden");
            }
            }, 20*50L);
       
            ende = 10;
            ende = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
        @Override
        public void run() {
            if (ende != 0) {
                ende--;
                for(Player target : spieler) {
                    target.setExp(ende);
                }
            }else{
                for(Player target : spieler) {
                    target.sendMessage("§aDas Spiel startet...");
                }
            }
        }
       
           
   

}, 0L, 20L);
    }
}
}

Ghosts ( damit man andere Spieler fast nicht sieht)
Javascript:
package de.adagi.jnr;

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.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;

public class Ghosts implements CommandExecutor{

   
   
    Scoreboard board;
    Team ghost;
   
    @SuppressWarnings("deprecation")
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String string, String[] args) {
        Player  p = (Player) sender;
       
        if(args.length == 0) {
           
            board = Bukkit.getScoreboardManager().getNewScoreboard();
            ghost = board.getTeam("team");
            if(ghost == null) {
                ghost = board.registerNewTeam("team");
            }
           
            ghost.setCanSeeFriendlyInvisibles(true);
           
            for(Player players : Bukkit.getOnlinePlayers()) {
                ghost.addPlayer(players);
                players.setScoreboard(board);
            }
       
        p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, 1));
       
        }
        return false;
    }
}

Und der relevante Teil des logs:
Code:
[14:09:24] [Server thread/ERROR]: Could not load 'plugins/jnr.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lorg.bukkit.entity.Player;
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:739) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at org.bukkit.Bukkit.reload(Bukkit.java:535) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_60]
Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lorg.bukkit.entity.Player;
    at de.adagi.jnr.Main.<init>(Main.java:109) ~[?:?]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_60]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_60]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_60]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[?:1.8.0_60]
    at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_60]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    ... 14 more
Ich bitte um Hilfe und freue mich über Antworten..
~ adagi
 

HardSoul

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
2 August 2012
Beiträge
759
Diamanten
251
Minecraft
HardS0ul
Also der Fehler sagt aus, das in Zeile 109 ein Fehler bei deinem Cast ist.

Javascript:
Player[] spieler = (Player[]) Bukkit.getServer().getOnlinePlayers().toArray();

Ich würde es mal so probieren:

Javascript:
List<Player> spieler = Bukkit.getServer().getOnlinePlayers().toArray();

Kann mich aber auch täuschen.
 
Oben