Merge branch 'master' of ssh://dev.mineplex.com:7999/min/Mineplex
This commit is contained in:
commit
a468ac1ae0
@ -295,7 +295,11 @@ public class AntiHack extends MiniPlugin
|
|||||||
private void ResetAll(Player player)
|
private void ResetAll(Player player)
|
||||||
{
|
{
|
||||||
_ignore.remove(player);
|
_ignore.remove(player);
|
||||||
|
_velocityEvent.remove(player);
|
||||||
_lastMoveEvent.remove(player);
|
_lastMoveEvent.remove(player);
|
||||||
|
|
||||||
|
_offense.remove(player);
|
||||||
|
_suspicion.remove(player);
|
||||||
|
|
||||||
for (Detector detector : _detectors)
|
for (Detector detector : _detectors)
|
||||||
detector.Reset(player);
|
detector.Reset(player);
|
||||||
|
@ -68,12 +68,13 @@ public class Hub extends JavaPlugin implements INautilusPlugin, IRelation
|
|||||||
CommandCenter.Initialize(this, clientManager);
|
CommandCenter.Initialize(this, clientManager);
|
||||||
ItemStackFactory.Initialize(this, false);
|
ItemStackFactory.Initialize(this, false);
|
||||||
Recharge.Initialize(this);
|
Recharge.Initialize(this);
|
||||||
AntiHack.Initialize(this);
|
Punish punish = new Punish(this, GetWebServerAddress());
|
||||||
|
AntiHack.Initialize(this, punish);
|
||||||
|
|
||||||
DonationManager donationManager = new DonationManager(this, GetWebServerAddress());
|
DonationManager donationManager = new DonationManager(this, GetWebServerAddress());
|
||||||
|
|
||||||
//Other Modules
|
//Other Modules
|
||||||
new Punish(this, GetWebServerAddress());
|
|
||||||
Creature creature = new Creature(this);
|
Creature creature = new Creature(this);
|
||||||
new MessageManager(this, clientManager);
|
new MessageManager(this, clientManager);
|
||||||
NpcManager npcManager = new NpcManager(this, creature);
|
NpcManager npcManager = new NpcManager(this, creature);
|
||||||
|
@ -31,6 +31,7 @@ public class NewsManager extends MiniPlugin
|
|||||||
|
|
||||||
_news = new String[]
|
_news = new String[]
|
||||||
{
|
{
|
||||||
|
"New Game: " + C.cGold + C.Bold + "Super Paintball" + ChatColor.RESET + "!",
|
||||||
"New Game: " + C.cGold + C.Bold + "Halloween Horror" + ChatColor.RESET + "! Limited time!",
|
"New Game: " + C.cGold + C.Bold + "Halloween Horror" + ChatColor.RESET + "! Limited time!",
|
||||||
"New Super Smash Mobs Kit: " + C.cYellow + C.Bold + "Witch" + ChatColor.RESET + "!",
|
"New Super Smash Mobs Kit: " + C.cYellow + C.Bold + "Witch" + ChatColor.RESET + "!",
|
||||||
"Halloween Hub Items! Limited time to unlock!",
|
"Halloween Hub Items! Limited time to unlock!",
|
||||||
|
@ -202,7 +202,7 @@ public class ConditionManager extends MiniPlugin
|
|||||||
ind.SetCondition(newCon);
|
ind.SetCondition(newCon);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void ExpireConditions(UpdateEvent event)
|
public void ExpireConditions(UpdateEvent event)
|
||||||
{
|
{
|
||||||
if (event.getType() != UpdateType.TICK)
|
if (event.getType() != UpdateType.TICK)
|
||||||
|
@ -130,13 +130,15 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
|||||||
_firework = new FireworkHandler();
|
_firework = new FireworkHandler();
|
||||||
_fire = new Fire(plugin, conditionManager, damageManager);
|
_fire = new Fire(plugin, conditionManager, damageManager);
|
||||||
|
|
||||||
_projectileManager = new ProjectileManager(plugin);
|
_projectileManager = new ProjectileManager(plugin);
|
||||||
|
|
||||||
|
/*
|
||||||
_skillFactory = new SkillFactory(plugin, damageManager, this, new CombatManager(plugin), conditionManager, _projectileManager, _blockRestore, _fire, new Movement(plugin), plugin.GetTeleport(), new Energy(plugin), webAddress);
|
_skillFactory = new SkillFactory(plugin, damageManager, this, new CombatManager(plugin), conditionManager, _projectileManager, _blockRestore, _fire, new Movement(plugin), plugin.GetTeleport(), new Energy(plugin), webAddress);
|
||||||
_classManager = new ClassManager(plugin, clientManager, donationManager, _skillFactory, webAddress);
|
_classManager = new ClassManager(plugin, clientManager, donationManager, _skillFactory, webAddress);
|
||||||
|
|
||||||
_classShopManager = new ClassShopManager(_plugin, _classManager, _skillFactory, new ItemPackFactory(_plugin));
|
_classShopManager = new ClassShopManager(_plugin, _classManager, _skillFactory, new ItemPackFactory(_plugin));
|
||||||
_classCustomBuildShop = new ClassCombatCustomBuildShop(_classShopManager, clientManager, donationManager, webAddress);
|
_classCustomBuildShop = new ClassCombatCustomBuildShop(_classShopManager, clientManager, donationManager, webAddress);
|
||||||
|
*/
|
||||||
|
|
||||||
_portal = new Portal(plugin);
|
_portal = new Portal(plugin);
|
||||||
|
|
||||||
@ -472,7 +474,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
|||||||
((CraftPlayer)player).getHandle().spectating = false;
|
((CraftPlayer)player).getHandle().spectating = false;
|
||||||
((CraftPlayer)player).getHandle().m = true;
|
((CraftPlayer)player).getHandle().m = true;
|
||||||
|
|
||||||
GetCondition().EndCondition(player, ConditionType.CLOAK, "Spectator");
|
GetCondition().EndCondition(player, ConditionType.CLOAK, null);
|
||||||
|
|
||||||
HubClock(player);
|
HubClock(player);
|
||||||
|
|
||||||
|
@ -366,7 +366,8 @@ public abstract class Game implements Listener
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_scoreboard.registerNewTeam(rank.Name + "SPEC").setPrefix(rank.Color + C.Bold + rank.Name.toUpperCase() + ChatColor.RESET + " " + ChatColor.GRAY);
|
_scoreboard.registerNewTeam(rank.Name + "SPEC").setPrefix(ChatColor.GRAY + "");
|
||||||
|
//_scoreboard.registerNewTeam(rank.Name + "SPEC").setPrefix(rank.Color + C.Bold + rank.Name.toUpperCase() + ChatColor.RESET + " " + ChatColor.GRAY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -381,7 +382,8 @@ public abstract class Game implements Listener
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_scoreboard.registerNewTeam(rank.Name + team.GetName().toUpperCase()).setPrefix(rank.Color + C.Bold + rank.Name.toUpperCase() + ChatColor.RESET + " " + team.GetColor());
|
//_scoreboard.registerNewTeam(rank.Name + team.GetName().toUpperCase()).setPrefix(rank.Color + C.Bold + rank.Name.toUpperCase() + ChatColor.RESET + " " + team.GetColor());
|
||||||
|
_scoreboard.registerNewTeam(rank.Name + team.GetName().toUpperCase()).setPrefix(team.GetColor() + "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -580,6 +582,9 @@ public abstract class Game implements Listener
|
|||||||
|
|
||||||
public boolean HasKit(Player player, Kit kit)
|
public boolean HasKit(Player player, Kit kit)
|
||||||
{
|
{
|
||||||
|
if (!IsAlive(player))
|
||||||
|
return false;
|
||||||
|
|
||||||
if (GetKit(player) == null)
|
if (GetKit(player) == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -121,10 +121,6 @@ public class Halloween extends SoloGame
|
|||||||
|
|
||||||
_mobs.clear();
|
_mobs.clear();
|
||||||
_spawns.clear();
|
_spawns.clear();
|
||||||
|
|
||||||
_spawns = null;
|
|
||||||
_mobs = null;
|
|
||||||
_waves = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
|
@ -178,7 +178,7 @@ public class PumpkinKing extends CreatureBase<Skeleton>
|
|||||||
if (event.getType() == UpdateType.TICK)
|
if (event.getType() == UpdateType.TICK)
|
||||||
MinionOrbit();
|
MinionOrbit();
|
||||||
|
|
||||||
if (event.getType() == UpdateType.TICK)
|
if (event.getType() == UpdateType.FASTER)
|
||||||
MinionAttack();
|
MinionAttack();
|
||||||
|
|
||||||
if (event.getType() == UpdateType.TICK)
|
if (event.getType() == UpdateType.TICK)
|
||||||
|
@ -1,82 +1,440 @@
|
|||||||
package nautilus.game.arcade.game.games.paintball;
|
package nautilus.game.arcade.game.games.paintball;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.EnderPearl;
|
import org.bukkit.entity.EnderPearl;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Projectile;
|
||||||
|
import org.bukkit.entity.Snowball;
|
||||||
|
import org.bukkit.entity.ThrownPotion;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.entity.EntityRegainHealthEvent;
|
||||||
|
import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
|
||||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||||
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||||
|
import org.bukkit.event.player.PlayerToggleSneakEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
import mineplex.core.common.util.UtilBlock;
|
import mineplex.core.common.util.UtilBlock;
|
||||||
|
import mineplex.core.common.util.UtilGear;
|
||||||
|
import mineplex.core.common.util.UtilInv;
|
||||||
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
|
import mineplex.core.common.util.UtilServer;
|
||||||
|
import mineplex.core.recharge.Recharge;
|
||||||
|
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
|
||||||
|
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
import nautilus.game.arcade.GameType;
|
import nautilus.game.arcade.GameType;
|
||||||
import nautilus.game.arcade.events.GameStateChangeEvent;
|
import nautilus.game.arcade.events.GameStateChangeEvent;
|
||||||
|
import nautilus.game.arcade.game.GameTeam;
|
||||||
import nautilus.game.arcade.game.TeamGame;
|
import nautilus.game.arcade.game.TeamGame;
|
||||||
|
import nautilus.game.arcade.game.GameTeam.PlayerState;
|
||||||
import nautilus.game.arcade.game.games.paintball.kits.*;
|
import nautilus.game.arcade.game.games.paintball.kits.*;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
|
||||||
public class Paintball extends TeamGame
|
public class Paintball extends TeamGame
|
||||||
{
|
{
|
||||||
|
private HashMap<Player, PlayerCopy> _doubles = new HashMap<Player, PlayerCopy>();
|
||||||
|
private HashSet<Projectile> _water = new HashSet<Projectile>();
|
||||||
|
|
||||||
public Paintball(ArcadeManager manager)
|
public Paintball(ArcadeManager manager)
|
||||||
{
|
{
|
||||||
super(manager, GameType.Paintball,
|
super(manager, GameType.Paintball,
|
||||||
|
|
||||||
new Kit[]
|
new Kit[]
|
||||||
{
|
{
|
||||||
new KitRifle(manager),
|
new KitRifle(manager),
|
||||||
new KitMachineGun(manager),
|
new KitMachineGun(manager),
|
||||||
new KitShotgun(manager)
|
new KitShotgun(manager),
|
||||||
},
|
},
|
||||||
|
|
||||||
new String[]
|
new String[]
|
||||||
{
|
{
|
||||||
"put put put put put"
|
"Shoot enemies to paint them",
|
||||||
|
"Revive/heal with Water Bombs",
|
||||||
|
"Last team alive wins!"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void CustomTeamGeneration(GameStateChangeEvent event)
|
public void CustomTeamGeneration(GameStateChangeEvent event)
|
||||||
{
|
{
|
||||||
if (event.GetState() != GameState.Recruit)
|
if (event.GetState() != GameState.Recruit)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this.GetTeamList().get(0).SetColor(ChatColor.AQUA);
|
this.GetTeamList().get(0).SetColor(ChatColor.AQUA);
|
||||||
this.GetTeamList().get(0).SetName("Frost");
|
this.GetTeamList().get(0).SetName("Frost");
|
||||||
|
|
||||||
this.GetTeamList().get(1).SetColor(ChatColor.RED);
|
this.GetTeamList().get(1).SetColor(ChatColor.RED);
|
||||||
this.GetTeamList().get(1).SetName("Nether");
|
this.GetTeamList().get(1).SetName("Nether");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGH)
|
||||||
|
public void ColorArmor(GameStateChangeEvent event)
|
||||||
|
{
|
||||||
|
if (event.GetState() != GameState.Prepare)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (Player player : GetPlayers(true))
|
||||||
|
{
|
||||||
|
CleanColorArmor(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGH)
|
||||||
|
public void RefreshPlayers(GameStateChangeEvent event)
|
||||||
|
{
|
||||||
|
if (event.GetState() != GameState.Live)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (Player player : GetPlayers(true))
|
||||||
|
{
|
||||||
|
for (Player other : GetPlayers(true))
|
||||||
|
{
|
||||||
|
other.hidePlayer(player);
|
||||||
|
other.showPlayer(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void HealthRegen(EntityRegainHealthEvent event)
|
||||||
|
{
|
||||||
|
if (event.getRegainReason() == RegainReason.SATIATED)
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void Teleport(PlayerTeleportEvent event)
|
public void Teleport(PlayerTeleportEvent event)
|
||||||
{
|
{
|
||||||
if (event.getCause() == TeleportCause.ENDER_PEARL)
|
if (event.getCause() == TeleportCause.ENDER_PEARL)
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void Paint(ProjectileHitEvent event)
|
public void Paint(ProjectileHitEvent event)
|
||||||
{
|
{
|
||||||
|
if (event.getEntity() instanceof ThrownPotion)
|
||||||
|
return;
|
||||||
|
|
||||||
byte color = 3;
|
byte color = 3;
|
||||||
if (event.getEntity() instanceof EnderPearl)
|
if (event.getEntity() instanceof EnderPearl)
|
||||||
color = 6;
|
color = 14;
|
||||||
|
|
||||||
Location loc = event.getEntity().getLocation().add(event.getEntity().getVelocity());
|
Location loc = event.getEntity().getLocation().add(event.getEntity().getVelocity());
|
||||||
|
|
||||||
for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet())
|
for (Block block : UtilBlock.getInRadius(loc, 1.5d).keySet())
|
||||||
{
|
{
|
||||||
if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY)
|
if (block.getType() != Material.WOOL && block.getType() != Material.STAINED_CLAY)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
block.setData(color);
|
block.setData(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8);
|
if (color == 3) loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 8);
|
||||||
else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10);
|
else loc.getWorld().playEffect(loc, Effect.STEP_SOUND, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void PlayerQuit(PlayerQuitEvent event)
|
||||||
|
{
|
||||||
|
_doubles.remove(event.getPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void DamageCancel(CustomDamageEvent event)
|
||||||
|
{
|
||||||
|
if (event.GetDamageePlayer() == null)
|
||||||
|
event.SetCancelled("Not Player");
|
||||||
|
|
||||||
|
if (event.GetProjectile() == null)
|
||||||
|
event.SetCancelled("No Projectile");
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void PaintballDamage(CustomDamageEvent event)
|
||||||
|
{
|
||||||
|
if (event.GetProjectile() == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!(event.GetProjectile() instanceof Snowball) && !(event.GetProjectile() instanceof EnderPearl))
|
||||||
|
return;
|
||||||
|
|
||||||
|
//Negate
|
||||||
|
event.AddMod("Negate", "Negate", -event.GetDamageInitial(), false);
|
||||||
|
|
||||||
|
event.AddMod("Paintball", "Paintball", 2, true);
|
||||||
|
event.AddKnockback("Paintball", 2);
|
||||||
|
|
||||||
|
Player damagee = event.GetDamageePlayer();
|
||||||
|
if (damagee == null) return;
|
||||||
|
|
||||||
|
Player damager = event.GetDamagerPlayer(true);
|
||||||
|
if (damager == null) return;
|
||||||
|
|
||||||
|
GameTeam damageeTeam = GetTeam(damagee);
|
||||||
|
if (damageeTeam == null) return;
|
||||||
|
|
||||||
|
GameTeam damagerTeam = GetTeam(damager);
|
||||||
|
if (damagerTeam == null) return;
|
||||||
|
|
||||||
|
if (damagerTeam.equals(damageeTeam))
|
||||||
|
return;
|
||||||
|
|
||||||
|
//Color
|
||||||
|
Color color = Color.RED;
|
||||||
|
if (event.GetProjectile() instanceof Snowball)
|
||||||
|
color = Color.AQUA;
|
||||||
|
|
||||||
|
//Count
|
||||||
|
int count = 1;
|
||||||
|
if (GetKit(damager) != null)
|
||||||
|
{
|
||||||
|
if (GetKit(damager) instanceof KitRifle)
|
||||||
|
{
|
||||||
|
count = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Out
|
||||||
|
if (Color(damagee, count))
|
||||||
|
{
|
||||||
|
PlayerOut(damagee);
|
||||||
|
for (Player player : UtilServer.getPlayers())
|
||||||
|
UtilPlayer.message(player, damageeTeam.GetColor() + damagee.getName() + ChatColor.RESET + " was painted by " +
|
||||||
|
damagerTeam.GetColor() + damager.getName() + ChatColor.RESET + "!");
|
||||||
|
|
||||||
|
AddGems(damager, 2, "Kill", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Hit Sound
|
||||||
|
Player player = event.GetDamagerPlayer(true);
|
||||||
|
if (player != null)
|
||||||
|
player.playSound(player.getLocation(), Sound.ORB_PICKUP, 1f, 3f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public boolean Color(Player player, int amount)
|
||||||
|
{
|
||||||
|
//Get Non-Coloured
|
||||||
|
ArrayList<ItemStack> nonColored = new ArrayList<ItemStack>();
|
||||||
|
for (ItemStack stack : player.getInventory().getArmorContents())
|
||||||
|
{
|
||||||
|
if (!(stack.getItemMeta() instanceof LeatherArmorMeta))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
LeatherArmorMeta meta = (LeatherArmorMeta)stack.getItemMeta();
|
||||||
|
|
||||||
|
if (meta.getColor().equals(Color.RED) || meta.getColor().equals(Color.AQUA))
|
||||||
|
nonColored.add(stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Color Piece
|
||||||
|
for (int i=0 ; i<amount ; i++)
|
||||||
|
{
|
||||||
|
if (nonColored.isEmpty())
|
||||||
|
break;
|
||||||
|
|
||||||
|
ItemStack armor = nonColored.remove(UtilMath.r(nonColored.size()));
|
||||||
|
|
||||||
|
LeatherArmorMeta meta = (LeatherArmorMeta)armor.getItemMeta();
|
||||||
|
meta.setColor(Color.PURPLE);
|
||||||
|
armor.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
|
||||||
|
player.setHealth(Math.min(20, Math.max(2, nonColored.size() * 5 + 1)));
|
||||||
|
|
||||||
|
return nonColored.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PlayerOut(Player player)
|
||||||
|
{
|
||||||
|
//State
|
||||||
|
SetPlayerState(player, PlayerState.OUT);
|
||||||
|
player.setHealth(20);
|
||||||
|
|
||||||
|
//Conditions
|
||||||
|
Manager.GetCondition().Factory().Blind("Hit", player, player, 1.5, 0, false, false, false);
|
||||||
|
Manager.GetCondition().Factory().Cloak("Hit", player, player, 9999, false, false);
|
||||||
|
|
||||||
|
//Settings
|
||||||
|
player.setGameMode(GameMode.CREATIVE);
|
||||||
|
player.setFlying(true);
|
||||||
|
((CraftPlayer)player).getHandle().spectating = true;
|
||||||
|
((CraftPlayer)player).getHandle().m = false;
|
||||||
|
|
||||||
|
player.setVelocity(new Vector(0,1.2,0));
|
||||||
|
|
||||||
|
_doubles.put(player, new PlayerCopy(this, player));
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void CleanThrow(PlayerInteractEvent event)
|
||||||
|
{
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (!UtilGear.isMat(player.getItemInHand(), Material.POTION))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!IsAlive(player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!Recharge.Instance.use(player, "Water Bomb", 500, false))
|
||||||
|
return;
|
||||||
|
|
||||||
|
//Use Stock
|
||||||
|
UtilInv.remove(player, Material.POTION, (byte)0, 1);
|
||||||
|
|
||||||
|
//Start
|
||||||
|
ThrownPotion potion = player.launchProjectile(ThrownPotion.class);
|
||||||
|
|
||||||
|
_water.add(potion);
|
||||||
|
|
||||||
|
//Inform
|
||||||
|
UtilPlayer.message(player, F.main("Skill", "You threw " + F.skill("Water Bomb") + "."));
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void CleanHit(ProjectileHitEvent event)
|
||||||
|
{
|
||||||
|
if (!_water.remove(event.getEntity()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event.getEntity().getShooter() == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!(event.getEntity().getShooter() instanceof Player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Player thrower = (Player)event.getEntity().getShooter();
|
||||||
|
|
||||||
|
GameTeam throwerTeam = GetTeam(thrower);
|
||||||
|
if (throwerTeam == null) return;
|
||||||
|
|
||||||
|
//Revive
|
||||||
|
Iterator<PlayerCopy> copyIterator = _doubles.values().iterator();
|
||||||
|
while (copyIterator.hasNext())
|
||||||
|
{
|
||||||
|
PlayerCopy copy = copyIterator.next();
|
||||||
|
|
||||||
|
GameTeam otherTeam = GetTeam(copy.GetPlayer());
|
||||||
|
if (otherTeam == null || !otherTeam.equals(throwerTeam))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (UtilMath.offset(copy.GetEntity().getLocation().add(0,1,0), event.getEntity().getLocation()) > 3)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
PlayerIn(copy.GetPlayer(), copy.GetEntity());
|
||||||
|
copyIterator.remove();
|
||||||
|
|
||||||
|
AddGems(thrower, 2, "Revived Ally", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Clean
|
||||||
|
for (Player player : GetPlayers(true))
|
||||||
|
{
|
||||||
|
GameTeam otherTeam = GetTeam(player);
|
||||||
|
if (otherTeam == null || !otherTeam.equals(throwerTeam))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (UtilMath.offset(player.getLocation().add(0,1,0), event.getEntity().getLocation()) > 3)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
PlayerIn(player, null);
|
||||||
|
|
||||||
|
AddGems(thrower, 1, "Healed Ally", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PlayerIn(final Player player, final LivingEntity copy)
|
||||||
|
{
|
||||||
|
//State
|
||||||
|
SetPlayerState(player, PlayerState.IN);
|
||||||
|
player.setHealth(20);
|
||||||
|
|
||||||
|
//Teleport
|
||||||
|
if (copy != null)
|
||||||
|
{
|
||||||
|
Location loc = player.getLocation();
|
||||||
|
loc.setX(copy.getLocation().getX());
|
||||||
|
loc.setY(copy.getLocation().getY());
|
||||||
|
loc.setZ(copy.getLocation().getZ());
|
||||||
|
player.teleport(loc);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Settings
|
||||||
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
|
player.setFlying(false);
|
||||||
|
((CraftPlayer)player).getHandle().spectating = false;
|
||||||
|
((CraftPlayer)player).getHandle().m = true;
|
||||||
|
|
||||||
|
//Items
|
||||||
|
player.getInventory().remove(Material.WATCH);
|
||||||
|
player.getInventory().remove(Material.COMPASS);
|
||||||
|
|
||||||
|
//Clean Armor
|
||||||
|
CleanColorArmor(player);
|
||||||
|
|
||||||
|
//Inform
|
||||||
|
UtilPlayer.message(player, F.main("Game", "You have been cleaned!"));
|
||||||
|
|
||||||
|
//Delayed Visibility
|
||||||
|
if (copy != null)
|
||||||
|
{
|
||||||
|
UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.GetPlugin(), new Runnable()
|
||||||
|
{
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
//Remove Invis
|
||||||
|
if (IsAlive(player))
|
||||||
|
Manager.GetCondition().EndCondition(player, ConditionType.CLOAK, null);
|
||||||
|
|
||||||
|
//Remove Copy
|
||||||
|
copy.remove();
|
||||||
|
}
|
||||||
|
}, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CleanColorArmor(Player player)
|
||||||
|
{
|
||||||
|
Color color = Color.RED;
|
||||||
|
if (Manager.GetColor(player) != ChatColor.RED)
|
||||||
|
color = Color.AQUA;
|
||||||
|
|
||||||
|
for (ItemStack stack : player.getInventory().getArmorContents())
|
||||||
|
{
|
||||||
|
if (!(stack.getItemMeta() instanceof LeatherArmorMeta))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
LeatherArmorMeta meta = (LeatherArmorMeta)stack.getItemMeta();
|
||||||
|
meta.setColor(color);
|
||||||
|
stack.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,51 @@
|
|||||||
|
package nautilus.game.arcade.game.games.paintball;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.UtilEnt;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Skeleton;
|
||||||
|
|
||||||
|
public class PlayerCopy
|
||||||
|
{
|
||||||
|
private Paintball Host;
|
||||||
|
|
||||||
|
private Skeleton _ent;
|
||||||
|
private Player _owner;
|
||||||
|
|
||||||
|
public PlayerCopy(Paintball host, Player owner)
|
||||||
|
{
|
||||||
|
Host = host;
|
||||||
|
|
||||||
|
_owner = owner;
|
||||||
|
|
||||||
|
Host.CreatureAllowOverride = true;
|
||||||
|
_ent = owner.getWorld().spawn(owner.getLocation(), Skeleton.class);
|
||||||
|
Host.CreatureAllowOverride = false;
|
||||||
|
|
||||||
|
UtilEnt.Vegetate(_ent);
|
||||||
|
|
||||||
|
//Armor
|
||||||
|
_ent.getEquipment().setArmorContents(owner.getInventory().getArmorContents());
|
||||||
|
|
||||||
|
_ent.setCustomName(C.cWhite + C.Bold + C.Scramble + "XX" + ChatColor.RESET + " " + host.GetTeam(owner).GetColor() + owner.getName() + " " + C.cWhite + C.Bold + C.Scramble + "XX");
|
||||||
|
_ent.setCustomNameVisible(true);
|
||||||
|
|
||||||
|
//Disguise
|
||||||
|
//DisguisePlayer disguise = new DisguisePlayer(_ent, owner.getName());
|
||||||
|
//Host.Manager.GetDisguise().disguise(disguise);
|
||||||
|
}
|
||||||
|
|
||||||
|
public LivingEntity GetEntity()
|
||||||
|
{
|
||||||
|
return _ent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player GetPlayer()
|
||||||
|
{
|
||||||
|
return _owner;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -7,7 +7,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
|
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
@ -23,7 +23,8 @@ public class KitMachineGun extends Kit
|
|||||||
|
|
||||||
new String[]
|
new String[]
|
||||||
{
|
{
|
||||||
"Full-automatic paintball gun. " + F.elem("6 Damage")
|
"Full-automatic paintball gun.",
|
||||||
|
C.cGold + "4 Hit Kill"
|
||||||
},
|
},
|
||||||
|
|
||||||
new Perk[]
|
new Perk[]
|
||||||
@ -37,7 +38,8 @@ public class KitMachineGun extends Kit
|
|||||||
@Override
|
@Override
|
||||||
public void GiveItems(Player player)
|
public void GiveItems(Player player)
|
||||||
{
|
{
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_BARDING));
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_BARDING, (byte)0, 1, "Paintball Machine Gun"));
|
||||||
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.POTION, (byte)0, 3, "Water Bomb"));
|
||||||
|
|
||||||
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
|
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
|
||||||
LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta();
|
LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta();
|
||||||
|
@ -7,7 +7,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
|
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
@ -23,21 +23,24 @@ public class KitRifle extends Kit
|
|||||||
|
|
||||||
new String[]
|
new String[]
|
||||||
{
|
{
|
||||||
"Semi-automatic paintball rifle. " + F.elem("12 Damage")
|
"Semi-automatic paintball rifle.",
|
||||||
|
C.cGold + "2 Hit Kill"
|
||||||
},
|
},
|
||||||
|
|
||||||
new Perk[]
|
new Perk[]
|
||||||
{
|
{
|
||||||
new PerkPaintballRifle()
|
new PerkPaintballRifle(),
|
||||||
|
new PerkSpeed(0)
|
||||||
},
|
},
|
||||||
EntityType.ZOMBIE,
|
EntityType.ZOMBIE,
|
||||||
new ItemStack(Material.IRON_BARDING));
|
new ItemStack(Material.IRON_BARDING));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void GiveItems(Player player)
|
public void GiveItems(Player player)
|
||||||
{
|
{
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_BARDING));
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_BARDING, (byte)0, 1, "Paintball Rifle"));
|
||||||
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.POTION, (byte)0, 3, "Water Bomb"));
|
||||||
|
|
||||||
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
|
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
|
||||||
LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta();
|
LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta();
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package nautilus.game.arcade.game.games.paintball.kits;
|
package nautilus.game.arcade.game.games.paintball.kits;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
@ -7,7 +8,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
|
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
@ -23,13 +24,14 @@ public class KitShotgun extends Kit
|
|||||||
|
|
||||||
new String[]
|
new String[]
|
||||||
{
|
{
|
||||||
"Pump action paintball shotgun. " + F.elem("6 Damage per Pellet")
|
"Pump action paintball shotgun.",
|
||||||
|
C.cGold + "8 Pellets, 4 Pellet Hits Kill"
|
||||||
},
|
},
|
||||||
|
|
||||||
new Perk[]
|
new Perk[]
|
||||||
{
|
{
|
||||||
new PerkPaintballShotgun(),
|
new PerkPaintballShotgun(),
|
||||||
new PerkSpeed(0)
|
new PerkSpeed(1)
|
||||||
},
|
},
|
||||||
EntityType.ZOMBIE,
|
EntityType.ZOMBIE,
|
||||||
new ItemStack(Material.GOLD_BARDING));
|
new ItemStack(Material.GOLD_BARDING));
|
||||||
@ -38,8 +40,9 @@ public class KitShotgun extends Kit
|
|||||||
@Override
|
@Override
|
||||||
public void GiveItems(Player player)
|
public void GiveItems(Player player)
|
||||||
{
|
{
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.GOLD_BARDING));
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.GOLD_BARDING, (byte)0, 1, "Paintball Shotgun"));
|
||||||
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.POTION, (byte)0, 3, "Water Bomb"));
|
||||||
|
|
||||||
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
|
ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
|
||||||
LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta();
|
LeatherArmorMeta metaHelm = (LeatherArmorMeta)helm.getItemMeta();
|
||||||
metaHelm.setColor(Color.WHITE);
|
metaHelm.setColor(Color.WHITE);
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
package nautilus.game.arcade.kit.perks;
|
package nautilus.game.arcade.kit.perks;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Color;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.EnderPearl;
|
import org.bukkit.entity.EnderPearl;
|
||||||
@ -13,29 +10,45 @@ import org.bukkit.entity.Snowball;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.UtilBlock;
|
import mineplex.core.common.util.UtilBlock;
|
||||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
import mineplex.core.common.util.UtilServer;
|
||||||
|
import mineplex.core.recharge.Recharge;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import nautilus.game.arcade.game.GameTeam;
|
import nautilus.game.arcade.game.GameTeam;
|
||||||
import nautilus.game.arcade.kit.Perk;
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
|
||||||
public class PerkPaintballMachineGun extends Perk
|
public class PerkPaintballMachineGun extends Perk
|
||||||
{
|
{
|
||||||
private HashSet<Projectile> _balls = new HashSet<Projectile>();
|
|
||||||
|
|
||||||
public PerkPaintballMachineGun()
|
public PerkPaintballMachineGun()
|
||||||
{
|
{
|
||||||
super("Rifle", new String[]
|
super("Machine Gun", new String[]
|
||||||
{
|
{
|
||||||
C.cYellow + "Right-Click" + C.cGray + " to use " + C.cGreen + "Machine Gun"
|
C.cYellow + "Right-Click" + C.cGray + " to use " + C.cGreen + "Machine Gun",
|
||||||
|
"Experience Bar represents weapon overheating."
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
public void WeaponCooldown(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.TICK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (Player player : UtilServer.getPlayers())
|
||||||
|
{
|
||||||
|
if (!Kit.HasKit(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (Recharge.Instance.usable(player, "Cool"))
|
||||||
|
player.setExp((float)Math.max(0f, player.getExp() - 0.020f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
public void Shoot(PlayerInteractEvent event)
|
public void Shoot(PlayerInteractEvent event)
|
||||||
{
|
{
|
||||||
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
||||||
@ -50,75 +63,66 @@ public class PerkPaintballMachineGun extends Perk
|
|||||||
if (event.getPlayer().getItemInHand().getType() != Material.DIAMOND_BARDING)
|
if (event.getPlayer().getItemInHand().getType() != Material.DIAMOND_BARDING)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
if (!Kit.HasKit(player))
|
if (!Kit.HasKit(player))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
GameTeam team = Manager.GetGame().GetTeam(player);
|
final GameTeam team = Manager.GetGame().GetTeam(player);
|
||||||
if (team == null)
|
if (team == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
ShootPaintball(player, team);
|
||||||
|
|
||||||
|
/*
|
||||||
|
UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.GetPlugin(), new Runnable()
|
||||||
|
{
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
ShootPaintball(player, team);
|
||||||
|
}
|
||||||
|
}, 2);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShootPaintball(Player player, GameTeam team)
|
||||||
|
{
|
||||||
|
//Energy
|
||||||
|
if (player.getExp() >= 0.97)
|
||||||
|
return;
|
||||||
|
player.setExp((float) (player.getExp() + 0.025));
|
||||||
|
|
||||||
|
//Shoot
|
||||||
Vector rand = new Vector(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5);
|
Vector rand = new Vector(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5);
|
||||||
rand.multiply(0.15);
|
rand.multiply(0.25);
|
||||||
|
|
||||||
if (team.GetColor() == ChatColor.AQUA)
|
if (team.GetColor() == ChatColor.AQUA)
|
||||||
{
|
{
|
||||||
|
//Projectile proj = player.getWorld().spawn(player.getEyeLocation().add(player.getLocation().getDirection()), Snowball.class);
|
||||||
|
//proj.setVelocity(player.getLocation().getDirection().multiply(1.6).add(rand));
|
||||||
|
//proj.setShooter(player);
|
||||||
|
|
||||||
Projectile proj = player.launchProjectile(Snowball.class);
|
Projectile proj = player.launchProjectile(Snowball.class);
|
||||||
proj.setVelocity(proj.getVelocity().multiply(1.6).add(rand));
|
proj.setVelocity(proj.getVelocity().multiply(1.6).add(rand));
|
||||||
_balls.add(proj);
|
|
||||||
|
|
||||||
//Sound
|
//Sound
|
||||||
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1.5f, 2f);
|
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1.5f, 2f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//Projectile proj = player.getWorld().spawn(player.getEyeLocation().add(player.getLocation().getDirection()), EnderPearl.class);
|
||||||
|
//proj.setVelocity(player.getLocation().getDirection().multiply(1.6).add(rand));
|
||||||
|
//proj.setShooter(player);
|
||||||
|
|
||||||
Projectile proj = player.launchProjectile(EnderPearl.class);
|
Projectile proj = player.launchProjectile(EnderPearl.class);
|
||||||
proj.setVelocity(proj.getVelocity().multiply(1.6).add(rand));
|
proj.setVelocity(proj.getVelocity().multiply(1.6).add(rand));
|
||||||
_balls.add(proj);
|
|
||||||
|
|
||||||
//Sound
|
//Sound
|
||||||
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1.5f, 1.75f);
|
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1.5f, 1.75f);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Slow
|
Recharge.Instance.useForce(player, "Cool", 250);
|
||||||
Manager.GetCondition().Factory().Slow("Firing", player, player, 0.9, 1, false, false, false, false);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
@EventHandler
|
|
||||||
public void Damage(CustomDamageEvent event)
|
|
||||||
{
|
|
||||||
if (event.GetProjectile() == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!_balls.contains(event.GetProjectile()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
//Negate
|
|
||||||
event.AddMod("Negate", "Negate", -event.GetDamageInitial(), false);
|
|
||||||
|
|
||||||
event.AddMod("Paintball", "Machine Gun", 8, true);
|
|
||||||
|
|
||||||
if (event.GetDamageePlayer() == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
double r = Math.random();
|
|
||||||
ItemStack item = null;
|
|
||||||
if (r > 0.75) item= event.GetDamageePlayer().getInventory().getHelmet();
|
|
||||||
else if (r > 0.50) item= event.GetDamageePlayer().getInventory().getChestplate();
|
|
||||||
else if (r > 0.25) item= event.GetDamageePlayer().getInventory().getLeggings();
|
|
||||||
else item= event.GetDamageePlayer().getInventory().getBoots();
|
|
||||||
|
|
||||||
LeatherArmorMeta meta = (LeatherArmorMeta)item.getItemMeta();
|
|
||||||
|
|
||||||
//Color
|
|
||||||
if (event.GetProjectile() instanceof Snowball)
|
|
||||||
meta.setColor(Color.AQUA);
|
|
||||||
else
|
|
||||||
meta.setColor(Color.FUCHSIA);
|
|
||||||
|
|
||||||
item.setItemMeta(meta);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +1,6 @@
|
|||||||
package nautilus.game.arcade.kit.perks;
|
package nautilus.game.arcade.kit.perks;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Color;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.EnderPearl;
|
import org.bukkit.entity.EnderPearl;
|
||||||
@ -13,21 +10,15 @@ import org.bukkit.entity.Snowball;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
|
||||||
|
|
||||||
import mineplex.core.common.Rank;
|
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.UtilBlock;
|
import mineplex.core.common.util.UtilBlock;
|
||||||
import mineplex.core.recharge.*;
|
import mineplex.core.recharge.*;
|
||||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
|
||||||
import nautilus.game.arcade.game.GameTeam;
|
import nautilus.game.arcade.game.GameTeam;
|
||||||
import nautilus.game.arcade.kit.Perk;
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
|
||||||
public class PerkPaintballRifle extends Perk
|
public class PerkPaintballRifle extends Perk
|
||||||
{
|
{
|
||||||
private HashSet<Projectile> _balls = new HashSet<Projectile>();
|
|
||||||
|
|
||||||
public PerkPaintballRifle()
|
public PerkPaintballRifle()
|
||||||
{
|
{
|
||||||
super("Rifle", new String[]
|
super("Rifle", new String[]
|
||||||
@ -69,7 +60,7 @@ public class PerkPaintballRifle extends Perk
|
|||||||
if (team == null)
|
if (team == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!Recharge.Instance.use(player, GetName(), 400, true))
|
if (!Recharge.Instance.use(player, GetName(), 500, false))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@ -78,54 +69,17 @@ public class PerkPaintballRifle extends Perk
|
|||||||
{
|
{
|
||||||
Projectile proj = player.launchProjectile(Snowball.class);
|
Projectile proj = player.launchProjectile(Snowball.class);
|
||||||
proj.setVelocity(proj.getVelocity().multiply(2));
|
proj.setVelocity(proj.getVelocity().multiply(2));
|
||||||
_balls.add(proj);
|
|
||||||
|
|
||||||
//Sound
|
//Sound
|
||||||
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1.5f, 1.5f);
|
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1.5f, 1.5f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Projectile proj = player.launchProjectile(EnderPearl.class);
|
Projectile proj = player.launchProjectile(EnderPearl.class);
|
||||||
proj.setVelocity(proj.getVelocity().multiply(2));
|
proj.setVelocity(proj.getVelocity().multiply(2));
|
||||||
_balls.add(proj);
|
|
||||||
|
|
||||||
//Sound
|
//Sound
|
||||||
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1.5f, 1.2f);
|
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1.5f, 1.2f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void Damage(CustomDamageEvent event)
|
|
||||||
{
|
|
||||||
if (event.GetProjectile() == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!_balls.contains(event.GetProjectile()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
//Negate
|
|
||||||
event.AddMod("Negate", "Negate", -event.GetDamageInitial(), false);
|
|
||||||
|
|
||||||
event.AddMod("Paintball", "Rifle", 16, true);
|
|
||||||
|
|
||||||
if (event.GetDamageePlayer() == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
double r = Math.random();
|
|
||||||
ItemStack item = null;
|
|
||||||
if (r > 0.75) item= event.GetDamageePlayer().getInventory().getHelmet();
|
|
||||||
else if (r > 0.50) item= event.GetDamageePlayer().getInventory().getChestplate();
|
|
||||||
else if (r > 0.25) item= event.GetDamageePlayer().getInventory().getLeggings();
|
|
||||||
else item= event.GetDamageePlayer().getInventory().getBoots();
|
|
||||||
|
|
||||||
LeatherArmorMeta meta = (LeatherArmorMeta)item.getItemMeta();
|
|
||||||
|
|
||||||
//Color
|
|
||||||
if (event.GetProjectile() instanceof Snowball)
|
|
||||||
meta.setColor(Color.AQUA);
|
|
||||||
else
|
|
||||||
meta.setColor(Color.FUCHSIA);
|
|
||||||
|
|
||||||
item.setItemMeta(meta);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
package nautilus.game.arcade.kit.perks;
|
package nautilus.game.arcade.kit.perks;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Color;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.EnderPearl;
|
import org.bukkit.entity.EnderPearl;
|
||||||
@ -13,22 +10,17 @@ import org.bukkit.entity.Snowball;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.UtilBlock;
|
import mineplex.core.common.util.UtilBlock;
|
||||||
import mineplex.core.recharge.Recharge;
|
import mineplex.core.recharge.Recharge;
|
||||||
import mineplex.core.recharge.RechargedEvent;
|
import mineplex.core.recharge.RechargedEvent;
|
||||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
|
||||||
import nautilus.game.arcade.game.GameTeam;
|
import nautilus.game.arcade.game.GameTeam;
|
||||||
import nautilus.game.arcade.kit.Perk;
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
|
||||||
public class PerkPaintballShotgun extends Perk
|
public class PerkPaintballShotgun extends Perk
|
||||||
{
|
{
|
||||||
private HashSet<Projectile> _balls = new HashSet<Projectile>();
|
|
||||||
|
|
||||||
public PerkPaintballShotgun()
|
public PerkPaintballShotgun()
|
||||||
{
|
{
|
||||||
super("Shotgun", new String[]
|
super("Shotgun", new String[]
|
||||||
@ -73,19 +65,18 @@ public class PerkPaintballShotgun extends Perk
|
|||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
if (!Recharge.Instance.use(player, GetName(), 1000, true))
|
if (!Recharge.Instance.use(player, GetName(), 1400, true))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (int i=0 ; i<6 ; i++)
|
for (int i=0 ; i<8 ; i++)
|
||||||
{
|
{
|
||||||
Vector rand = new Vector(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5);
|
Vector rand = new Vector(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5);
|
||||||
rand.multiply(0.25);
|
rand.multiply(0.4);
|
||||||
|
|
||||||
if (team.GetColor() == ChatColor.AQUA)
|
if (team.GetColor() == ChatColor.AQUA)
|
||||||
{
|
{
|
||||||
Projectile proj = player.launchProjectile(Snowball.class);
|
Projectile proj = player.launchProjectile(Snowball.class);
|
||||||
proj.setVelocity(proj.getVelocity().multiply(1).add(rand));
|
proj.setVelocity(proj.getVelocity().multiply(1).add(rand));
|
||||||
_balls.add(proj);
|
|
||||||
|
|
||||||
//Sound
|
//Sound
|
||||||
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 0.8f, 1f);
|
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 0.8f, 1f);
|
||||||
@ -94,46 +85,10 @@ public class PerkPaintballShotgun extends Perk
|
|||||||
{
|
{
|
||||||
Projectile proj = player.launchProjectile(EnderPearl.class);
|
Projectile proj = player.launchProjectile(EnderPearl.class);
|
||||||
proj.setVelocity(proj.getVelocity().multiply(1).add(rand));
|
proj.setVelocity(proj.getVelocity().multiply(1).add(rand));
|
||||||
_balls.add(proj);
|
|
||||||
|
|
||||||
//Sound
|
//Sound
|
||||||
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 0.8f, 0.75f);
|
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 0.8f, 0.75f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void Damage(CustomDamageEvent event)
|
|
||||||
{
|
|
||||||
if (event.GetProjectile() == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!_balls.contains(event.GetProjectile()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
//Negate
|
|
||||||
event.AddMod("Negate", "Negate", -event.GetDamageInitial(), false);
|
|
||||||
|
|
||||||
event.AddMod("Paintball", "Shotgun", 8, true);
|
|
||||||
|
|
||||||
if (event.GetDamageePlayer() == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
double r = Math.random();
|
|
||||||
ItemStack item = null;
|
|
||||||
if (r > 0.75) item= event.GetDamageePlayer().getInventory().getHelmet();
|
|
||||||
else if (r > 0.50) item= event.GetDamageePlayer().getInventory().getChestplate();
|
|
||||||
else if (r > 0.25) item= event.GetDamageePlayer().getInventory().getLeggings();
|
|
||||||
else item= event.GetDamageePlayer().getInventory().getBoots();
|
|
||||||
|
|
||||||
LeatherArmorMeta meta = (LeatherArmorMeta)item.getItemMeta();
|
|
||||||
|
|
||||||
//Color
|
|
||||||
if (event.GetProjectile() instanceof Snowball)
|
|
||||||
meta.setColor(Color.AQUA);
|
|
||||||
else
|
|
||||||
meta.setColor(Color.FUCHSIA);
|
|
||||||
|
|
||||||
item.setItemMeta(meta);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -97,6 +97,9 @@ public class GameGemManager implements Listener
|
|||||||
if (event.GetState() != PlayerState.OUT)
|
if (event.GetState() != PlayerState.OUT)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (event.GetGame().GetType() == GameType.Paintball)
|
||||||
|
return;
|
||||||
|
|
||||||
RewardGems(event.GetGame(), event.GetPlayer(), false);
|
RewardGems(event.GetGame(), event.GetPlayer(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user