Add chat messages for Peace Phase, remove arrows from chests, disable crafting, fix dropped pumpkins and disable weapon enchantments
This commit is contained in:
parent
c966620808
commit
a430f7e94d
|
@ -7,8 +7,14 @@ import org.bukkit.block.Block;
|
|||
import org.bukkit.block.Chest;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import mineplex.core.common.util.UtilAction;
|
||||
import mineplex.core.common.util.UtilEvent;
|
||||
import mineplex.core.common.util.UtilEvent.ActionType;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
import mineplex.core.loot.ChestLoot;
|
||||
import mineplex.core.loot.RandomItem;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package nautilus.game.arcade.game.games.survivalgames.modes;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
|
@ -11,23 +12,35 @@ import org.bukkit.block.Chest;
|
|||
import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.enchantment.EnchantItemEvent;
|
||||
import org.bukkit.event.entity.ItemSpawnEvent;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerPickupItemEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.common.util.UtilEvent;
|
||||
import mineplex.core.common.util.UtilInv;
|
||||
import mineplex.core.common.util.UtilItem;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
import mineplex.core.common.util.UtilEvent.ActionType;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
import mineplex.core.gadget.gadgets.gamemodifiers.GameModifierType;
|
||||
import mineplex.core.gadget.gadgets.gamemodifiers.minestrike.GameModifierMineStrikeSkin;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
import mineplex.core.loot.RandomItem;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
import nautilus.game.arcade.ArcadeManager;
|
||||
import nautilus.game.arcade.GameType;
|
||||
import nautilus.game.arcade.events.GameStateChangeEvent;
|
||||
import nautilus.game.arcade.events.PlayerKitGiveEvent;
|
||||
import nautilus.game.arcade.game.GameTeam;
|
||||
import nautilus.game.arcade.game.games.minestrike.GunModule;
|
||||
|
@ -55,10 +68,18 @@ public class StrikeGames extends SoloSurvivalGames
|
|||
|
||||
private GunModule _gunModule;
|
||||
|
||||
private long _peacePhase;
|
||||
|
||||
public StrikeGames(ArcadeManager manager)
|
||||
{
|
||||
super(manager, new Kit[]
|
||||
{ new KitPlayer(manager) }, GameType.Brawl);
|
||||
{
|
||||
new KitPlayer(manager)
|
||||
}, GameType.Brawl);
|
||||
|
||||
DamagePvP = false;
|
||||
|
||||
_peacePhase = 20000;
|
||||
|
||||
_gunModule = new GunModule(this);
|
||||
_gunModule.setEnablePickup(false);
|
||||
|
@ -66,6 +87,66 @@ public class StrikeGames extends SoloSurvivalGames
|
|||
_gunModule.setEnableCleaning(false);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void enableDamage(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.SEC)
|
||||
return;
|
||||
|
||||
if (!IsLive())
|
||||
return;
|
||||
|
||||
if (!UtilTime.elapsed(GetStateTime(), _peacePhase))
|
||||
return;
|
||||
|
||||
if (DamagePvP)
|
||||
return;
|
||||
|
||||
Announce(F.main("Game", "The Peace Phase has ended! You can now fight each other!"));
|
||||
DamagePvP = true;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void informPeace(GameStateChangeEvent event)
|
||||
{
|
||||
if (event.GetState() != GameState.Live)
|
||||
return;
|
||||
|
||||
Announce(F.main("Game", "A Peace Phase of " + F.time((_peacePhase/1000) + "") + "seconds has started!"));
|
||||
}
|
||||
|
||||
@EventHandler(priority=EventPriority.HIGHEST)
|
||||
public void pumpkinDrop(PlayerDeathEvent event)
|
||||
{
|
||||
Iterator<ItemStack> itemIterator = event.getDrops().iterator();
|
||||
while (itemIterator.hasNext())
|
||||
{
|
||||
ItemStack item = itemIterator.next();
|
||||
if (item.getType() == Material.PUMPKIN
|
||||
|| item.getType() == Material.PUMPKIN_STEM)
|
||||
{
|
||||
itemIterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void disableCrafting(PlayerInteractEvent event)
|
||||
{
|
||||
if (!UtilEvent.isAction(event, ActionType.R_BLOCK))
|
||||
return;
|
||||
|
||||
if (event.getClickedBlock().getType() == Material.WORKBENCH)
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void weaponEnchantment(EnchantItemEvent event)
|
||||
{
|
||||
if (!UtilItem.isArmor(event.getItem()))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
public void setupLoot()
|
||||
{
|
||||
// Food
|
||||
|
@ -105,8 +186,6 @@ public class StrikeGames extends SoloSurvivalGames
|
|||
|
||||
// Throwable
|
||||
getBaseLoot().addLoot(new RandomItem(Material.FISHING_ROD, 30));
|
||||
getBaseLoot().addLoot(new RandomItem(Material.BOW, 20));
|
||||
getBaseLoot().addLoot(new RandomItem(Material.ARROW, 20, 1, 3));
|
||||
getBaseLoot().addLoot(new RandomItem(Material.EGG, 30, 1, 2));
|
||||
|
||||
// Misc
|
||||
|
@ -435,6 +514,52 @@ public class StrikeGames extends SoloSurvivalGames
|
|||
event.getPlayer().getInventory().setItem(0, knife);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@Override
|
||||
public void ItemSpawn(ItemSpawnEvent event)
|
||||
{
|
||||
if (event.getEntity().getItemStack().hasItemMeta())
|
||||
return;
|
||||
|
||||
Material mat = event.getEntity().getItemStack().getType();
|
||||
|
||||
switch (mat)
|
||||
{
|
||||
case SEEDS:
|
||||
case SAPLING:
|
||||
case VINE:
|
||||
case LEAVES:
|
||||
case LONG_GRASS:
|
||||
case RED_ROSE:
|
||||
case YELLOW_FLOWER:
|
||||
case DEAD_BUSH:
|
||||
case WATER_LILY:
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
case CARROT_ITEM:
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
case POTATO_ITEM:
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
case WHEAT:
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
case WOOD:
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
for (Player player : GetPlayers(true))
|
||||
if (UtilMath.offset(player, event.getEntity()) < 6)
|
||||
return;
|
||||
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetMode()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue