Hallo! Ich bekomme diese Fehlermeldung:
[xcode=java]
[16:58:05] [Server thread/INFO]: Starting minecraft server version 1.7.2
[16:58:05] [Server thread/INFO]: Loading properties
[16:58:05] [Server thread/INFO]: Default game type: SURVIVAL
[16:58:05] [Server thread/INFO]: Generating keypair
[16:58:05] [Server thread/INFO]: Starting Minecraft server on 25.71.176.112:25565
[16:58:06] [Server thread/INFO]: This server is running CraftBukkit version git-Bukkit-1.7.2-R0.2-b2974jnks (MC: 1.7.2) (Implementing API version 1.7.2-R0.2)
[16:58:06] [Server thread/INFO]: [Permission***] sql backend registered!
[16:58:06] [Server thread/INFO]: [Permission***] file backend registered!
[16:58:06] [Server thread/ERROR]: Could not load 'plugins\jumper.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NoSuchMethodException: me.thrustlp.jumper.Main.<init>()
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184) ~[cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java
08) ~[cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:231) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugins(CraftServer.java:255) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.craftbukkit.v1_7_R1.CraftServer.<init>(CraftServer.java:233) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.PlayerList.<init>(PlayerList.java:63) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.DedicatedPlayerList.<init>(SourceFile:14) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:126) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:424) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
Caused by: java.lang.NoSuchMethodException: me.thrustlp.jumper.Main.<init>()
at java.lang.Class.getConstructor0(Unknown Source) ~[?:1.7.0_51]
at java.lang.Class.getConstructor(Unknown Source) ~[?:1.7.0_51]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:176) ~[cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
... 9 more
[16:58:06] [Server thread/INFO]: [Test] Loading Test v0.1
[16:58:06] [Server thread/INFO]: [TellMe] Loading TellMe v0.1
[16:58:06] [Server thread/INFO]: [WirelessRedstone] Loading WirelessRedstone v1.9.2
[16:58:06] [Server thread/INFO]: [Fight] Loading Fight v0.1
[16:58:06] [Server thread/INFO]: [Permission***] Loading Permission*** v1.20.4
[16:58:06] [Server thread/INFO]: [Permission***] Initializing file backend
[16:58:06] [Server thread/INFO]: Permissions file successfully reloaded
[16:58:06] [Server thread/INFO]: [JustWarp] Loading JustWarp v1.4
[16:58:06] [Server thread/INFO]: [KriegVoter] Loading KriegVoter v0.1
[16:58:06] [Server thread/INFO]: [InfoMe] Loading InfoMe v0.1
[16:58:06] [Server thread/INFO]: Preparing level "world"
[16:58:06] [Server thread/INFO]: Preparing start region for level 0 (Seed: 1650958302205631401)
[16:58:06] [Thread-6/INFO]: ----- Bukkit Auto Updater -----
[16:58:06] [Thread-6/INFO]: It appears that you're running a Beta Build, when you've specified in bukkit.yml that you prefer to run Recommended Builds.
[16:58:06] [Thread-6/INFO]: If you would like to be kept informed about new Beta Build releases, it is recommended that you change 'preferred-channel' in your bukkit.yml to 'beta'.
[16:58:06] [Thread-6/INFO]: With that set, you will be told whenever a new version is available for download, so that you can always keep up to date and secure with the latest fixes.
[16:58:06] [Thread-6/INFO]: If you would like to disable this warning, simply set 'suggest-channels' to false in bukkit.yml.
[16:58:06] [Thread-6/INFO]: ----- ------------------- -----
[16:58:06] [Server thread/INFO]: Preparing start region for level 1 (Seed: 851782465560507879)
[16:58:07] [Server thread/INFO]: Preparing start region for level 2 (Seed: 851782465560507879)
[16:58:07] [Server thread/INFO]: [Test] Enabling Test v0.1
[16:58:07] [Server thread/INFO]: An
[16:58:07] [Server thread/INFO]: [TellMe] Enabling TellMe v0.1
[16:58:07] [Server thread/INFO]: [TellMe] Status:ON
[16:58:07] [Server thread/INFO]: [WirelessRedstone] Enabling WirelessRedstone v1.9.2
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m WirelessRedstone version 1.9.2 is loading...[m
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m Loading Permissions...[m
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m Using Permission*** for permissions ![m
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m Loaded Permissions...[m
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m Registering commands...[m
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m Loading Chunks...[m
[16:58:07] [Server thread/INFO]: WirelessRedstone version 1.9.2 is enabled!
[16:58:07] [Server thread/INFO]: [Fight] Enabling Fight v0.1
[16:58:07] [Server thread/INFO]: [Fight] Aktiv! ThrustLP haftet nicht fuer schaeden!
[16:58:07] [Server thread/INFO]: [Permission***] Enabling Permission*** v1.20.4
[16:58:07] [Server thread/INFO]: [JustWarp] Enabling JustWarp v1.4
[16:58:07] [Server thread/INFO]: JustWarp version 1.4 is enabled!
[16:58:07] [Server thread/INFO]: [KriegVoter] Enabling KriegVoter v0.1
[16:58:07] [Server thread/INFO]: [KriegVoter] Enabled//ThrustLP übernimmt keinerlei Haftung für am Server entstandene Schäden!
[16:58:07] [Server thread/INFO]: [InfoMe] Enabling InfoMe v0.1
[16:58:07] [Server thread/INFO]: [TellMe] Status:ON
[16:58:07] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
[16:58:07] [Server thread/INFO]: Done (1,587s)! For help, type "help" or "?"
[16:58:10] [Server thread/INFO]: CONSOLE: Stopping the server..[m
[16:58:10] [Server thread/INFO]: Stopping server
[16:58:10] [Server thread/INFO]: [InfoMe] Disabling InfoMe v0.1
[16:58:10] [Server thread/INFO]: [TellMe] Beende...Beendet!
[16:58:10] [Server thread/INFO]: [KriegVoter] Disabling KriegVoter v0.1
[16:58:10] [Server thread/INFO]: [KriegVoter] Disabled
[16:58:10] [Server thread/INFO]: [JustWarp] Disabling JustWarp v1.4
[16:58:10] [Server thread/INFO]: JustWarp version 1.4 stopping...
[16:58:10] [Server thread/INFO]: [Permission***] Disabling Permission*** v1.20.4
[16:58:10] [Server thread/INFO]: Permissions file successfully reloaded
[16:58:10] [Server thread/INFO]: [Fight] Disabling Fight v0.1
[16:58:10] [Server thread/INFO]: [Fight] Deaktiviert! ThrustLP haftet nicht fuer schaeden!
[16:58:10] [Server thread/INFO]: [WirelessRedstone] Disabling WirelessRedstone v1.9.2
[16:58:10] [Server thread/INFO]: [TellMe] Disabling TellMe v0.1
[16:58:10] [Server thread/INFO]: [TellMe] Beende...Beendet!
[16:58:10] [Server thread/INFO]: [Test] Disabling Test v0.1
[16:58:10] [Server thread/INFO]: An
[16:58:10] [Server thread/INFO]: Saving players
[16:58:10] [Server thread/INFO]: Saving worlds
[16:58:10] [Server thread/INFO]: Saving chunks for level 'world'/Overworld
[16:58:10] [Server thread/INFO]: Saving chunks for level 'world_nether'/Nether
[16:58:10] [Server thread/INFO]: Saving chunks for level 'world_the_end'/The End
[16:58:10] [Thread-4/INFO]: Stopping server
[16:58:10] [Thread-4/INFO]: Saving players
[16:58:10] [Thread-4/INFO]: Saving worlds
[16:58:10] [Thread-4/INFO]: Saving chunks for level 'world'/Overworld
[/xcode]
bei diesem Plugin:
[xcode=java]
package me.thrustlp.jumper;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener, ConfigurationSerializable{
private HashMap<String, Location> locs1 = new HashMap<String, Location>();
private HashMap<String, Location> locs2 = new HashMap<String, Location>();
private HashMap<String, Main> regions = new HashMap<String, Main>();
private int minx, miny, minz;
private int maxx, maxy, maxz;
private World world;
public Main (Location loc1, Location loc2){
this.minx = Math.min(loc1.getBlockX(), loc2.getBlockX());
this.miny = Math.min(loc1.getBlockY(), loc2.getBlockY());
this.minz = Math.min(loc1.getBlockZ(), loc2.getBlockZ());
this.maxx = Math.max(loc1.getBlockX(), loc2.getBlockX());
this.maxy = Math.max(loc1.getBlockY(), loc2.getBlockY());
this.maxz = Math.max(loc1.getBlockZ(), loc2.getBlockZ());
this.world = loc1.getWorld();
}
@Override
public void onEnable(){
System.out.println("[Jumper] Aktiv! ThrustLP haftet nicht fuer schaeden!");
File file = new File("plugins/jumper", "arenas.yml");
FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
for (String region : cfg.getConfigurationSection("").getKeys(false)){
this.regions.put(region.toLowerCase(), (Main) cfg.get(region));
}
}
@Override
public void onDisable(){
System.out.println("[Jumper] Deaktiviert! ThrustLP haftet nicht fuer schaeden!");
File file = new File("plugins/jumper", "arenas.yml");
FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
for (String region : this.regions.keySet()){
cfg.set(region, this.regions.get(region));
try {
cfg.save(file);
System.out.println("Arenas saved");
} catch (IOException e) {
e.printStackTrace();
}
}
}
public boolean onCommand(CommandSender sender, Command cmd, String cmdlabel, String[] args){
Player p = (Player) sender;
if(!(sender instanceof Player)){
System.out.println("Du bist kein Spieler");
}else{
if(cmd.getName().equalsIgnoreCase("jumper")){
Location loc = p.getLocation();
if(args.length == 0){
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.GREEN + "Hier siehst du alle Commands");
p.sendMessage(ChatColor.GREEN + "/jumper -- Bringt dich zu allen Commands");
}else{
if(args[0].equalsIgnoreCase("pos1")){
this.locs1.put(p.getName(), loc);
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.GREEN + "Arenapunkt 1 gesetzt!");
}
if(args[0].equalsIgnoreCase("pos2")){
this.locs2.put(p.getName(), loc);
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.GREEN + "Arenapunkt 2 gesetzt!");
}
if(args[0].equalsIgnoreCase("create")){
if(args.length == 2){
Location loc1 = this.locs1.get(p.getName());
Location loc2 = this.locs2.get(p.getName());
if(loc1 == null || loc2 == null){
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.RED + "Setze zuerst Arenapunkte!");
}else if(loc1.getWorld() != loc2.getWorld()){
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.RED + "Die Arenapunkte müssen in der gleichen Welt sein!");
}else{
String name = args[1].toLowerCase();
if(this.regions.containsKey(name)){
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.RED + "Die Arena" + ChatColor.AQUA + name + " gibt es schon!");
return true;
}else{
this.regions.put(name, new Main(loc1, loc2));
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.GREEN + "Arena " + name + "erstellt!");
}
}
}else{
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.RED + "Benutze /jumper create [ARENANAME]");
}
}
}
return true;
}
}
return false;
}
@Override
public Map<String, Object> serialize() {
Map<String, Object> o = new HashMap<String, Object>();
o.put("minx", this.minx);
o.put("miny", this.miny);
o.put("minz", this.minz);
o.put("maxx", this.maxx);
o.put("maxy", this.maxy);
o.put("maxz", this.maxz);
o.put("world", this.world.getName());
return o;
}
}
[/xcode]
Wieso? Was muss ich ändern?
[xcode=java]
[16:58:05] [Server thread/INFO]: Starting minecraft server version 1.7.2
[16:58:05] [Server thread/INFO]: Loading properties
[16:58:05] [Server thread/INFO]: Default game type: SURVIVAL
[16:58:05] [Server thread/INFO]: Generating keypair
[16:58:05] [Server thread/INFO]: Starting Minecraft server on 25.71.176.112:25565
[16:58:06] [Server thread/INFO]: This server is running CraftBukkit version git-Bukkit-1.7.2-R0.2-b2974jnks (MC: 1.7.2) (Implementing API version 1.7.2-R0.2)
[16:58:06] [Server thread/INFO]: [Permission***] sql backend registered!
[16:58:06] [Server thread/INFO]: [Permission***] file backend registered!
[16:58:06] [Server thread/ERROR]: Could not load 'plugins\jumper.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NoSuchMethodException: me.thrustlp.jumper.Main.<init>()
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184) ~[cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:231) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugins(CraftServer.java:255) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.craftbukkit.v1_7_R1.CraftServer.<init>(CraftServer.java:233) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.PlayerList.<init>(PlayerList.java:63) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.DedicatedPlayerList.<init>(SourceFile:14) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:126) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:424) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
Caused by: java.lang.NoSuchMethodException: me.thrustlp.jumper.Main.<init>()
at java.lang.Class.getConstructor0(Unknown Source) ~[?:1.7.0_51]
at java.lang.Class.getConstructor(Unknown Source) ~[?:1.7.0_51]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:176) ~[cb.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
... 9 more
[16:58:06] [Server thread/INFO]: [Test] Loading Test v0.1
[16:58:06] [Server thread/INFO]: [TellMe] Loading TellMe v0.1
[16:58:06] [Server thread/INFO]: [WirelessRedstone] Loading WirelessRedstone v1.9.2
[16:58:06] [Server thread/INFO]: [Fight] Loading Fight v0.1
[16:58:06] [Server thread/INFO]: [Permission***] Loading Permission*** v1.20.4
[16:58:06] [Server thread/INFO]: [Permission***] Initializing file backend
[16:58:06] [Server thread/INFO]: Permissions file successfully reloaded
[16:58:06] [Server thread/INFO]: [JustWarp] Loading JustWarp v1.4
[16:58:06] [Server thread/INFO]: [KriegVoter] Loading KriegVoter v0.1
[16:58:06] [Server thread/INFO]: [InfoMe] Loading InfoMe v0.1
[16:58:06] [Server thread/INFO]: Preparing level "world"
[16:58:06] [Server thread/INFO]: Preparing start region for level 0 (Seed: 1650958302205631401)
[16:58:06] [Thread-6/INFO]: ----- Bukkit Auto Updater -----
[16:58:06] [Thread-6/INFO]: It appears that you're running a Beta Build, when you've specified in bukkit.yml that you prefer to run Recommended Builds.
[16:58:06] [Thread-6/INFO]: If you would like to be kept informed about new Beta Build releases, it is recommended that you change 'preferred-channel' in your bukkit.yml to 'beta'.
[16:58:06] [Thread-6/INFO]: With that set, you will be told whenever a new version is available for download, so that you can always keep up to date and secure with the latest fixes.
[16:58:06] [Thread-6/INFO]: If you would like to disable this warning, simply set 'suggest-channels' to false in bukkit.yml.
[16:58:06] [Thread-6/INFO]: ----- ------------------- -----
[16:58:06] [Server thread/INFO]: Preparing start region for level 1 (Seed: 851782465560507879)
[16:58:07] [Server thread/INFO]: Preparing start region for level 2 (Seed: 851782465560507879)
[16:58:07] [Server thread/INFO]: [Test] Enabling Test v0.1
[16:58:07] [Server thread/INFO]: An
[16:58:07] [Server thread/INFO]: [TellMe] Enabling TellMe v0.1
[16:58:07] [Server thread/INFO]: [TellMe] Status:ON
[16:58:07] [Server thread/INFO]: [WirelessRedstone] Enabling WirelessRedstone v1.9.2
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m WirelessRedstone version 1.9.2 is loading...[m
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m Loading Permissions...[m
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m Using Permission*** for permissions ![m
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m Loaded Permissions...[m
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m Registering commands...[m
[16:58:07] [Server thread/INFO]: [0;31;1m[WirelessRedstone][m Loading Chunks...[m
[16:58:07] [Server thread/INFO]: WirelessRedstone version 1.9.2 is enabled!
[16:58:07] [Server thread/INFO]: [Fight] Enabling Fight v0.1
[16:58:07] [Server thread/INFO]: [Fight] Aktiv! ThrustLP haftet nicht fuer schaeden!
[16:58:07] [Server thread/INFO]: [Permission***] Enabling Permission*** v1.20.4
[16:58:07] [Server thread/INFO]: [JustWarp] Enabling JustWarp v1.4
[16:58:07] [Server thread/INFO]: JustWarp version 1.4 is enabled!
[16:58:07] [Server thread/INFO]: [KriegVoter] Enabling KriegVoter v0.1
[16:58:07] [Server thread/INFO]: [KriegVoter] Enabled//ThrustLP übernimmt keinerlei Haftung für am Server entstandene Schäden!
[16:58:07] [Server thread/INFO]: [InfoMe] Enabling InfoMe v0.1
[16:58:07] [Server thread/INFO]: [TellMe] Status:ON
[16:58:07] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
[16:58:07] [Server thread/INFO]: Done (1,587s)! For help, type "help" or "?"
[16:58:10] [Server thread/INFO]: CONSOLE: Stopping the server..[m
[16:58:10] [Server thread/INFO]: Stopping server
[16:58:10] [Server thread/INFO]: [InfoMe] Disabling InfoMe v0.1
[16:58:10] [Server thread/INFO]: [TellMe] Beende...Beendet!
[16:58:10] [Server thread/INFO]: [KriegVoter] Disabling KriegVoter v0.1
[16:58:10] [Server thread/INFO]: [KriegVoter] Disabled
[16:58:10] [Server thread/INFO]: [JustWarp] Disabling JustWarp v1.4
[16:58:10] [Server thread/INFO]: JustWarp version 1.4 stopping...
[16:58:10] [Server thread/INFO]: [Permission***] Disabling Permission*** v1.20.4
[16:58:10] [Server thread/INFO]: Permissions file successfully reloaded
[16:58:10] [Server thread/INFO]: [Fight] Disabling Fight v0.1
[16:58:10] [Server thread/INFO]: [Fight] Deaktiviert! ThrustLP haftet nicht fuer schaeden!
[16:58:10] [Server thread/INFO]: [WirelessRedstone] Disabling WirelessRedstone v1.9.2
[16:58:10] [Server thread/INFO]: [TellMe] Disabling TellMe v0.1
[16:58:10] [Server thread/INFO]: [TellMe] Beende...Beendet!
[16:58:10] [Server thread/INFO]: [Test] Disabling Test v0.1
[16:58:10] [Server thread/INFO]: An
[16:58:10] [Server thread/INFO]: Saving players
[16:58:10] [Server thread/INFO]: Saving worlds
[16:58:10] [Server thread/INFO]: Saving chunks for level 'world'/Overworld
[16:58:10] [Server thread/INFO]: Saving chunks for level 'world_nether'/Nether
[16:58:10] [Server thread/INFO]: Saving chunks for level 'world_the_end'/The End
[16:58:10] [Thread-4/INFO]: Stopping server
[16:58:10] [Thread-4/INFO]: Saving players
[16:58:10] [Thread-4/INFO]: Saving worlds
[16:58:10] [Thread-4/INFO]: Saving chunks for level 'world'/Overworld
[/xcode]
bei diesem Plugin:
[xcode=java]
package me.thrustlp.jumper;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener, ConfigurationSerializable{
private HashMap<String, Location> locs1 = new HashMap<String, Location>();
private HashMap<String, Location> locs2 = new HashMap<String, Location>();
private HashMap<String, Main> regions = new HashMap<String, Main>();
private int minx, miny, minz;
private int maxx, maxy, maxz;
private World world;
public Main (Location loc1, Location loc2){
this.minx = Math.min(loc1.getBlockX(), loc2.getBlockX());
this.miny = Math.min(loc1.getBlockY(), loc2.getBlockY());
this.minz = Math.min(loc1.getBlockZ(), loc2.getBlockZ());
this.maxx = Math.max(loc1.getBlockX(), loc2.getBlockX());
this.maxy = Math.max(loc1.getBlockY(), loc2.getBlockY());
this.maxz = Math.max(loc1.getBlockZ(), loc2.getBlockZ());
this.world = loc1.getWorld();
}
@Override
public void onEnable(){
System.out.println("[Jumper] Aktiv! ThrustLP haftet nicht fuer schaeden!");
File file = new File("plugins/jumper", "arenas.yml");
FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
for (String region : cfg.getConfigurationSection("").getKeys(false)){
this.regions.put(region.toLowerCase(), (Main) cfg.get(region));
}
}
@Override
public void onDisable(){
System.out.println("[Jumper] Deaktiviert! ThrustLP haftet nicht fuer schaeden!");
File file = new File("plugins/jumper", "arenas.yml");
FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
for (String region : this.regions.keySet()){
cfg.set(region, this.regions.get(region));
try {
cfg.save(file);
System.out.println("Arenas saved");
} catch (IOException e) {
e.printStackTrace();
}
}
}
public boolean onCommand(CommandSender sender, Command cmd, String cmdlabel, String[] args){
Player p = (Player) sender;
if(!(sender instanceof Player)){
System.out.println("Du bist kein Spieler");
}else{
if(cmd.getName().equalsIgnoreCase("jumper")){
Location loc = p.getLocation();
if(args.length == 0){
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.GREEN + "Hier siehst du alle Commands");
p.sendMessage(ChatColor.GREEN + "/jumper -- Bringt dich zu allen Commands");
}else{
if(args[0].equalsIgnoreCase("pos1")){
this.locs1.put(p.getName(), loc);
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.GREEN + "Arenapunkt 1 gesetzt!");
}
if(args[0].equalsIgnoreCase("pos2")){
this.locs2.put(p.getName(), loc);
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.GREEN + "Arenapunkt 2 gesetzt!");
}
if(args[0].equalsIgnoreCase("create")){
if(args.length == 2){
Location loc1 = this.locs1.get(p.getName());
Location loc2 = this.locs2.get(p.getName());
if(loc1 == null || loc2 == null){
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.RED + "Setze zuerst Arenapunkte!");
}else if(loc1.getWorld() != loc2.getWorld()){
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.RED + "Die Arenapunkte müssen in der gleichen Welt sein!");
}else{
String name = args[1].toLowerCase();
if(this.regions.containsKey(name)){
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.RED + "Die Arena" + ChatColor.AQUA + name + " gibt es schon!");
return true;
}else{
this.regions.put(name, new Main(loc1, loc2));
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.GREEN + "Arena " + name + "erstellt!");
}
}
}else{
p.sendMessage(ChatColor.GOLD + "[Jumper] " + ChatColor.RED + "Benutze /jumper create [ARENANAME]");
}
}
}
return true;
}
}
return false;
}
@Override
public Map<String, Object> serialize() {
Map<String, Object> o = new HashMap<String, Object>();
o.put("minx", this.minx);
o.put("miny", this.miny);
o.put("minz", this.minz);
o.put("maxx", this.maxx);
o.put("maxy", this.maxy);
o.put("maxz", this.maxz);
o.put("world", this.world.getName());
return o;
}
}
[/xcode]
Wieso? Was muss ich ändern?
Zuletzt bearbeitet von einem Moderator: