increment version like normal, a few bug fixes, food level should now reset properly when leaving from/dying in the arena
This commit is contained in:
@@ -602,11 +602,13 @@ public class ArenaImpl implements Arena
|
||||
if (ap != null && running)
|
||||
log.playerDeath(ap);
|
||||
|
||||
arenaPlayers.remove(p);
|
||||
|
||||
restoreInvAndExp(p);
|
||||
if (inLobby(p) || inArena(p))
|
||||
if (inLobby(p) || inArena(p)) {
|
||||
restoreInvAndExp(p);
|
||||
refund(p);
|
||||
}
|
||||
else if (inSpec(p)) {
|
||||
inventoryManager.restoreInventory(p);
|
||||
}
|
||||
|
||||
movePlayerToEntry(p);
|
||||
discardPlayer(p);
|
||||
@@ -720,7 +722,7 @@ public class ArenaImpl implements Arena
|
||||
|
||||
private void removePotionEffects(Player p) {
|
||||
for (PotionEffect effect : p.getActivePotionEffects()) {
|
||||
p.addPotionEffect(new PotionEffect(effect.getType(), 0, 0), true);
|
||||
p.removePotionEffect(effect.getType());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -892,6 +894,9 @@ public class ArenaImpl implements Arena
|
||||
if (!settings.getBoolean("keep-exp", false)) {
|
||||
playerData.get(p).restoreData();
|
||||
}
|
||||
else {
|
||||
p.setFoodLevel(playerData.get(p).food());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -474,7 +474,7 @@ public class ArenaListener
|
||||
else if (damagee instanceof Player) {
|
||||
onPlayerDamage(event, (Player) damagee, damager);
|
||||
}
|
||||
// Snowman
|
||||
// Snowmen melting
|
||||
else if (damagee instanceof Snowman && event.getCause() == DamageCause.MELTING) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
@@ -486,6 +486,10 @@ public class ArenaListener
|
||||
else if (monsters.getMonsters().contains(damagee)) {
|
||||
onMonsterDamage(event, damagee, damager);
|
||||
}
|
||||
// Player made golems
|
||||
else if (monsters.getGolems().contains(damagee)) {
|
||||
onGolemDamage(event, damagee, damager);
|
||||
}
|
||||
}
|
||||
|
||||
private void onPlayerDamage(EntityDamageEvent event, Player player, Entity damager) {
|
||||
@@ -533,6 +537,21 @@ public class ArenaListener
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void onGolemDamage(EntityDamageEvent event, Entity golem, Entity damager) {
|
||||
if (damager instanceof Player) {
|
||||
Player p = (Player) damager;
|
||||
if (!arena.inArena(p)) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!pvpEnabled) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onBossDamage(EntityDamageEvent event, LivingEntity monster, Entity damager) {
|
||||
// Health the boss back up.
|
||||
@@ -786,8 +805,9 @@ public class ArenaListener
|
||||
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if (!arena.isEnabled() || (!arena.inArena(p) && !arena.inLobby(p)))
|
||||
if (!arena.isEnabled() || (!arena.inArena(p) && !arena.inLobby(p) && !arena.inSpec(p))) {
|
||||
return;
|
||||
}
|
||||
|
||||
arena.playerLeave(p);
|
||||
banned.add(p);
|
||||
@@ -796,7 +816,7 @@ public class ArenaListener
|
||||
|
||||
public void onPlayerKick(PlayerKickEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if (!arena.isEnabled() || (!arena.inArena(p) && !arena.inLobby(p))) {
|
||||
if (!arena.isEnabled() || (!arena.inArena(p) && !arena.inLobby(p) && !arena.inSpec(p))) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user