Fixed the spawnMonsters/difficulty change. Stable for 1185 and 1216 now.
This commit is contained in:
Binary file not shown.
+33
-6
@@ -1,6 +1,6 @@
|
|||||||
name: MobArena
|
name: MobArena
|
||||||
main: com.garbagemule.MobArena.MobArena
|
main: com.garbagemule.MobArena.MobArena
|
||||||
version: 0.94.3.4
|
version: 0.94.3.5
|
||||||
softdepend: [Spout,Permissions,MultiVerse,XcraftGate,Towny,Heroes,MagicSpells]
|
softdepend: [Spout,Permissions,MultiVerse,XcraftGate,Towny,Heroes,MagicSpells]
|
||||||
commands:
|
commands:
|
||||||
ma:
|
ma:
|
||||||
@@ -18,7 +18,7 @@ commands:
|
|||||||
/mobarena notready - List of players who aren't ready.
|
/mobarena notready - List of players who aren't ready.
|
||||||
/mobarena spectate - Warp to the spectator area.
|
/mobarena spectate - Warp to the spectator area.
|
||||||
permissions:
|
permissions:
|
||||||
mobarena.use.*:
|
mobarena.use:
|
||||||
description: Gives access to usage commands
|
description: Gives access to usage commands
|
||||||
default: true
|
default: true
|
||||||
children:
|
children:
|
||||||
@@ -32,8 +32,8 @@ permissions:
|
|||||||
mobarena.use.leave:
|
mobarena.use.leave:
|
||||||
default: true
|
default: true
|
||||||
|
|
||||||
mobarena.admin.*:
|
mobarena.admin:
|
||||||
description: Gives access to admin commands
|
description: Gives access to all admin commands
|
||||||
default: op
|
default: op
|
||||||
children:
|
children:
|
||||||
mobarena.admin.enable: true
|
mobarena.admin.enable: true
|
||||||
@@ -43,20 +43,26 @@ permissions:
|
|||||||
mobarena.admin.force.start: true
|
mobarena.admin.force.start: true
|
||||||
mobarena.admin.config.reload: true
|
mobarena.admin.config.reload: true
|
||||||
mobarena.admin.enable:
|
mobarena.admin.enable:
|
||||||
|
description: Enable and disable MobArena and/or arenas.
|
||||||
default: false
|
default: false
|
||||||
mobarena.admin.kick:
|
mobarena.admin.kick:
|
||||||
|
description: Kick a player from an arena.
|
||||||
default: false
|
default: false
|
||||||
mobarena.admin.restore:
|
mobarena.admin.restore:
|
||||||
|
description: Restore a player's inventory.
|
||||||
default: false
|
default: false
|
||||||
mobarena.admin.force.end:
|
mobarena.admin.force.end:
|
||||||
|
description: Force end an arena.
|
||||||
default: false
|
default: false
|
||||||
mobarena.admin.force.start:
|
mobarena.admin.force.start:
|
||||||
|
description: Force start an arena.
|
||||||
default: false
|
default: false
|
||||||
mobarena.admin.config.reload:
|
mobarena.admin.config.reload:
|
||||||
|
description: Reload the config-file.
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
mobarena.setup.*:
|
mobarena.setup:
|
||||||
description: Gives access to setup commands
|
description: Gives access to all setup commands
|
||||||
default: op
|
default: op
|
||||||
children:
|
children:
|
||||||
mobarena.setup.arena: true
|
mobarena.setup.arena: true
|
||||||
@@ -81,44 +87,65 @@ permissions:
|
|||||||
mobarena.setup.autogenerate: true
|
mobarena.setup.autogenerate: true
|
||||||
mobarena.setup.autodegenerate: true
|
mobarena.setup.autodegenerate: true
|
||||||
mobarena.setup.arena:
|
mobarena.setup.arena:
|
||||||
|
description: Check which arena is the currently selected arena.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.setarena:
|
mobarena.setup.setarena:
|
||||||
|
description: Select a new arena.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.addarena:
|
mobarena.setup.addarena:
|
||||||
|
description: Add a new arena node.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.delarena:
|
mobarena.setup.delarena:
|
||||||
|
description: Delete an arena.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.protect:
|
mobarena.setup.protect:
|
||||||
|
description: Turn arena protection on/off.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.editarena:
|
mobarena.setup.editarena:
|
||||||
|
description: Turn editmode on/off.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.setregion:
|
mobarena.setup.setregion:
|
||||||
|
description: Set region points p1/p2.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.expandregion:
|
mobarena.setup.expandregion:
|
||||||
|
description: Expand arena region.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.showregion:
|
mobarena.setup.showregion:
|
||||||
|
description: Show arena region.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.setlobbyregion:
|
mobarena.setup.setlobbyregion:
|
||||||
|
description: Set lobby region points l1/l2.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.expandlobbyregion:
|
mobarena.setup.expandlobbyregion:
|
||||||
|
description: Expand lobby region.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.setwarp:
|
mobarena.setup.setwarp:
|
||||||
|
description: Set warp points arena/lobby/spectator.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.spawnpoints:
|
mobarena.setup.spawnpoints:
|
||||||
|
description: List all spawnpoints.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.addspawn:
|
mobarena.setup.addspawn:
|
||||||
|
description: Add a new spawnpoint.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.delspawn:
|
mobarena.setup.delspawn:
|
||||||
|
description: Delete a spawnpoint.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.containers:
|
mobarena.setup.containers:
|
||||||
|
description: List all containers.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.addcontainer:
|
mobarena.setup.addcontainer:
|
||||||
|
description: Add a new container.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.delcontainer:
|
mobarena.setup.delcontainer:
|
||||||
|
description: Delete a container.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.checkdata:
|
mobarena.setup.checkdata:
|
||||||
|
description: Check which points need to be set up.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.autogenerate:
|
mobarena.setup.autogenerate:
|
||||||
|
description: Auto-generate an arena.
|
||||||
default: false
|
default: false
|
||||||
mobarena.setup.autodegenerate:
|
mobarena.setup.autodegenerate:
|
||||||
|
description: Auto-degenerate an arena.
|
||||||
default: false
|
default: false
|
||||||
@@ -154,7 +154,7 @@ public class Arena
|
|||||||
|
|
||||||
allowMonsters = world.getAllowMonsters();
|
allowMonsters = world.getAllowMonsters();
|
||||||
allowAnimals = world.getAllowAnimals();
|
allowAnimals = world.getAllowAnimals();
|
||||||
spawnMonsters = ((net.minecraft.server.World) ((CraftWorld) world).getHandle()).spawnMonsters;
|
spawnMonsters = MAUtils.getSpawnMonsters(world);
|
||||||
|
|
||||||
eventListener = new MAListener(this, plugin);
|
eventListener = new MAListener(this, plugin);
|
||||||
repairQueue = new PriorityBlockingQueue<Repairable>(100, new RepairableComparator());
|
repairQueue = new PriorityBlockingQueue<Repairable>(100, new RepairableComparator());
|
||||||
|
|||||||
@@ -163,9 +163,9 @@ public class MAListener implements ArenaListener
|
|||||||
LivingEntity entity = (LivingEntity) event.getEntity();
|
LivingEntity entity = (LivingEntity) event.getEntity();
|
||||||
if (arena.running && entity instanceof Slime)
|
if (arena.running && entity instanceof Slime)
|
||||||
arena.monsters.add(entity);
|
arena.monsters.add(entity);
|
||||||
else
|
|
||||||
// If running == true, setCancelled(false), and vice versa.
|
// If running == true, setCancelled(false), and vice versa.
|
||||||
event.setCancelled(!arena.running);
|
event.setCancelled(!arena.running);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEntityExplode(EntityExplodeEvent event)
|
public void onEntityExplode(EntityExplodeEvent event)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.garbagemule.MobArena;
|
package com.garbagemule.MobArena;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -18,8 +19,6 @@ import java.util.Set;
|
|||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import net.minecraft.server.WorldServer;
|
|
||||||
|
|
||||||
import org.bukkit.block.Sign;
|
import org.bukkit.block.Sign;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.craftbukkit.CraftWorld;
|
import org.bukkit.craftbukkit.CraftWorld;
|
||||||
@@ -1331,16 +1330,86 @@ public class MAUtils
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getSpawnMonsters(World world)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Field f = getSpawnMonstersField(world);
|
||||||
|
net.minecraft.server.World w = (net.minecraft.server.World) ((CraftWorld) world).getHandle();
|
||||||
|
return f.getInt(w);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Field f = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
String[] parts = Bukkit.getVersion().split("-");
|
||||||
|
String version = parts[5].substring(1, 5);
|
||||||
|
int v = (version.matches("[0-9]+")) ? Integer.parseInt(version) : 0;
|
||||||
|
|
||||||
|
String fieldName = (v >= 1191) ? "difficulty" : "spawnMonsters";
|
||||||
|
f = net.minecraft.server.World.class.getDeclaredField(fieldName);
|
||||||
|
|
||||||
|
if (f != null)
|
||||||
|
return f.getInt(w);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Field getSpawnMonstersField(World world)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
String[] parts = Bukkit.getVersion().split("-");
|
||||||
|
String version = parts[5].substring(1, 5);
|
||||||
|
int v = (version.matches("[0-9]+")) ? Integer.parseInt(version) : 0;
|
||||||
|
|
||||||
|
String fieldName = (v >= 1191) ? "difficulty" : "spawnMonsters";
|
||||||
|
return net.minecraft.server.World.class.getDeclaredField(fieldName);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public static void setSpawnFlags(MobArena plugin, World world, int spawnMonsters, boolean allowMonsters, boolean allowAnimals)
|
public static void setSpawnFlags(MobArena plugin, World world, int spawnMonsters, boolean allowMonsters, boolean allowAnimals)
|
||||||
{
|
{
|
||||||
for (Arena arena : plugin.getAM().getArenasInWorld(world))
|
for (Arena arena : plugin.getAM().getArenasInWorld(world))
|
||||||
if (arena.running)
|
if (arena.running)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
WorldServer ws = ((CraftWorld) world).getHandle();
|
//WorldServer ws = ((CraftWorld) world).getHandle();
|
||||||
ws.spawnMonsters = spawnMonsters;
|
//ws.spawnMonsters = spawnMonsters;
|
||||||
ws.allowMonsters = allowMonsters;
|
//ws.allowMonsters = allowMonsters;
|
||||||
ws.allowAnimals = allowAnimals;
|
//ws.allowAnimals = allowAnimals;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
net.minecraft.server.World w = (net.minecraft.server.World) ((CraftWorld) world).getHandle();
|
||||||
|
w.allowMonsters = allowMonsters;
|
||||||
|
w.allowAnimals = allowAnimals;
|
||||||
|
|
||||||
|
Field f = getSpawnMonstersField(world);
|
||||||
|
f.setInt(w, spawnMonsters);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getDuration(long duration)
|
public static String getDuration(long duration)
|
||||||
|
|||||||
Reference in New Issue
Block a user