Master Builders, added stats
This commit is contained in:
parent
c16a719be1
commit
56b3e482f2
@ -16,7 +16,7 @@ import nautilus.game.arcade.game.SoloGame;
|
||||
import nautilus.game.arcade.game.games.barbarians.kits.*;
|
||||
import nautilus.game.arcade.kit.Kit;
|
||||
import nautilus.game.arcade.managers.chat.ChatStatData;
|
||||
import nautilus.game.arcade.stats.BlockBreakStat;
|
||||
import nautilus.game.arcade.stats.BlockBreakStatTracker;
|
||||
|
||||
public class Barbarians extends SoloGame
|
||||
{
|
||||
@ -62,7 +62,7 @@ public class Barbarians extends SoloGame
|
||||
this.BlockBreakAllow.add(136);
|
||||
|
||||
registerStatTrackers(
|
||||
new BlockBreakStat(this, true)
|
||||
new BlockBreakStatTracker(this, true)
|
||||
);
|
||||
|
||||
registerChatStats(
|
||||
|
@ -37,6 +37,9 @@ import nautilus.game.arcade.game.games.build.gui.MobShop;
|
||||
import nautilus.game.arcade.game.games.build.gui.OptionsShop;
|
||||
import nautilus.game.arcade.game.games.build.kits.KitBuilder;
|
||||
import nautilus.game.arcade.kit.Kit;
|
||||
import nautilus.game.arcade.managers.chat.ChatStatData;
|
||||
import nautilus.game.arcade.stats.BlockBreakStatTracker;
|
||||
import nautilus.game.arcade.stats.BlockPlaceStatTracker;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Effect;
|
||||
@ -216,7 +219,15 @@ public class Build extends SoloGame
|
||||
_optionsShop = new OptionsShop(this, getArcadeManager(), getArcadeManager().GetClients(), getArcadeManager().GetDonation());
|
||||
_shopItem = ItemStackFactory.Instance.CreateStack(Material.DIAMOND, (byte) 0, 1, C.cGreen + "Options");
|
||||
|
||||
registerChatStats();
|
||||
registerStatTrackers(
|
||||
new BlockBreakStatTracker(this, false),
|
||||
new BlockPlaceStatTracker(this, new Material[]{})
|
||||
);
|
||||
|
||||
registerChatStats(
|
||||
new ChatStatData("BlocksPlaced", "Blocks Placed", true),
|
||||
new ChatStatData("BlocksBroken", "Blocks Broken", true)
|
||||
);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -354,6 +354,7 @@ public class GameChatManager implements Listener
|
||||
/** DONE */
|
||||
// BaconBrawl
|
||||
// Barbarians
|
||||
// Bridges
|
||||
|
||||
/** BROKEN */
|
||||
// BossBattles
|
||||
|
@ -10,29 +10,29 @@ import nautilus.game.arcade.game.Game;
|
||||
/**
|
||||
* Created by TeddehDev on 15/01/2016.
|
||||
*/
|
||||
public class BlockBreakStat extends StatTracker<Game>
|
||||
public class BlockBreakStatTracker extends StatTracker<Game>
|
||||
{
|
||||
private Game _game;
|
||||
private boolean _blockDamage;
|
||||
|
||||
/**
|
||||
* @param game
|
||||
* @param blockDamage
|
||||
* - true = triggers block damage event
|
||||
* - false = triggers block break event
|
||||
*/
|
||||
public BlockBreakStat(Game game, boolean blockDamage)
|
||||
public BlockBreakStatTracker(Game game, boolean blockDamage)
|
||||
{
|
||||
super(game);
|
||||
|
||||
_game = game;
|
||||
_blockDamage = blockDamage;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void blockBreak(BlockBreakEvent event)
|
||||
{
|
||||
if(!_game.IsLive())
|
||||
if(!getGame().IsLive())
|
||||
return;
|
||||
|
||||
if(event.isCancelled())
|
||||
return;
|
||||
|
||||
if(_blockDamage)
|
||||
@ -48,7 +48,10 @@ public class BlockBreakStat extends StatTracker<Game>
|
||||
@EventHandler
|
||||
public void blockBreak(BlockDamageEvent event)
|
||||
{
|
||||
if(!_game.IsLive())
|
||||
if(!getGame().IsLive())
|
||||
return;
|
||||
|
||||
if(event.isCancelled())
|
||||
return;
|
||||
|
||||
if(!_blockDamage)
|
@ -0,0 +1,45 @@
|
||||
package nautilus.game.arcade.stats;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
|
||||
import nautilus.game.arcade.game.Game;
|
||||
|
||||
/**
|
||||
* Created by TeddehDev on 15/01/2016.
|
||||
*/
|
||||
public class BlockPlaceStatTracker extends StatTracker<Game>
|
||||
{
|
||||
private Material[] _ignore;
|
||||
|
||||
public BlockPlaceStatTracker(Game game, Material[] ignore)
|
||||
{
|
||||
super(game);
|
||||
|
||||
_ignore = ignore;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void blockPlace(BlockPlaceEvent event)
|
||||
{
|
||||
if(!getGame().IsLive())
|
||||
return;
|
||||
|
||||
if(event.isCancelled())
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
if(player == null)
|
||||
return;
|
||||
|
||||
for(Material material : _ignore)
|
||||
{
|
||||
if(event.getBlock().getType() == material)
|
||||
continue;
|
||||
|
||||
addStat(event.getPlayer(), "BlocksPlaced", 1, false, false);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user