v0.93.3 - Fixed some inventory/reward bugs
This commit is contained in:
Binary file not shown.
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
name: MobArena
|
name: MobArena
|
||||||
main: com.garbagemule.MobArena.MobArena
|
main: com.garbagemule.MobArena.MobArena
|
||||||
version: 0.93.2
|
version: 0.93.3
|
||||||
softdepend: [MultiVerse,XcraftGate]
|
softdepend: [MultiVerse,XcraftGate]
|
||||||
commands:
|
commands:
|
||||||
ma:
|
ma:
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class Arena
|
|||||||
protected List<ItemStack> entryFee;
|
protected List<ItemStack> entryFee;
|
||||||
|
|
||||||
// Arena sets/maps
|
// Arena sets/maps
|
||||||
protected Set<Player> /*livePlayers, */deadPlayers, readyPlayers, specPlayers, waitPlayers, hasPaid, arenaPlayers, lobbyPlayers, notifyPlayers, randoms;
|
protected Set<Player> arenaPlayers, lobbyPlayers, readyPlayers, specPlayers, waitPlayers, hasPaid, rewardedPlayers, notifyPlayers, randoms;
|
||||||
protected Set<LivingEntity> monsters;
|
protected Set<LivingEntity> monsters;
|
||||||
protected Set<Block> blocks;
|
protected Set<Block> blocks;
|
||||||
protected Set<Wolf> pets;
|
protected Set<Wolf> pets;
|
||||||
@@ -98,32 +98,31 @@ public class Arena
|
|||||||
plugin = (MobArena) Bukkit.getServer().getPluginManager().getPlugin("MobArena");
|
plugin = (MobArena) Bukkit.getServer().getPluginManager().getPlugin("MobArena");
|
||||||
log = new ArenaLog(plugin, this);
|
log = new ArenaLog(plugin, this);
|
||||||
|
|
||||||
arenaPlayers = new HashSet<Player>();
|
arenaPlayers = new HashSet<Player>();
|
||||||
lobbyPlayers = new HashSet<Player>();
|
lobbyPlayers = new HashSet<Player>();
|
||||||
notifyPlayers = new HashSet<Player>();
|
notifyPlayers = new HashSet<Player>();
|
||||||
//livePlayers = new HashSet<Player>();
|
readyPlayers = new HashSet<Player>();
|
||||||
deadPlayers = new HashSet<Player>();
|
specPlayers = new HashSet<Player>();
|
||||||
readyPlayers = new HashSet<Player>();
|
waitPlayers = new HashSet<Player>();
|
||||||
specPlayers = new HashSet<Player>();
|
rewardedPlayers = new HashSet<Player>();
|
||||||
waitPlayers = new HashSet<Player>();
|
hasPaid = new HashSet<Player>();
|
||||||
hasPaid = new HashSet<Player>();
|
monsters = new HashSet<LivingEntity>();
|
||||||
monsters = new HashSet<LivingEntity>();
|
blocks = new HashSet<Block>();
|
||||||
blocks = new HashSet<Block>();
|
pets = new HashSet<Wolf>();
|
||||||
pets = new HashSet<Wolf>();
|
petMap = new HashMap<Player,Integer>();
|
||||||
petMap = new HashMap<Player,Integer>();
|
classMap = new HashMap<Player,String>();
|
||||||
classMap = new HashMap<Player,String>();
|
randoms = new HashSet<Player>();
|
||||||
randoms = new HashSet<Player>();
|
rewardMap = new HashMap<Player,List<ItemStack>>();
|
||||||
rewardMap = new HashMap<Player,List<ItemStack>>();
|
repairList = new LinkedList<int[]>();
|
||||||
repairList = new LinkedList<int[]>();
|
|
||||||
|
|
||||||
running = false;
|
running = false;
|
||||||
edit = false;
|
edit = false;
|
||||||
|
|
||||||
allowMonsters = world.getAllowMonsters();
|
allowMonsters = world.getAllowMonsters();
|
||||||
allowAnimals = world.getAllowAnimals();
|
allowAnimals = world.getAllowAnimals();
|
||||||
spawnMonsters = ((net.minecraft.server.World) ((CraftWorld) world).getHandle()).spawnMonsters;
|
spawnMonsters = ((net.minecraft.server.World) ((CraftWorld) world).getHandle()).spawnMonsters;
|
||||||
|
|
||||||
eventListener = new MAListener(this, plugin);
|
eventListener = new MAListener(this, plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean startArena()
|
public boolean startArena()
|
||||||
@@ -210,6 +209,7 @@ public class Arena
|
|||||||
MAUtils.tellAll(this, MAMessages.get(Msg.ARENA_END), true);
|
MAUtils.tellAll(this, MAMessages.get(Msg.ARENA_END), true);
|
||||||
arenaPlayers.clear();
|
arenaPlayers.clear();
|
||||||
notifyPlayers.clear();
|
notifyPlayers.clear();
|
||||||
|
rewardedPlayers.clear();
|
||||||
classMap.clear();
|
classMap.clear();
|
||||||
rewardMap.clear();
|
rewardMap.clear();
|
||||||
waveMap.clear();
|
waveMap.clear();
|
||||||
@@ -286,7 +286,7 @@ public class Arena
|
|||||||
public void playerLeave(Player p)
|
public void playerLeave(Player p)
|
||||||
{
|
{
|
||||||
// Clear class inventory, restore old inventory and fork over rewards.
|
// Clear class inventory, restore old inventory and fork over rewards.
|
||||||
restoreInvAndGiveRewards(p, !specPlayers.contains(p));
|
restoreInvAndGiveRewards(p, arenaPlayers.contains(p));
|
||||||
|
|
||||||
// Grab the player's entry location, and warp them there.
|
// Grab the player's entry location, and warp them there.
|
||||||
Location entry = locations.get(p);
|
Location entry = locations.get(p);
|
||||||
@@ -305,7 +305,7 @@ public class Arena
|
|||||||
endArena();
|
endArena();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void playerDeath(final Player p)
|
public void playerDeath(Player p)
|
||||||
{
|
{
|
||||||
// If spectate-on-death: false, pass on to playerLeave.
|
// If spectate-on-death: false, pass on to playerLeave.
|
||||||
if (!specOnDeath)
|
if (!specOnDeath)
|
||||||
@@ -408,6 +408,7 @@ public class Arena
|
|||||||
{
|
{
|
||||||
Bukkit.getServer().getScheduler().cancelTask(spawnThread.taskId);
|
Bukkit.getServer().getScheduler().cancelTask(spawnThread.taskId);
|
||||||
Bukkit.getServer().getScheduler().cancelTask(spawnTaskId);
|
Bukkit.getServer().getScheduler().cancelTask(spawnTaskId);
|
||||||
|
spawnThread = null;
|
||||||
spawnTaskId = -1;
|
spawnTaskId = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -438,6 +439,7 @@ public class Arena
|
|||||||
public void restoreInvAndGiveRewards(final Player p, final boolean clear)
|
public void restoreInvAndGiveRewards(final Player p, final boolean clear)
|
||||||
{
|
{
|
||||||
final List<ItemStack> rewards = rewardMap.get(p);
|
final List<ItemStack> rewards = rewardMap.get(p);
|
||||||
|
final boolean hadRewards = rewardedPlayers.contains(p);
|
||||||
|
|
||||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin,
|
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin,
|
||||||
new Runnable()
|
new Runnable()
|
||||||
@@ -449,7 +451,14 @@ public class Arena
|
|||||||
|
|
||||||
if (!emptyInvJoin)
|
if (!emptyInvJoin)
|
||||||
MAUtils.restoreInventory(p);
|
MAUtils.restoreInventory(p);
|
||||||
|
|
||||||
|
//if (rewardedPlayers.contains(p))
|
||||||
|
if (hadRewards)
|
||||||
|
return;
|
||||||
|
|
||||||
MAUtils.giveRewards(p, rewards, plugin);
|
MAUtils.giveRewards(p, rewards, plugin);
|
||||||
|
if (running)
|
||||||
|
rewardedPlayers.add(p);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -827,13 +836,6 @@ public class Arena
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Player> getDeadPlayers()
|
|
||||||
{
|
|
||||||
List<Player> result = new LinkedList<Player>();
|
|
||||||
result.addAll(deadPlayers);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void resetIdleTimer()
|
public void resetIdleTimer()
|
||||||
{
|
{
|
||||||
if (maxIdleTime <= 0 || !running)
|
if (maxIdleTime <= 0 || !running)
|
||||||
|
|||||||
@@ -73,10 +73,7 @@ public class ArenaLog
|
|||||||
log.add(" ");
|
log.add(" ");
|
||||||
|
|
||||||
// Player data
|
// Player data
|
||||||
int NAME = 12;
|
int NAME = 12; int CLASS = 0; int WAVE = 4; int KILLS = 5;
|
||||||
int CLASS = 0;
|
|
||||||
int WAVE = 4;
|
|
||||||
int KILLS = 5;
|
|
||||||
for (String c : plugin.getAM().classes)
|
for (String c : plugin.getAM().classes)
|
||||||
if (c.length() > CLASS)
|
if (c.length() > CLASS)
|
||||||
CLASS = c.length();
|
CLASS = c.length();
|
||||||
|
|||||||
@@ -904,12 +904,11 @@ public class MAUtils
|
|||||||
public static void tellAll(Arena arena, String msg, boolean waitPlayers)
|
public static void tellAll(Arena arena, String msg, boolean waitPlayers)
|
||||||
{
|
{
|
||||||
Set<Player> tmp = new HashSet<Player>();
|
Set<Player> tmp = new HashSet<Player>();
|
||||||
//tmp.addAll(arena.livePlayers);
|
|
||||||
tmp.addAll(arena.arenaPlayers);
|
tmp.addAll(arena.arenaPlayers);
|
||||||
tmp.addAll(arena.lobbyPlayers);
|
tmp.addAll(arena.lobbyPlayers);
|
||||||
tmp.addAll(arena.deadPlayers);
|
|
||||||
tmp.addAll(arena.specPlayers);
|
|
||||||
tmp.addAll(arena.readyPlayers);
|
tmp.addAll(arena.readyPlayers);
|
||||||
|
tmp.addAll(arena.notifyPlayers);
|
||||||
|
tmp.addAll(arena.specPlayers);
|
||||||
if (waitPlayers) tmp.addAll(arena.waitPlayers);
|
if (waitPlayers) tmp.addAll(arena.waitPlayers);
|
||||||
for (Player p : tmp)
|
for (Player p : tmp)
|
||||||
tellPlayer(p, msg);
|
tellPlayer(p, msg);
|
||||||
|
|||||||
Reference in New Issue
Block a user