Hallo Leute,
ich habe mal wieder ein Problem und ich komme nicht drauf woran es liegt.
Also ich Code derzeit ein Shop-Plugin und will Shops zufällig in die Welt setzen, nun ist es aber so, dass nachdem ich gejoint bin der Server sofort abstürzt.
Hier der Code:
Hier der besagte Fehler:
http://pastebin.com/fziEBbCz
Kann mir jemand den Fehler erklären und mir sagen, wodurch er verursacht wird?
ich habe mal wieder ein Problem und ich komme nicht drauf woran es liegt.
Also ich Code derzeit ein Shop-Plugin und will Shops zufällig in die Welt setzen, nun ist es aber so, dass nachdem ich gejoint bin der Server sofort abstürzt.
Hier der Code:
Javascript:
public class ShopManager {
public static Random r = new Random();
public static void startShop(int time){
MultiverseCore mv = (MultiverseCore) Bukkit.getPluginManager().getPlugin("Multiverse-Core");
WorldManager wm = (WorldManager) mv.getCore().getMVWorldManager();
Collection<MultiverseWorld> mwl = wm.getMVWorlds();
List<World> wl = new ArrayList<World>();
for(MultiverseWorld mw : mwl){
World w = mw.getCBWorld();
wl.add(w);
}
int rw = r.nextInt(wl.size());
World fw = wl.get(rw);
Location loc = fw.getSpawnLocation();
Location floc = null;
for(int i = 0; i < 100; i++){
Location rloc = generateRandomLocation(loc);
if(rloc.getY() < 70 && rloc.getY() > 64){
floc = rloc;
break;
}
}
if(!(floc == null)){
List<String> types = new ArrayList<String>();
types.add("Blocks");
types.add("Food");
types.add("Ore");
types.add("Plants");
types.add("Tools");
types.add("Weapon");
int rs = r.nextInt(types.size());
String t = types.get(rs);
final IronGolem ig = (IronGolem) fw.spawnEntity(floc, EntityType.IRON_GOLEM);
if(t.equalsIgnoreCase("Blocks")){
ig.setCustomName("§8§lBlöcke");
ig.getEquipment().setItemInHand(new ItemStack(Material.SANDSTONE));
ig.getEquipment().setItemInHandDropChance(0);
}
if(t.equalsIgnoreCase("Food")){
ig.setCustomName("§6§lNahrung");
ig.getEquipment().setItemInHand(new ItemStack(Material.COOKED_BEEF));
ig.getEquipment().setItemInHandDropChance(0);
}
if(t.equalsIgnoreCase("Ore")){
ig.setCustomName("§7§lErze");
ig.getEquipment().setItemInHand(new ItemStack(Material.IRON_ORE));
ig.getEquipment().setItemInHandDropChance(0);
}
if(t.equalsIgnoreCase("Plants")){
ig.setCustomName("§2§lPflanzen");
ig.getEquipment().setItemInHand(new ItemStack(Material.SAPLING));
ig.getEquipment().setItemInHandDropChance(0);
}
if(t.equalsIgnoreCase("Tools")){
ig.setCustomName("§5§lWerkzeuge");
ig.getEquipment().setItemInHand(new ItemStack(Material.IRON_PICKAXE));
ig.getEquipment().setItemInHandDropChance(0);
}
if(t.equalsIgnoreCase("Weapons")){
ig.setCustomName("§4§lWaffen");
ig.getEquipment().setItemInHand(new ItemStack(Material.IRON_SWORD));
ig.getEquipment().setItemInHandDropChance(0);
}
ig.setCanPickupItems(false);
ig.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, Integer.MAX_VALUE, Integer.MAX_VALUE));
ig.addPotionEffect(new PotionEffect(PotionEffectType.ABSORPTION, Integer.MAX_VALUE, Integer.MAX_VALUE));
ig.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, Integer.MAX_VALUE, 2));
ig.setRemoveWhenFarAway(false);
ig.setCustomNameVisible(true);
Bukkit.broadcastMessage("§2Ein Shop ist bei den Koordinaten §6X:§5" + floc.getBlockX() + " §6Z:§5" + floc.getBlockZ() + " §2aufgetaucht! Geht hin und seht seine tollen Angeboten!");
int rt = 0;
for(int i2 = 0; i2 < 1000; i2++){
int rtf = r.nextInt(216000);
if(rtf >= 7200){
rt = rtf;
break;
}
}
if(!(rt == 0)){
Bukkit.getScheduler().scheduleSyncDelayedTask(Bukkit.getPluginManager().getPlugin("ApocalypseZ"), new Runnable(){
public void run(){
ig.getLocation().getChunk().unload();
ig.remove();
Bukkit.broadcastMessage("§2Der Shop ist nun wieder weg! Beehrt ihn bald wieder!");
startShop(r.nextInt(216000));
}
},r.nextInt(216000));
}
else{
startShop(r.nextInt(216000));
}
}
else{
startShop(r.nextInt(216000));
}
}
public static Location generateRandomLocation(Location loc){
World fw = loc.getWorld();
int xr = r.nextInt(2);
int zr = r.nextInt(2);
if(xr == 0){
loc.setX(loc.getX()+r.nextInt(2000));
}
else{
loc.setX(loc.getX()-r.nextInt(2000));
}
if(zr == 0){
loc.setZ(loc.getZ()+r.nextInt(2000));
}
else{
loc.setZ(loc.getZ()+r.nextInt(2000));
}
loc.getChunk().load();
double y = fw.getHighestBlockYAt(loc.getBlockX(), loc.getBlockZ());
loc.setY(y);
return loc;
}
public static Inventory getShopSells(IronGolem e){
Inventory ie = null;
String name = e.getCustomName();
if(name.equalsIgnoreCase("§8§lBlöcke")){
Inventory i = Bukkit.createInventory(null, 9, name);
i.addItem(new ItemStack(Material.SANDSTONE));
i.addItem(new ItemStack(Material.COBBLESTONE));
i.addItem(new ItemStack(Material.STONE));
i.addItem(new ItemStack(Material.LOG));
i.addItem(new ItemStack(Material.GRAVEL));
i.addItem(new ItemStack(Material.SMOOTH_BRICK));
i.addItem(new ItemStack(Material.GLASS));
ie = i;
}
if(name.equalsIgnoreCase("§6§lNahrung")){
Inventory i = Bukkit.createInventory(null, 9, name);
i.addItem(new ItemStack(Material.COOKED_BEEF));
i.addItem(new ItemStack(Material.COOKED_CHICKEN));
i.addItem(new ItemStack(Material.COOKED_FISH));
i.addItem(new ItemStack(Material.APPLE));
i.addItem(new ItemStack(Material.PUMPKIN_PIE));
i.addItem(new ItemStack(Material.CAKE));
i.addItem(new ItemStack(Material.BAKED_POTATO));
i.addItem(new ItemStack(Material.BREAD));
ie = i;
}
if(name.equalsIgnoreCase("§7§lErze")){
Inventory i = Bukkit.createInventory(null, 9, name);
i.addItem(new ItemStack(Material.IRON_ORE));
i.addItem(new ItemStack(Material.GOLD_ORE));
i.addItem(new ItemStack(Material.REDSTONE_ORE));
i.addItem(new ItemStack(Material.COAL_ORE));
i.addItem(new ItemStack(Material.DIAMOND_ORE));
i.addItem(new ItemStack(Material.EMERALD_ORE));
i.addItem(new ItemStack(Material.LAPIS_ORE));
ie = i;
}
if(name.equalsIgnoreCase("§2§lPflanzen")){
Inventory i = Bukkit.createInventory(null, 9, name);
i.addItem(new ItemStack(Material.SAPLING));
i.addItem(new ItemStack(Material.SEEDS));
i.addItem(new ItemStack(Material.PUMPKIN_SEEDS));
i.addItem(new ItemStack(Material.MELON_SEEDS));
i.addItem(new ItemStack(Material.POTATO));
i.addItem(new ItemStack(Material.CARROT));
ie = i;
}
if(name.equalsIgnoreCase("§5§lWerkzeuge")){
Inventory i = Bukkit.createInventory(null, 18, name);
i.addItem(new ItemStack(Material.STONE_PICKAXE));
i.addItem(new ItemStack(Material.STONE_SPADE));
i.addItem(new ItemStack(Material.STONE_AXE));
i.addItem(new ItemStack(Material.STONE_HOE));
i.addItem(new ItemStack(Material.IRON_PICKAXE));
i.addItem(new ItemStack(Material.IRON_SPADE));
i.addItem(new ItemStack(Material.IRON_AXE));
i.addItem(new ItemStack(Material.IRON_HOE));
i.addItem(new ItemStack(Material.DIAMOND_PICKAXE));
i.addItem(new ItemStack(Material.DIAMOND_SPADE));
i.addItem(new ItemStack(Material.DIAMOND_AXE));
i.addItem(new ItemStack(Material.DIAMOND_HOE));
ie = i;
}
if(name.equalsIgnoreCase("§4§lWaffen")){
Inventory i = Bukkit.createInventory(null, 9, name);
i.addItem(new ItemStack(Material.BOW));
i.addItem(new ItemStack(Material.STONE_SWORD));
i.addItem(new ItemStack(Material.IRON_SWORD));
i.addItem(new ItemStack(Material.DIAMOND_SWORD));
i.addItem(new ItemStack(Material.RECORD_11));
i.addItem(new ItemStack(Material.ARROW));
i.addItem(new ItemStack(Material.NETHER_BRICK_ITEM));
ie = i;
}
return ie;
}
public static ItemStack getPrice(ItemStack i){
ItemStack price = null;
Material m = i.getType();
switch(m){
case SANDSTONE:
ItemStack p = new ItemStack(Material.STONE);
p.setDurability((short) 1);
price = p;
break;
case COBBLESTONE:
price = new ItemStack(Material.DIRT);
break;
case STONE:
price = new ItemStack(Material.COBBLESTONE);
break;
case LOG:
ItemStack p2 = new ItemStack(Material.STONE);
p2.setDurability((short) 3);
price = p2;
break;
case GRAVEL:
price = new ItemStack(Material.DIRT);
break;
case SMOOTH_BRICK:
ItemStack p3 = new ItemStack(Material.STONE);
p3.setDurability((short) 6);
price = p3;
break;
case GLASS:
price = new ItemStack(Material.STONE);
break;
case COOKED_BEEF:
price = new ItemStack(Material.SULPHUR);
break;
case COOKED_CHICKEN:
price = new ItemStack(Material.STRING);
break;
case COOKED_FISH:
price = new ItemStack(Material.STRING);
break;
case APPLE:
price = new ItemStack(Material.FEATHER);
break;
case PUMPKIN_PIE:
price = new ItemStack(Material.REDSTONE);
break;
case CAKE:
price = new ItemStack(Material.GOLD_INGOT);
break;
case BAKED_POTATO:
price = new ItemStack(Material.SULPHUR);
break;
case BREAD:
price = new ItemStack(Material.LEATHER);
break;
case IRON_ORE:
ItemStack p4 = new ItemStack(Material.SANDSTONE);
p4.setDurability((short) 2);
price = p4;
break;
case GOLD_ORE:
price = new ItemStack(Material.BRICK);
break;
case COAL_ORE:
price = new ItemStack(Material.SMOOTH_BRICK);
break;
case REDSTONE_ORE:
price = new ItemStack(Material.IRON_INGOT);
break;
case DIAMOND_ORE:
price = new ItemStack(Material.EMERALD);
break;
case EMERALD_ORE:
price = new ItemStack(Material.DIAMOND);
break;
case LAPIS_ORE:
price = new ItemStack(Material.GOLD_INGOT);
break;
case SAPLING:
price = new ItemStack(Material.LOG);
break;
case SEEDS:
price = new ItemStack(Material.COAL);
break;
case PUMPKIN_SEEDS:
price = new ItemStack(Material.IRON_INGOT);
break;
case MELON_SEEDS:
price = new ItemStack(Material.GOLD_INGOT);
break;
case POTATO:
price = new ItemStack(Material.SANDSTONE);
break;
case CARROT:
price = new ItemStack(Material.WOOL);
break;
case STONE_PICKAXE:
ItemStack p5 = new ItemStack(Material.POTION);
p5.setDurability((short) 8194);
price = p5;
break;
case STONE_SPADE:
ItemStack p6 = new ItemStack(Material.POTION);
p6.setDurability((short) 8196);
price = p6;
break;
case STONE_AXE:
ItemStack p7 = new ItemStack(Material.POTION);
p7.setDurability((short) 8194);
price = p7;
break;
case STONE_HOE:
ItemStack p8 = new ItemStack(Material.POTION);
p8.setDurability((short) 8226);
price = p8;
break;
case IRON_PICKAXE:
ItemStack p9 = new ItemStack(Material.POTION);
p9.setDurability((short) 8201);
price = p9;
break;
case IRON_AXE:
ItemStack p10 = new ItemStack(Material.POTION);
p10.setDurability((short) 8201);
price = p10;
break;
case IRON_SPADE:
ItemStack p11 = new ItemStack(Material.POTION);
p11.setDurability((short) 8234);
price = p11;
break;
case IRON_HOE:
ItemStack p12 = new ItemStack(Material.POTION);
p12.setDurability((short) 8234);
price = p12;
break;
case DIAMOND_PICKAXE:
ItemStack p13 = new ItemStack(Material.POTION);
p13.setDurability((short) 8238);
price = p13;
break;
case DIAMOND_AXE:
ItemStack p14 = new ItemStack(Material.POTION);
p14.setDurability((short) 8238);
price = p14;
break;
case DIAMOND_SPADE:
ItemStack p15 = new ItemStack(Material.POTION);
p15.setDurability((short) 16396);
price = p15;
break;
case DIAMOND_HOE:
ItemStack p16 = new ItemStack(Material.POTION);
p16.setDurability((short) 16428);
price = p16;
break;
case BOW:
price = new ItemStack(Material.GOLD_INGOT);
break;
case STONE_SWORD:
price = new ItemStack(Material.NETHERRACK);
break;
case IRON_SWORD:
price = new ItemStack(Material.GLOWSTONE);
break;
case DIAMOND_SWORD:
price = new ItemStack(Material.GOLD_BLOCK);
break;
case RECORD_11:
price = new ItemStack(Material.DIAMOND);
break;
case NETHER_BRICK_ITEM:
price = new ItemStack(Material.GLOWSTONE_DUST);
break;
}
return price;
}
}
Hier der besagte Fehler:
http://pastebin.com/fziEBbCz
Kann mir jemand den Fehler erklären und mir sagen, wodurch er verursacht wird?