Code cleanup, and projectiles should no longer damage pet wolves.
This commit is contained in:
Binary file not shown.
@@ -213,7 +213,11 @@ public class Arena
|
|||||||
{
|
{
|
||||||
// Sanity-checks.
|
// Sanity-checks.
|
||||||
if (!running || !arenaPlayers.isEmpty())
|
if (!running || !arenaPlayers.isEmpty())
|
||||||
|
{
|
||||||
|
//System.out.println("Arena was not ended, playercount: " + arenaPlayers.size());
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
//else System.out.println("Arena ending...");
|
||||||
|
|
||||||
// Set the boolean.
|
// Set the boolean.
|
||||||
running = false;
|
running = false;
|
||||||
@@ -423,6 +427,7 @@ public class Arena
|
|||||||
sheepTaskId = -1;
|
sheepTaskId = -1;
|
||||||
spawnThread = null;
|
spawnThread = null;
|
||||||
}
|
}
|
||||||
|
else System.out.println("--------- THE SPAWNTHREAD IS NULL! ----------");
|
||||||
|
|
||||||
// Restore spawn flags.
|
// Restore spawn flags.
|
||||||
MAUtils.setSpawnFlags(plugin, world, spawnMonsters, allowMonsters, allowAnimals);
|
MAUtils.setSpawnFlags(plugin, world, spawnMonsters, allowMonsters, allowAnimals);
|
||||||
@@ -639,11 +644,8 @@ public class Arena
|
|||||||
|
|
||||||
public void repairBlocks()
|
public void repairBlocks()
|
||||||
{
|
{
|
||||||
//long start = System.nanoTime();
|
|
||||||
while (!repairQueue.isEmpty())
|
while (!repairQueue.isEmpty())
|
||||||
{
|
|
||||||
repairQueue.poll().repair();
|
repairQueue.poll().repair();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void queueRepairable(Repairable r)
|
public void queueRepairable(Repairable r)
|
||||||
@@ -1289,10 +1291,6 @@ public class Arena
|
|||||||
MAUtils.tellPlayer(p, Msg.JOIN_EMPTY_INV);
|
MAUtils.tellPlayer(p, Msg.JOIN_EMPTY_INV);
|
||||||
else if (!canAfford(p))// || !takeFee(p))
|
else if (!canAfford(p))// || !takeFee(p))
|
||||||
MAUtils.tellPlayer(p, Msg.JOIN_FEE_REQUIRED, MAUtils.listToString(entryFee, plugin));
|
MAUtils.tellPlayer(p, Msg.JOIN_FEE_REQUIRED, MAUtils.listToString(entryFee, plugin));
|
||||||
/*else if (emptyInvJoin && !MAUtils.hasEmptyInventory(p))
|
|
||||||
MAUtils.tellPlayer(p, Msg.JOIN_EMPTY_INV);
|
|
||||||
else if (!emptyInvJoin && !MAUtils.storeInventory(p))
|
|
||||||
MAUtils.tellPlayer(p, Msg.JOIN_STORE_INV_FAIL);*/
|
|
||||||
else return true;
|
else return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import org.bukkit.block.Sign;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Projectile;
|
||||||
import org.bukkit.entity.Slime;
|
import org.bukkit.entity.Slime;
|
||||||
import org.bukkit.entity.Wolf;
|
import org.bukkit.entity.Wolf;
|
||||||
import org.bukkit.event.Event.Result;
|
import org.bukkit.event.Event.Result;
|
||||||
@@ -243,35 +244,52 @@ public class MAListener implements ArenaListener
|
|||||||
}, arena.repairDelay);
|
}, arena.repairDelay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************
|
||||||
|
*
|
||||||
|
* DEATH LISTENERS
|
||||||
|
*
|
||||||
|
******************************************************/
|
||||||
|
|
||||||
public void onEntityDeath(EntityDeathEvent event)
|
public void onEntityDeath(EntityDeathEvent event)
|
||||||
{
|
{
|
||||||
if (event.getEntity() instanceof Player)
|
if (event.getEntity() instanceof Player)
|
||||||
|
onPlayerDeath(event, (Player) event.getEntity());
|
||||||
|
|
||||||
|
else if (arena.monsters.remove(event.getEntity()))
|
||||||
|
onMonsterDeath(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onPlayerDeath(EntityDeathEvent event, Player player)
|
||||||
|
{
|
||||||
|
if (arena.arenaPlayers.contains(player) || arena.lobbyPlayers.contains(player))
|
||||||
{
|
{
|
||||||
Player p = (Player) event.getEntity();
|
|
||||||
|
|
||||||
if (!arena.arenaPlayers.contains(p))
|
|
||||||
return;
|
|
||||||
|
|
||||||
event.getDrops().clear();
|
event.getDrops().clear();
|
||||||
arena.playerDeath(p);
|
arena.playerDeath(player);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arena.monsters.remove(event.getEntity()))
|
|
||||||
{
|
|
||||||
EntityDamageEvent e1 = event.getEntity().getLastDamageCause();
|
|
||||||
EntityDamageByEntityEvent e2 = (e1 instanceof EntityDamageByEntityEvent) ? (EntityDamageByEntityEvent) e1 : null;
|
|
||||||
Entity damager = (e2 != null) ? e2.getDamager() : null;
|
|
||||||
|
|
||||||
if (damager instanceof Player)
|
|
||||||
arena.playerKill((Player) damager);
|
|
||||||
|
|
||||||
event.getDrops().clear();
|
|
||||||
arena.resetIdleTimer();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onMonsterDeath(EntityDeathEvent event)
|
||||||
|
{
|
||||||
|
EntityDamageEvent e1 = event.getEntity().getLastDamageCause();
|
||||||
|
EntityDamageByEntityEvent e2 = (e1 instanceof EntityDamageByEntityEvent) ? (EntityDamageByEntityEvent) e1 : null;
|
||||||
|
Entity damager = (e2 != null) ? e2.getDamager() : null;
|
||||||
|
|
||||||
|
if (damager instanceof Player)
|
||||||
|
arena.playerKill((Player) damager);
|
||||||
|
|
||||||
|
event.getDrops().clear();
|
||||||
|
arena.resetIdleTimer();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************
|
||||||
|
*
|
||||||
|
* DAMAGE LISTENERS
|
||||||
|
*
|
||||||
|
******************************************************/
|
||||||
|
|
||||||
public void onEntityDamage(EntityDamageEvent event)
|
public void onEntityDamage(EntityDamageEvent event)
|
||||||
{
|
{
|
||||||
if (!arena.running) return;
|
if (!arena.running) return;
|
||||||
@@ -282,91 +300,108 @@ public class MAListener implements ArenaListener
|
|||||||
|
|
||||||
// Pet wolf
|
// Pet wolf
|
||||||
if (damagee instanceof Wolf && arena.pets.contains(damagee))
|
if (damagee instanceof Wolf && arena.pets.contains(damagee))
|
||||||
{
|
onPetDamage(event, (Wolf) damagee, damager);
|
||||||
if (damager == null)
|
|
||||||
{
|
|
||||||
damagee.setFireTicks(32768);
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if (damager instanceof Player)
|
|
||||||
event.setCancelled(true);
|
|
||||||
else
|
|
||||||
event.setDamage(0);
|
|
||||||
|
|
||||||
return;
|
// Player
|
||||||
}
|
|
||||||
// Arena player
|
|
||||||
else if (damagee instanceof Player)
|
else if (damagee instanceof Player)
|
||||||
{
|
onPlayerDamage(event, (Player) damagee, damager);
|
||||||
if (arena.lobbyPlayers.contains(damagee))
|
|
||||||
event.setCancelled(true);
|
|
||||||
else if (!arena.arenaPlayers.contains(damagee))
|
|
||||||
return;
|
|
||||||
else if (!arena.detDamage && event.getCause() == DamageCause.BLOCK_EXPLOSION)
|
|
||||||
event.setCancelled(true);
|
|
||||||
else if (damager instanceof Player && !arena.pvp)
|
|
||||||
{
|
|
||||||
// if 'inLobby' fails, and 'not inArena' fails, 'inArena' is true
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!event.isCancelled())
|
// Monster
|
||||||
arena.log.players.get((Player) damagee).dmgTaken += event.getDamage();
|
|
||||||
}
|
|
||||||
// Other LivingEntity
|
|
||||||
else if (arena.monsters.contains(damagee))
|
else if (arena.monsters.contains(damagee))
|
||||||
|
onMonsterDamage(event, damagee, damager);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onPlayerDamage(EntityDamageEvent event, Player player, Entity damager)
|
||||||
|
{
|
||||||
|
// Cancel all damage in the lobby
|
||||||
|
if (arena.lobbyPlayers.contains(player))
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
// If not in the lobby or the arena, return
|
||||||
|
else if (!arena.arenaPlayers.contains(player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Cancel block explosion damage if detonate-damage: false
|
||||||
|
else if (!arena.detDamage && event.getCause() == DamageCause.BLOCK_EXPLOSION)
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
// If PvP is disabled and damager is a player, cancel damage
|
||||||
|
else if (damager instanceof Player && !arena.pvp)
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
// Log damage
|
||||||
|
if (!event.isCancelled())
|
||||||
|
arena.log.players.get(player).dmgTaken += event.getDamage();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onPetDamage(EntityDamageEvent event, Wolf pet, Entity damager)
|
||||||
|
{
|
||||||
|
if (damager == null)
|
||||||
{
|
{
|
||||||
if (damager instanceof Player)
|
if (arena.hellhounds)
|
||||||
{
|
pet.setFireTicks(32768);
|
||||||
if (!arena.arenaPlayers.contains(damager))
|
|
||||||
{
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
arena.log.players.get((Player) damager).dmgDone += event.getDamage();
|
event.setCancelled(true);
|
||||||
arena.log.players.get((Player) damager).hits++;
|
}
|
||||||
}
|
|
||||||
else if (damager instanceof Wolf && arena.pets.contains(damager))
|
// Cancel player and projectile damage
|
||||||
|
else if (damager instanceof Player || damager instanceof Projectile)
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
// Set damage to 0 for knockbacks from monsters
|
||||||
|
else event.setDamage(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onMonsterDamage(EntityDamageEvent event, Entity monster, Entity damager)
|
||||||
|
{
|
||||||
|
if (damager instanceof Player)
|
||||||
|
{
|
||||||
|
if (!arena.arenaPlayers.contains(damager))
|
||||||
{
|
{
|
||||||
event.setDamage(1);
|
event.setCancelled(true);
|
||||||
arena.log.players.get((Player) ((Wolf) damager).getOwner()).dmgDone += event.getDamage();
|
return;
|
||||||
}
|
|
||||||
else if (damager instanceof LivingEntity)
|
|
||||||
{
|
|
||||||
if (!arena.monsterInfight)
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Boss
|
arena.log.players.get((Player) damager).dmgDone += event.getDamage();
|
||||||
if (arena.bossWave != null && damagee.equals(arena.bossWave.getEntity()))
|
arena.log.players.get((Player) damager).hits++;
|
||||||
|
}
|
||||||
|
else if (damager instanceof Wolf && arena.pets.contains(damager))
|
||||||
|
{
|
||||||
|
event.setDamage(1);
|
||||||
|
arena.log.players.get((Player) ((Wolf) damager).getOwner()).dmgDone += event.getDamage();
|
||||||
|
}
|
||||||
|
else if (damager instanceof LivingEntity)
|
||||||
|
{
|
||||||
|
if (!arena.monsterInfight)
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Boss
|
||||||
|
if (arena.bossWave != null && monster.equals(arena.bossWave.getEntity()))
|
||||||
|
{
|
||||||
|
if (event.getCause() == DamageCause.LIGHTNING)
|
||||||
{
|
{
|
||||||
if (event.getCause() == DamageCause.LIGHTNING)
|
event.setCancelled(true);
|
||||||
{
|
return;
|
||||||
event.setCancelled(true);
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Subtract boss health, and reset actual entity health
|
// Subtract boss health, and reset actual entity health
|
||||||
arena.bossWave.subtractHealth(event.getDamage());
|
arena.bossWave.subtractHealth(event.getDamage());
|
||||||
arena.bossWave.getEntity().setHealth(100);
|
arena.bossWave.getEntity().setHealth(100);
|
||||||
|
|
||||||
// Set damage to 1 for knockback and feedback
|
// Set damage to 1 for knockback and feedback
|
||||||
event.setDamage(1);
|
event.setDamage(1);
|
||||||
|
|
||||||
// If the boss is dead, remove the entity and create an explosion!
|
// If the boss is dead, remove the entity and create an explosion!
|
||||||
if (arena.bossWave.getHealth() <= 0)
|
if (arena.bossWave.getHealth() <= 0)
|
||||||
{
|
{
|
||||||
arena.bossWave.clear();
|
arena.bossWave.clear();
|
||||||
arena.bossWave = null;
|
arena.bossWave = null;
|
||||||
}
|
}
|
||||||
else if (arena.bossWave.getHealth() <= 100 && !arena.bossWave.isLowHealthAnnounced())
|
else if (arena.bossWave.getHealth() <= 100 && !arena.bossWave.isLowHealthAnnounced())
|
||||||
{
|
{
|
||||||
MAUtils.tellAll(arena, Msg.WAVE_BOSS_LOW_HEALTH);
|
MAUtils.tellAll(arena, Msg.WAVE_BOSS_LOW_HEALTH);
|
||||||
arena.bossWave.setLowHealthAnnounced(true);
|
arena.bossWave.setLowHealthAnnounced(true);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -386,7 +386,7 @@ public class MAUtils
|
|||||||
|
|
||||||
// If the player isn't online, hack the playerName.dat file
|
// If the player isn't online, hack the playerName.dat file
|
||||||
if (!p.isOnline())
|
if (!p.isOnline())
|
||||||
System.out.println("FUCKKKKKKKKKKKKKKKKKKKKKKKKKK!");//return writeInventoryData(p, stacks);
|
System.out.println("THE WORLD IS GOING TO END! SOMETHING IS WRONG!");//return writeInventoryData(p, stacks);
|
||||||
|
|
||||||
// Otherwise, restore the inventory directly
|
// Otherwise, restore the inventory directly
|
||||||
ItemStack[] items = new ItemStack[stacks.length-4];
|
ItemStack[] items = new ItemStack[stacks.length-4];
|
||||||
@@ -1028,6 +1028,16 @@ public class MAUtils
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getInt(Configuration config, String path)
|
||||||
|
{
|
||||||
|
Object o = config.getProperty(path);
|
||||||
|
|
||||||
|
if (o instanceof Integer)
|
||||||
|
return (Integer) o;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ///////////////////////////////////////////////////////////////////// //
|
/* ///////////////////////////////////////////////////////////////////// //
|
||||||
|
|||||||
@@ -21,14 +21,12 @@ import com.nijikokun.bukkit.Permissions.Permissions;
|
|||||||
import com.garbagemule.MobArena.util.FileUtils;
|
import com.garbagemule.MobArena.util.FileUtils;
|
||||||
import com.garbagemule.register.payment.Method;
|
import com.garbagemule.register.payment.Method;
|
||||||
import com.garbagemule.register.payment.Methods;
|
import com.garbagemule.register.payment.Methods;
|
||||||
//import com.garbagemule.ArenaPlugin.ArenaPlugin;
|
|
||||||
//import com.garbagemule.ArenaPlugin.Master;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MobArena
|
* MobArena
|
||||||
* @author garbagemule
|
* @author garbagemule
|
||||||
*/
|
*/
|
||||||
public class MobArena extends JavaPlugin// implements ArenaPlugin
|
public class MobArena extends JavaPlugin
|
||||||
{
|
{
|
||||||
private Configuration config;
|
private Configuration config;
|
||||||
private ArenaMaster am;
|
private ArenaMaster am;
|
||||||
@@ -120,7 +118,6 @@ public class MobArena extends JavaPlugin// implements ArenaPlugin
|
|||||||
// Register events.
|
// Register events.
|
||||||
pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Highest, this);
|
pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Highest, this);
|
||||||
pm.registerEvent(Event.Type.BLOCK_BURN, blockListener, Priority.Highest, this);
|
pm.registerEvent(Event.Type.BLOCK_BURN, blockListener, Priority.Highest, this);
|
||||||
//pm.registerEvent(Event.Type.BLOCK_PHYSICS, blockListener, Priority.Normal, this);
|
|
||||||
pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Highest, this);
|
pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Highest, this);
|
||||||
pm.registerEvent(Event.Type.BLOCK_IGNITE, blockListener, Priority.Highest, this);
|
pm.registerEvent(Event.Type.BLOCK_IGNITE, blockListener, Priority.Highest, this);
|
||||||
pm.registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Priority.Normal, this);
|
pm.registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Priority.Normal, this);
|
||||||
@@ -145,8 +142,8 @@ public class MobArena extends JavaPlugin// implements ArenaPlugin
|
|||||||
public boolean has(Player p, String s)
|
public boolean has(Player p, String s)
|
||||||
{
|
{
|
||||||
// First check for NijikoPerms
|
// First check for NijikoPerms
|
||||||
if (permissionHandler != null)
|
//if (permissionHandler != null)
|
||||||
return permissionHandler.has(p, s);
|
// return permissionHandler.has(p, s);
|
||||||
|
|
||||||
// If the permission is set, check if player has permission
|
// If the permission is set, check if player has permission
|
||||||
if (p.isPermissionSet(s))
|
if (p.isPermissionSet(s))
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.util.config.Configuration;
|
import org.bukkit.util.config.Configuration;
|
||||||
|
|
||||||
import com.garbagemule.MobArena.Arena;
|
import com.garbagemule.MobArena.Arena;
|
||||||
|
import com.garbagemule.MobArena.MAUtils;
|
||||||
import com.garbagemule.MobArena.MobArena;
|
import com.garbagemule.MobArena.MobArena;
|
||||||
import com.garbagemule.MobArena.waves.*;
|
import com.garbagemule.MobArena.waves.*;
|
||||||
import com.garbagemule.MobArena.waves.Wave.*;
|
import com.garbagemule.MobArena.waves.Wave.*;
|
||||||
@@ -174,7 +175,8 @@ public class WaveUtils
|
|||||||
{
|
{
|
||||||
int frequency = config.getInt(path + "frequency", 0);
|
int frequency = config.getInt(path + "frequency", 0);
|
||||||
int priority = config.getInt(path + "priority", 0);
|
int priority = config.getInt(path + "priority", 0);
|
||||||
int wave = config.getInt(path + "wave", frequency);
|
int wave = MAUtils.getInt(config, path + "wave");
|
||||||
|
//int wave = config.getInt(path + "wave", frequency);
|
||||||
|
|
||||||
if (type == WaveType.DEFAULT)
|
if (type == WaveType.DEFAULT)
|
||||||
result = new DefaultWave(arena, name, wave, frequency, priority, config, path);
|
result = new DefaultWave(arena, name, wave, frequency, priority, config, path);
|
||||||
@@ -187,7 +189,8 @@ public class WaveUtils
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int wave = config.getInt(path + "wave", 0);
|
int wave = MAUtils.getInt(config, path + "wave");
|
||||||
|
//int wave = config.getInt(path + "wave", 0);
|
||||||
|
|
||||||
if (type == WaveType.DEFAULT)
|
if (type == WaveType.DEFAULT)
|
||||||
result = new DefaultWave(arena, name, wave, config, path);
|
result = new DefaultWave(arena, name, wave, config, path);
|
||||||
@@ -244,7 +247,8 @@ public class WaveUtils
|
|||||||
wellDefined = false;
|
wellDefined = false;
|
||||||
}
|
}
|
||||||
// OPTIONAL: Wave
|
// OPTIONAL: Wave
|
||||||
int wave = config.getInt(path + "wave", frequency);
|
int wave = MAUtils.getInt(config, path + "wave");
|
||||||
|
//int wave = config.getInt(path + "wave", frequency);
|
||||||
if (wave < 0)
|
if (wave < 0)
|
||||||
{
|
{
|
||||||
MobArena.warning("'wave' must be greater than 0 in " + path);
|
MobArena.warning("'wave' must be greater than 0 in " + path);
|
||||||
@@ -254,7 +258,8 @@ public class WaveUtils
|
|||||||
else if (branch == WaveBranch.SINGLE)
|
else if (branch == WaveBranch.SINGLE)
|
||||||
{
|
{
|
||||||
// REQUIRED: Wave number
|
// REQUIRED: Wave number
|
||||||
int wave = config.getInt(path + "wave", 0);
|
int wave = MAUtils.getInt(config, path + "wave");
|
||||||
|
//int wave = config.getInt(path + "wave", 0);
|
||||||
if (wave == 0)
|
if (wave == 0)
|
||||||
{
|
{
|
||||||
MobArena.warning("Missing 'wave'-node in " + path);
|
MobArena.warning("Missing 'wave'-node in " + path);
|
||||||
|
|||||||
@@ -37,6 +37,10 @@ public class SpecialWave extends NormalWave
|
|||||||
// Get the valid spawnpoints, and initialize counter
|
// Get the valid spawnpoints, and initialize counter
|
||||||
List<Location> validSpawnpoints = WaveUtils.getValidSpawnpoints(getArena(), getArena().getLivingPlayers());
|
List<Location> validSpawnpoints = WaveUtils.getValidSpawnpoints(getArena(), getArena().getLivingPlayers());
|
||||||
|
|
||||||
|
// Strike some lightning!
|
||||||
|
for (Location loc : validSpawnpoints)
|
||||||
|
getWorld().strikeLightningEffect(loc);
|
||||||
|
|
||||||
// Spawn all the monsters
|
// Spawn all the monsters
|
||||||
spawnAll(getMonstersToSpawn(getArena().getPlayerCount()), validSpawnpoints);
|
spawnAll(getMonstersToSpawn(getArena().getPlayerCount()), validSpawnpoints);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user