Added only-on-swarms for MagicSpells
This commit is contained in:
Binary file not shown.
@@ -11,3 +11,7 @@ disabled-spells:
|
|||||||
# Spells that will be disabled only while a boss is present.
|
# Spells that will be disabled only while a boss is present.
|
||||||
disabled-only-on-bosses:
|
disabled-only-on-bosses:
|
||||||
- purge
|
- 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> singleWaves, singleWavesInstance;
|
||||||
protected TreeSet<Wave> recurrentWaves;
|
protected TreeSet<Wave> recurrentWaves;
|
||||||
protected BossWave bossWave;
|
protected BossWave bossWave;
|
||||||
|
protected Wave currentWave;
|
||||||
|
|
||||||
// Arena sets/maps
|
// Arena sets/maps
|
||||||
protected Set<Player> hasPaid, rewardedPlayers, notifyPlayers, randoms;
|
protected Set<Player> hasPaid, rewardedPlayers, notifyPlayers, randoms;
|
||||||
@@ -438,6 +439,7 @@ public class Arena
|
|||||||
spawnTaskId = -1;
|
spawnTaskId = -1;
|
||||||
sheepTaskId = -1;
|
sheepTaskId = -1;
|
||||||
spawnThread = null;
|
spawnThread = null;
|
||||||
|
currentWave = null;
|
||||||
}
|
}
|
||||||
else System.out.println("--------- THE SPAWNTHREAD IS NULL! ----------");
|
else System.out.println("--------- THE SPAWNTHREAD IS NULL! ----------");
|
||||||
|
|
||||||
@@ -1099,6 +1101,16 @@ public class Arena
|
|||||||
return world;
|
return world;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Wave getWave()
|
||||||
|
{
|
||||||
|
return currentWave;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWave(Wave wave)
|
||||||
|
{
|
||||||
|
currentWave = wave;
|
||||||
|
}
|
||||||
|
|
||||||
public void setBossWave(BossWave bossWave)
|
public void setBossWave(BossWave bossWave)
|
||||||
{
|
{
|
||||||
this.bossWave = bossWave;
|
this.bossWave = bossWave;
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ public class MASpawnThread implements Runnable
|
|||||||
for (MobArenaListener listener : plugin.getAM().listeners)
|
for (MobArenaListener listener : plugin.getAM().listeners)
|
||||||
listener.onWave(arena, wave, w.getName(), w.getBranch(), w.getType());
|
listener.onWave(arena, wave, w.getName(), w.getBranch(), w.getType());
|
||||||
|
|
||||||
|
arena.setWave(w);
|
||||||
w.spawn(wave);
|
w.spawn(wave);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,13 +9,14 @@ import org.bukkit.util.config.Configuration;
|
|||||||
import com.garbagemule.MobArena.Arena;
|
import com.garbagemule.MobArena.Arena;
|
||||||
import com.garbagemule.MobArena.MobArena;
|
import com.garbagemule.MobArena.MobArena;
|
||||||
import com.garbagemule.MobArena.util.FileUtils;
|
import com.garbagemule.MobArena.util.FileUtils;
|
||||||
|
import com.garbagemule.MobArena.waves.Wave.WaveType;
|
||||||
import com.nisovin.MagicSpells.Events.SpellCastEvent;
|
import com.nisovin.MagicSpells.Events.SpellCastEvent;
|
||||||
import com.nisovin.MagicSpells.Events.SpellListener;
|
import com.nisovin.MagicSpells.Events.SpellListener;
|
||||||
|
|
||||||
public class MagicSpellsListener extends SpellListener
|
public class MagicSpellsListener extends SpellListener
|
||||||
{
|
{
|
||||||
private MobArena plugin;
|
private MobArena plugin;
|
||||||
private List<String> disabled, disabledOnBoss;
|
private List<String> disabled, disabledOnBoss, disabledOnSwarm;
|
||||||
|
|
||||||
public MagicSpellsListener(MobArena plugin)
|
public MagicSpellsListener(MobArena plugin)
|
||||||
{
|
{
|
||||||
@@ -34,15 +35,19 @@ public class MagicSpellsListener extends SpellListener
|
|||||||
if (arena == null || !arena.isRunning()) return;
|
if (arena == null || !arena.isRunning()) return;
|
||||||
|
|
||||||
String spell = event.getSpell().getName();
|
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);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupSpells(Configuration config)
|
private void setupSpells(Configuration config)
|
||||||
{
|
{
|
||||||
this.disabled = config.getStringList("disabled-spells", new LinkedList<String>());
|
this.disabled = config.getStringList("disabled-spells", new LinkedList<String>());
|
||||||
this.disabledOnBoss = config.getStringList("disabled-only-on-bosses", 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)
|
public void disableSpell(String spell)
|
||||||
|
|||||||
Reference in New Issue
Block a user