Added only-on-swarms for MagicSpells
This commit is contained in:
Binary file not shown.
@@ -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
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user