Added only-on-swarms for MagicSpells

This commit is contained in:
Garbage Mule
2011-09-13 21:46:51 +02:00
parent 46cedc87d8
commit 3147bdfda0
5 changed files with 27 additions and 5 deletions
BIN
View File
Binary file not shown.
+4
View File
@@ -10,4 +10,8 @@ disabled-spells:
# Spells that will be disabled only while a boss is present.
disabled-only-on-bosses:
- purge
# Spells that will be disabled only during swarm waves.
disabled-only-on-swarms:
- purge
+12
View File
@@ -86,6 +86,7 @@ public class Arena
protected TreeSet<Wave> singleWaves, singleWavesInstance;
protected TreeSet<Wave> recurrentWaves;
protected BossWave bossWave;
protected Wave currentWave;
// Arena sets/maps
protected Set<Player> hasPaid, rewardedPlayers, notifyPlayers, randoms;
@@ -438,6 +439,7 @@ public class Arena
spawnTaskId = -1;
sheepTaskId = -1;
spawnThread = null;
currentWave = null;
}
else System.out.println("--------- THE SPAWNTHREAD IS NULL! ----------");
@@ -1098,6 +1100,16 @@ public class Arena
{
return world;
}
public Wave getWave()
{
return currentWave;
}
public void setWave(Wave wave)
{
currentWave = wave;
}
public void setBossWave(BossWave bossWave)
{
@@ -123,7 +123,8 @@ public class MASpawnThread implements Runnable
// Notify listeners.
for (MobArenaListener listener : plugin.getAM().listeners)
listener.onWave(arena, wave, w.getName(), w.getBranch(), w.getType());
arena.setWave(w);
w.spawn(wave);
}
@@ -9,13 +9,14 @@ import org.bukkit.util.config.Configuration;
import com.garbagemule.MobArena.Arena;
import com.garbagemule.MobArena.MobArena;
import com.garbagemule.MobArena.util.FileUtils;
import com.garbagemule.MobArena.waves.Wave.WaveType;
import com.nisovin.MagicSpells.Events.SpellCastEvent;
import com.nisovin.MagicSpells.Events.SpellListener;
public class MagicSpellsListener extends SpellListener
{
private MobArena plugin;
private List<String> disabled, disabledOnBoss;
private List<String> disabled, disabledOnBoss, disabledOnSwarm;
public MagicSpellsListener(MobArena plugin)
{
@@ -34,15 +35,19 @@ public class MagicSpellsListener extends SpellListener
if (arena == null || !arena.isRunning()) return;
String spell = event.getSpell().getName();
WaveType type = (arena.getWave() != null) ? arena.getWave().getType() : null;
if (disabled.contains(spell) || (arena.isBossWave() && disabledOnBoss.contains(spell)))
if (disabled.contains(spell) ||
(type == WaveType.BOSS && disabledOnBoss.contains(spell)) ||
(type == WaveType.SWARM && disabledOnSwarm.contains(spell)))
event.setCancelled(true);
}
private void setupSpells(Configuration config)
{
this.disabled = config.getStringList("disabled-spells", new LinkedList<String>());
this.disabledOnBoss = config.getStringList("disabled-only-on-bosses", new LinkedList<String>());
this.disabled = config.getStringList("disabled-spells", new LinkedList<String>());
this.disabledOnBoss = config.getStringList("disabled-only-on-bosses", new LinkedList<String>());
this.disabledOnSwarm = config.getStringList("disabled-only-on-swarms", new LinkedList<String>());
}
public void disableSpell(String spell)