minor tweaks

This commit is contained in:
Garbage Mule
2011-05-30 23:59:56 +02:00
parent 94ab7f3cac
commit 829e6d68e0
6 changed files with 59 additions and 22 deletions
BIN
View File
Binary file not shown.
@@ -33,6 +33,7 @@ public class ArenaManager
protected static Location spectatorLoc = null;
protected static boolean isRunning = false;
protected static boolean isSetup = false;
protected static boolean isProtected = true;
// Location variables for the arena region.
protected static Location p1 = null;
@@ -145,7 +146,7 @@ public class ArenaManager
}
MASpawnThread thread = new MASpawnThread();
plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin,thread,100,400);
server.getScheduler().scheduleSyncRepeatingTask(plugin,thread,100,400);
tellAll("Let the slaughter begin!");
}
@@ -23,7 +23,10 @@ public class MABlockListener extends BlockListener
public void onBlockDamage(BlockDamageEvent event)
{
if (!ArenaManager.isSetup)
if (!ArenaManager.isSetup || !ArenaManager.isProtected)
return;
if (ArenaManager.blockSet.contains(event.getBlock()))
return;
if (MAUtils.inRegion(event.getBlock().getLocation()))
@@ -32,7 +35,10 @@ public class MABlockListener extends BlockListener
public void onBlockBreak(BlockBreakEvent event)
{
if (!ArenaManager.isSetup)
if (!ArenaManager.isSetup || !ArenaManager.isProtected)
return;
if (ArenaManager.blockSet.contains(event.getBlock()))
return;
if (MAUtils.inRegion(event.getBlock().getLocation()))
@@ -41,7 +47,7 @@ public class MABlockListener extends BlockListener
public void onBlockPlace(BlockPlaceEvent event)
{
if (!ArenaManager.isSetup)
if (!ArenaManager.isSetup || !ArenaManager.isProtected)
return;
if (MAUtils.inRegion(event.getBlock().getLocation()))
@@ -170,6 +170,19 @@ public class MACommands implements CommandExecutor
return true;
}
// ma protect true/false
if (cmd.equals("protect"))
{
if (!arg.equals("true") && !arg.equals("false"))
return false;
// Set the boolean
ArenaManager.isProtected = Boolean.valueOf(arg);
ArenaManager.tellPlayer(p, "Region protection: " + arg);
return true;
}
return false;
}
}
+34 -17
View File
@@ -5,6 +5,7 @@ import java.util.Random;
import org.bukkit.Location;
import org.bukkit.entity.Slime;
import org.bukkit.entity.Player;
import org.bukkit.entity.Creature;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.CreatureType;
@@ -25,11 +26,16 @@ public class MASpawnThread implements Runnable
private int wave, noOfSpawnPoints, noOfPlayers;
private int dZombies, dSkeletons, dSpiders, dCreepers;
private Random random;
private Player target;
private Object[] playerArray;
private String reward, currentRewards;
public MASpawnThread()
{
// Turn the set into an array for lookup with random numbers.
playerArray = ArenaManager.playerSet.toArray();
noOfPlayers = playerArray.length;
noOfSpawnPoints = ArenaManager.spawnpoints.size();
noOfPlayers = ArenaManager.playerSet.size();
wave = 1;
random = new Random();
@@ -41,10 +47,7 @@ public class MASpawnThread implements Runnable
}
public void run()
{
String reward;
String currentRewards;
{
// Check if we need to grant more rewards with the recurrent waves.
for (Integer i : ArenaManager.everyWaveMap.keySet())
{
@@ -98,9 +101,9 @@ public class MASpawnThread implements Runnable
Location loc;
int ran;
for (int i = 0; i < wave+noOfPlayers; i++)
for (int i = 0; i < wave + noOfPlayers; i++)
{
loc = ArenaManager.spawnpoints.get(random.nextInt(noOfSpawnPoints));
loc = ArenaManager.spawnpoints.get(i % noOfSpawnPoints);
ran = random.nextInt(dCreepers);
CreatureType mob;
@@ -117,6 +120,11 @@ public class MASpawnThread implements Runnable
LivingEntity e = ArenaManager.world.spawnCreature(loc,mob);
ArenaManager.monsterSet.add(e);
// Grab a random target.
ran = random.nextInt(noOfPlayers);
Creature c = (Creature) e;
c.setTarget((Player)playerArray[ran]);
}
}
@@ -128,7 +136,7 @@ public class MASpawnThread implements Runnable
Location loc;
CreatureType mob;
int count;
int ran, count;
boolean lightning = false;
boolean slime = false;
@@ -164,18 +172,27 @@ public class MASpawnThread implements Runnable
for (int i = 0; i < count; i++)
{
loc = ArenaManager.spawnpoints.get(random.nextInt(noOfSpawnPoints));
loc = ArenaManager.spawnpoints.get(i % noOfSpawnPoints);
LivingEntity e = ArenaManager.world.spawnCreature(loc,mob);
if (lightning)
{
ArenaManager.world.strikeLightningEffect(loc);
e.setFireTicks(0);
e.setHealth(20);
}
if (slime) ((Slime)e).setSize(2);
ArenaManager.monsterSet.add(e);
if (slime) ((Slime)e).setSize(2);
// Slimes can't have targets, apparently.
if (!(e instanceof Creature))
continue;
// Grab a random target.
ran = random.nextInt(noOfPlayers);
Creature c = (Creature) e;
c.setTarget((Player)playerArray[ran]);
}
// Lightning, just for effect ;)
for (Location l : ArenaManager.spawnpoints)
{
ArenaManager.world.strikeLightningEffect(l);
}
}
}
+1 -1
View File
@@ -196,7 +196,7 @@ public class MAUtils
c.setProperty("classes.Knight.armor", "306,307,308,309");
c.setProperty("classes.Tank.items", "iron_sword, grilled_pork:2");
c.setProperty("classes.Tank.armor", "310,311,312,313");
c.setProperty("classes.Oddjob.items", "stone_sword, flint_and_steal, netherrack:2, wood_door, fishing_rod, apple, grilled_pork:3");
c.setProperty("classes.Oddjob.items", "stone_sword, flint_and_steel, netherrack:2, wood_pickaxe, wood_door, fishing_rod, apple, grilled_pork:3");
c.setProperty("classes.Oddjob.armor", "298,299,300,301");
c.setProperty("classes.Chef.items", "stone_sword, bread:6, grilled_pork:4, mushroom_soup, cake:3, cookie:12");
c.setProperty("classes.Chef.armor", "314,315,316,317");