mirror of
https://github.com/garbagemule/MobArena.git
synced 2024-11-29 22:23:54 +01:00
Fixed some weird inventory bug...
This commit is contained in:
parent
d71430435b
commit
cd404a5ffa
BIN
MobArena.jar
BIN
MobArena.jar
Binary file not shown.
@ -249,7 +249,6 @@ public class Arena
|
|||||||
notifyPlayers.clear();
|
notifyPlayers.clear();
|
||||||
rewardedPlayers.clear();
|
rewardedPlayers.clear();
|
||||||
classMap.clear();
|
classMap.clear();
|
||||||
spawnThread = null;
|
|
||||||
|
|
||||||
// Notify listeners.
|
// Notify listeners.
|
||||||
for (MobArenaListener listener : plugin.getAM().listeners)
|
for (MobArenaListener listener : plugin.getAM().listeners)
|
||||||
@ -327,7 +326,7 @@ public class Arena
|
|||||||
|
|
||||||
public void playerLeave(Player p)
|
public void playerLeave(Player p)
|
||||||
{
|
{
|
||||||
finishArenaPlayer(p);
|
finishArenaPlayer(p, false);
|
||||||
movePlayerToEntry(p);
|
movePlayerToEntry(p);
|
||||||
discardPlayer(p);
|
discardPlayer(p);
|
||||||
|
|
||||||
@ -341,7 +340,7 @@ public class Arena
|
|||||||
|
|
||||||
public void playerDeath(Player p)
|
public void playerDeath(Player p)
|
||||||
{
|
{
|
||||||
finishArenaPlayer(p);
|
finishArenaPlayer(p, true);
|
||||||
|
|
||||||
if (specOnDeath)
|
if (specOnDeath)
|
||||||
{
|
{
|
||||||
@ -482,7 +481,7 @@ public class Arena
|
|||||||
log.players.get(p).kills++;
|
log.players.get(p).kills++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restoreInvAndGiveRewards(final Player p)
|
public void restoreInvAndGiveRewardsDelayed(final Player p)
|
||||||
{
|
{
|
||||||
final List<ItemStack> rewards = log != null && log.players.get(p) != null ? log.players.get(p).rewards : new LinkedList<ItemStack>();
|
final List<ItemStack> rewards = log != null && log.players.get(p) != null ? log.players.get(p).rewards : new LinkedList<ItemStack>();
|
||||||
final boolean hadRewards = rewardedPlayers.contains(p);
|
final boolean hadRewards = rewardedPlayers.contains(p);
|
||||||
@ -505,20 +504,22 @@ public class Arena
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restoreInvAndGiveRewardz(final Player p, List<ItemStack> rewards, boolean hadRewards)
|
public void restoreInvAndGiveRewards(final Player p)
|
||||||
{
|
{
|
||||||
if (!p.isOnline())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!emptyInvJoin)
|
if (!emptyInvJoin)
|
||||||
MAUtils.restoreInventory(p);
|
MAUtils.restoreInventory(p);
|
||||||
|
|
||||||
if (hadRewards)
|
if (rewardedPlayers.contains(p))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
final List<ItemStack> rewards = (log != null && log.players.get(p) != null) ?
|
||||||
|
log.players.get(p).rewards :
|
||||||
|
new LinkedList<ItemStack>();
|
||||||
|
|
||||||
MAUtils.giveRewards(p, rewards, plugin);
|
MAUtils.giveRewards(p, rewards, plugin);
|
||||||
if (running)
|
if (running)
|
||||||
rewardedPlayers.add(p);}
|
rewardedPlayers.add(p);
|
||||||
|
}
|
||||||
|
|
||||||
public void storePlayerData(Player p, Location loc)
|
public void storePlayerData(Player p, Location loc)
|
||||||
{
|
{
|
||||||
@ -617,9 +618,9 @@ public class Arena
|
|||||||
/**
|
/**
|
||||||
* Give the player back his inventory and record his last wave.
|
* Give the player back his inventory and record his last wave.
|
||||||
* Called when a player dies or leaves prematurely.
|
* Called when a player dies or leaves prematurely.
|
||||||
* @param p
|
* @param p A player
|
||||||
*/
|
*/
|
||||||
private void finishArenaPlayer(Player p)
|
/*private void finishArenaPlayer(Player p)
|
||||||
{
|
{
|
||||||
if (!arenaPlayers.contains(p) && !lobbyPlayers.contains(p))
|
if (!arenaPlayers.contains(p) && !lobbyPlayers.contains(p))
|
||||||
return;
|
return;
|
||||||
@ -628,6 +629,22 @@ public class Arena
|
|||||||
MAUtils.clearInventory(p);
|
MAUtils.clearInventory(p);
|
||||||
restoreInvAndGiveRewards(p);
|
restoreInvAndGiveRewards(p);
|
||||||
|
|
||||||
|
if (log != null && spawnThread != null)
|
||||||
|
log.players.get(p).lastWave = spawnThread.getWave() - 1;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
private void finishArenaPlayer(Player p, boolean dead)
|
||||||
|
{
|
||||||
|
System.out.println(p.getName() + " in finishArenaPlayer");
|
||||||
|
if (!arenaPlayers.contains(p) && !lobbyPlayers.contains(p))
|
||||||
|
return;
|
||||||
|
|
||||||
|
removeClassPermissions(p);
|
||||||
|
MAUtils.clearInventory(p);
|
||||||
|
|
||||||
|
if (dead) restoreInvAndGiveRewardsDelayed(p);
|
||||||
|
else restoreInvAndGiveRewards(p);
|
||||||
|
|
||||||
if (log != null && spawnThread != null)
|
if (log != null && spawnThread != null)
|
||||||
log.players.get(p).lastWave = spawnThread.getWave() - 1;
|
log.players.get(p).lastWave = spawnThread.getWave() - 1;
|
||||||
}
|
}
|
||||||
|
@ -386,7 +386,7 @@ public class MAUtils
|
|||||||
|
|
||||||
// If the player isn't online, hack the playerName.dat file
|
// If the player isn't online, hack the playerName.dat file
|
||||||
if (!p.isOnline())
|
if (!p.isOnline())
|
||||||
return writeInventoryData(p, stacks);
|
System.out.println("FUCKKKKKKKKKKKKKKKKKKKKKKKKKK!");//return writeInventoryData(p, stacks);
|
||||||
|
|
||||||
// Otherwise, restore the inventory directly
|
// Otherwise, restore the inventory directly
|
||||||
ItemStack[] items = new ItemStack[stacks.length-4];
|
ItemStack[] items = new ItemStack[stacks.length-4];
|
||||||
|
@ -101,6 +101,13 @@ public class BossWave extends AbstractWave
|
|||||||
|
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
|
// Check to see if the boss is still alive. If not, end this boss wave.
|
||||||
|
if (bossCreature.isDead())
|
||||||
|
{
|
||||||
|
clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Grab the next ability
|
// Grab the next ability
|
||||||
BossAbility ability = abilities.get(counter % abilityCount);
|
BossAbility ability = abilities.get(counter % abilityCount);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user