Hallo,
ich bin gerade dabei ein Jump'n'Run Plugin zu schreiben (mit Spezialeffekten und so
). Seit kurzem kommt ein Error,wenn ich das Plugin auf dem Spigot Server laden will. Ich würde mich über Hilfe freuen.
plugin.yml
main
Ghosts ( damit man andere Spieler fast nicht sieht)
Und der relevante Teil des logs:
Ich bitte um Hilfe und freue mich über Antworten..
~ adagi
ich bin gerade dabei ein Jump'n'Run Plugin zu schreiben (mit Spezialeffekten und so
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
~ adagi