Updated Sheep Quest to be 1.8 comptible.
Fixed fissure not working on slabs Fixed a bug in recharge Added ability for admins to give other people creative (they lose it when the admin quits)
This commit is contained in:
parent
3a6968a60b
commit
b00fb0952a
@ -91,17 +91,6 @@ public class Recharge extends MiniPlugin
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
public boolean use(Player player, String ability, long recharge, boolean inform)
|
||||
{
|
||||
return use(player, ability, ability, recharge, inform, false);
|
||||
}
|
||||
|
||||
public boolean use(Player player, String ability, String abilityFull, long recharge, boolean inform)
|
||||
{
|
||||
return use(player, ability, ability, recharge, inform, false);
|
||||
}
|
||||
*/
|
||||
|
||||
public boolean use(Player player, String ability, long recharge, boolean inform, boolean attachItem)
|
||||
{
|
||||
@ -150,7 +139,12 @@ public class Recharge extends MiniPlugin
|
||||
|
||||
public void useForce(Player player, String ability, long recharge)
|
||||
{
|
||||
UseRecharge(player, ability, recharge, false, false);
|
||||
useForce(player, ability, recharge, false);
|
||||
}
|
||||
|
||||
public void useForce(Player player, String ability, long recharge, boolean attachItem)
|
||||
{
|
||||
UseRecharge(player, ability, recharge, attachItem, false);
|
||||
}
|
||||
|
||||
public boolean usable(Player player, String ability)
|
||||
@ -183,10 +177,8 @@ public class Recharge extends MiniPlugin
|
||||
RechargeEvent rechargeEvent = new RechargeEvent(player, ability, recharge);
|
||||
UtilServer.getServer().getPluginManager().callEvent(rechargeEvent);
|
||||
|
||||
if (attachItem || attachDurability)
|
||||
Get(player).put(ability, new RechargeData(this, player, ability, player.getItemInHand(), rechargeEvent.GetRecharge(), attachItem, attachDurability));
|
||||
else
|
||||
Get(player).put(ability, new RechargeData(System.currentTimeMillis()+rechargeEvent.GetRecharge()));
|
||||
Get(player).put(ability, new RechargeData(this, player, ability, player.getItemInHand(),
|
||||
rechargeEvent.GetRecharge(), attachItem, attachDurability));
|
||||
}
|
||||
|
||||
public void recharge(Player player, String ability)
|
||||
@ -200,8 +192,36 @@ public class Recharge extends MiniPlugin
|
||||
_recharge.remove(event.getPlayer().getName());
|
||||
}
|
||||
|
||||
public void setDisplayForce(Player player, String ability, boolean displayForce)
|
||||
{
|
||||
if (!_recharge.containsKey(player.getName()))
|
||||
return;
|
||||
|
||||
if (!_recharge.get(player.getName()).containsKey(ability))
|
||||
return;
|
||||
|
||||
_recharge.get(player.getName()).get(ability).DisplayForce = displayForce;
|
||||
}
|
||||
|
||||
public void Reset(Player player)
|
||||
{
|
||||
_recharge.put(player.getName(), new NautHashMap<String, RechargeData>());
|
||||
}
|
||||
|
||||
public void debug(Player player, String ability)
|
||||
{
|
||||
if (!_recharge.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("No Recharge Map.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_recharge.get(player.getName()).containsKey(ability))
|
||||
{
|
||||
player.sendMessage("Ability Not Found.");
|
||||
return;
|
||||
}
|
||||
|
||||
_recharge.get(player.getName()).get(ability).debug(player);
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package mineplex.core.recharge;
|
||||
|
||||
import mineplex.core.common.util.C;
|
||||
|
||||
import mineplex.core.common.util.UtilGear;
|
||||
import mineplex.core.common.util.UtilInv;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
@ -28,14 +29,10 @@ public class RechargeData
|
||||
|
||||
public ItemStack Item;
|
||||
|
||||
public boolean DisplayForce = false;
|
||||
public boolean AttachItem;
|
||||
public boolean AttachDurability;
|
||||
|
||||
public RechargeData(long time)
|
||||
{
|
||||
Time = time;
|
||||
}
|
||||
|
||||
public RechargeData(Recharge host, Player player, String name, ItemStack stack, long rechargeTime, boolean attachitem, boolean attachDurability)
|
||||
{
|
||||
Host = host;
|
||||
@ -52,16 +49,16 @@ public class RechargeData
|
||||
|
||||
public boolean Update()
|
||||
{
|
||||
if (Item != null && Name != null && Player != null)
|
||||
if ((DisplayForce || Item != null) && Name != null && Player != null)
|
||||
{
|
||||
//Holding Recharge Item
|
||||
double percent = (double)(System.currentTimeMillis() - Time)/(double)Recharge;
|
||||
|
||||
if (AttachItem)
|
||||
if (DisplayForce || AttachItem)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Player.getItemInHand().getType() == Item.getType())
|
||||
if (DisplayForce || (Item != null && UtilGear.isMat(Player.getItemInHand(), Item.getType())))
|
||||
{
|
||||
if (!UtilTime.elapsed(Time, Recharge))
|
||||
{
|
||||
@ -84,27 +81,10 @@ public class RechargeData
|
||||
}
|
||||
}
|
||||
|
||||
if (AttachDurability)
|
||||
if (AttachDurability && Item != null)
|
||||
{
|
||||
Item.setDurability((short) (Item.getType().getMaxDurability() - (Item.getType().getMaxDurability() * percent)));
|
||||
}
|
||||
|
||||
/*
|
||||
ItemMeta itemMeta = Item.getItemMeta();
|
||||
|
||||
if (System.currentTimeMillis() < Time)
|
||||
itemMeta.setDisplayName(C.cRed + C.Bold + Name + ChatColor.RESET + " - " + C.cYellow + C.Bold + UtilTime.MakeStr(Time - System.currentTimeMillis()));
|
||||
else
|
||||
itemMeta.setDisplayName(C.cGreen + C.Bold + Name);
|
||||
|
||||
Item.setItemMeta(itemMeta);
|
||||
|
||||
|
||||
if (System.currentTimeMillis() < Time)
|
||||
Item.removeEnchantment(Enchantment.DURABILITY);
|
||||
else
|
||||
Item.addEnchantment(Enchantment.DURABILITY, 1);
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
@ -115,4 +95,12 @@ public class RechargeData
|
||||
{
|
||||
return Recharge - (System.currentTimeMillis() - Time);
|
||||
}
|
||||
|
||||
public void debug(Player player)
|
||||
{
|
||||
player.sendMessage("Recharge: " + Recharge);
|
||||
player.sendMessage("Time: " + Time);
|
||||
player.sendMessage("Elapsed: " + (System.currentTimeMillis() - Time));
|
||||
player.sendMessage("Remaining: " + GetRemaining());
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package mineplex.hub;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
@ -137,6 +138,8 @@ public class HubManager extends MiniClientPlugin<HubClient>
|
||||
private boolean _shuttingDown;
|
||||
|
||||
private HashMap<String, Long> _portalTime = new HashMap<String, Long>();
|
||||
|
||||
private HashMap<String, ArrayList<String>> _creativeAdmin = new HashMap<String, ArrayList<String>>();
|
||||
|
||||
//Admin
|
||||
private boolean _gadgetsEnabled = true;
|
||||
@ -996,4 +999,39 @@ public class HubManager extends MiniClientPlugin<HubClient>
|
||||
if (!_gadgetsEnabled)
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
public void addGameMode(Player caller, Player target)
|
||||
{
|
||||
if (!_creativeAdmin.containsKey(caller.getName()))
|
||||
_creativeAdmin.put(caller.getName(), new ArrayList<String>());
|
||||
|
||||
if (target.getGameMode() == GameMode.CREATIVE)
|
||||
{
|
||||
_creativeAdmin.get(caller.getName()).add(target.getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
_creativeAdmin.get(caller.getName()).remove(target.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void clearGameMode(PlayerQuitEvent event)
|
||||
{
|
||||
ArrayList<String> creative = _creativeAdmin.remove(event.getPlayer().getName());
|
||||
|
||||
if (creative == null)
|
||||
return;
|
||||
|
||||
for (String name : creative)
|
||||
{
|
||||
Player player = UtilPlayer.searchExact(name);
|
||||
if (player == null)
|
||||
continue;
|
||||
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
|
||||
UtilPlayer.message(player, F.main("Game Mode", event.getPlayer().getName() + " left the game. Creative Mode: " + F.tf(false)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,8 @@ import org.bukkit.entity.Player;
|
||||
|
||||
import mineplex.core.command.CommandBase;
|
||||
import mineplex.core.common.Rank;
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.hub.HubManager;
|
||||
|
||||
public class GameModeCommand extends CommandBase<HubManager>
|
||||
@ -17,9 +19,27 @@ public class GameModeCommand extends CommandBase<HubManager>
|
||||
@Override
|
||||
public void Execute(Player caller, String[] args)
|
||||
{
|
||||
if (caller.getGameMode() == GameMode.SURVIVAL)
|
||||
caller.setGameMode(GameMode.CREATIVE);
|
||||
Player target = caller;
|
||||
|
||||
if (args != null && args.length >= 1)
|
||||
{
|
||||
target = UtilPlayer.searchOnline(caller, args[0], true);
|
||||
|
||||
if (target == null)
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.getGameMode() == GameMode.SURVIVAL)
|
||||
target.setGameMode(GameMode.CREATIVE);
|
||||
else
|
||||
caller.setGameMode(GameMode.SURVIVAL);
|
||||
target.setGameMode(GameMode.SURVIVAL);
|
||||
|
||||
if (!target.equals(caller))
|
||||
{
|
||||
Plugin.addGameMode(caller, target);
|
||||
UtilPlayer.message(target, F.main("Game Mode", caller.getName() + " toggled your Creative Mode: " + F.tf(target.getGameMode() == GameMode.CREATIVE)));
|
||||
}
|
||||
|
||||
UtilPlayer.message(caller, F.main("Game Mode", target.getName() + " Creative Mode: " + F.tf(target.getGameMode() == GameMode.CREATIVE)));
|
||||
}
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ public class Fissure extends SkillActive
|
||||
@Override
|
||||
public void Skill(Player player, int level)
|
||||
{
|
||||
FissureData data = new FissureData(this, player, level, player.getLocation().getDirection(), player.getLocation().add(0, -0.5, 0));
|
||||
FissureData data = new FissureData(this, player, level, player.getLocation().getDirection(), player.getLocation().add(0, -0.4, 0));
|
||||
_active.add(data);
|
||||
|
||||
//Inform
|
||||
|
@ -157,8 +157,6 @@ public class Quiver extends SoloGame
|
||||
if (Manager.GetCondition().HasCondition(event.GetEvent().getEntity(), ConditionType.FALLING, null))
|
||||
{
|
||||
amount = 2;
|
||||
|
||||
player.playSound(player.getLocation(), Sound.ORB_PICKUP, 3f, 0.75f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,7 @@ import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilGear;
|
||||
import mineplex.core.common.util.UtilInv;
|
||||
import mineplex.core.common.util.UtilFirework;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilTextTop;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
@ -140,8 +141,6 @@ public class SheepGame extends TeamGame
|
||||
"Most sheep at 5 minutes wins!"
|
||||
});
|
||||
|
||||
this.StrictAntiHack = true;
|
||||
|
||||
this.DeathOut = false;
|
||||
this.DeathSpectateSecs = 8;
|
||||
|
||||
@ -233,35 +232,66 @@ public class SheepGame extends TeamGame
|
||||
UtilFirework.playFirework(sheep.getLocation().add(0, 0.5, 0), FireworkEffect.builder().flicker(false).withColor(Color.WHITE).with(Type.BALL).trail(false).build());
|
||||
}
|
||||
|
||||
// @EventHandler
|
||||
// public void Stack(PlayerInteractEntityEvent event)
|
||||
// {
|
||||
// if (!IsLive())
|
||||
// return;
|
||||
//
|
||||
// if (!(event.getRightClicked() instanceof Sheep))
|
||||
// return;
|
||||
//
|
||||
// if (event.getRightClicked().getVehicle() != null)
|
||||
// return;
|
||||
//
|
||||
// if (!Recharge.Instance.usable(event.getPlayer(), "Sheep Stack", true))
|
||||
// return;
|
||||
//
|
||||
// SheepStack(event.getPlayer(), (Sheep)event.getRightClicked());
|
||||
// }
|
||||
|
||||
@EventHandler
|
||||
public void Stack(PlayerInteractEntityEvent event)
|
||||
public void Stack(UpdateEvent event)
|
||||
{
|
||||
if (!IsLive())
|
||||
if (event.getType() != UpdateType.SEC)
|
||||
return;
|
||||
|
||||
if (!(event.getRightClicked() instanceof Sheep))
|
||||
return;
|
||||
|
||||
if (event.getRightClicked().getVehicle() != null)
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if (!Recharge.Instance.usable(player, "Sheep Stack"))
|
||||
return;
|
||||
|
||||
|
||||
for (Player player : GetPlayers(true))
|
||||
{
|
||||
if (!Recharge.Instance.usable(player, "Sheep Stack"))
|
||||
return;
|
||||
|
||||
for (Entity ent : player.getWorld().getEntities())
|
||||
{
|
||||
if (!(ent instanceof Sheep))
|
||||
continue;
|
||||
|
||||
if (ent.getVehicle() != null)
|
||||
continue;
|
||||
|
||||
if (UtilMath.offset(player, ent) > 2.5)
|
||||
continue;
|
||||
|
||||
if (SheepStack(player, (Sheep)ent))
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean SheepStack(Player player, Sheep sheep)
|
||||
{
|
||||
if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.SADDLE)
|
||||
return;
|
||||
return true;
|
||||
|
||||
if (event.getPlayer().getGameMode() != GameMode.SURVIVAL)
|
||||
return;
|
||||
if (player.getGameMode() != GameMode.SURVIVAL)
|
||||
return true;
|
||||
|
||||
if (!IsAlive(event.getPlayer()))
|
||||
return;
|
||||
if (!IsAlive(player))
|
||||
return true;
|
||||
|
||||
if (player.getPassenger() != null && player.getPassenger() instanceof Player)
|
||||
{
|
||||
DropSheep(player);
|
||||
DropSheep(player, 500);
|
||||
}
|
||||
|
||||
//Holding too many
|
||||
@ -275,36 +305,41 @@ public class SheepGame extends TeamGame
|
||||
|
||||
if (count >= 3)
|
||||
{
|
||||
UtilPlayer.message(event.getPlayer(), F.main("Game", "You cannot hold more than 3 Sheep!"));
|
||||
return;
|
||||
//UtilPlayer.message(player, F.main("Game", "You cannot hold more than 3 Sheep!"));
|
||||
return true;
|
||||
}
|
||||
|
||||
for (SheepData data : _sheep.values())
|
||||
{
|
||||
if (data.Sheep.equals(event.getRightClicked()))
|
||||
if (data.Sheep.equals(sheep))
|
||||
{
|
||||
if (data.Owner != null && data.Owner.equals(GetTeam(event.getPlayer())) && data.IsInsideOwnPen())
|
||||
if (data.Owner != null && data.Owner.equals(GetTeam(player)) && data.IsInsideOwnPen())
|
||||
{
|
||||
UtilPlayer.message(event.getPlayer(), F.main("Game", "You have already captured this Sheep!"));
|
||||
return;
|
||||
//UtilPlayer.message(player, F.main("Game", "You have already captured this Sheep!"));
|
||||
return false;
|
||||
}
|
||||
|
||||
data.SetHolder(event.getPlayer());
|
||||
data.SetHolder(player);
|
||||
}
|
||||
}
|
||||
|
||||
//Put Wool in Inventory
|
||||
player.getInventory().setItem(4 + count, ItemStackFactory.Instance.CreateStack(35, ((Sheep)event.getRightClicked()).getColor().getWoolData()));
|
||||
player.getInventory().setItem(4 + count, ItemStackFactory.Instance.CreateStack(35, ((Sheep)sheep).getColor().getWoolData()));
|
||||
UtilInv.Update(player);
|
||||
|
||||
//Effect
|
||||
event.getRightClicked().getWorld().playEffect(event.getRightClicked().getLocation(), Effect.STEP_SOUND, 35);
|
||||
sheep.getWorld().playEffect(sheep.getLocation(), Effect.STEP_SOUND, 35);
|
||||
|
||||
//Stack
|
||||
top.setPassenger(event.getRightClicked());
|
||||
top.setPassenger(sheep);
|
||||
|
||||
//Audio
|
||||
player.playSound(player.getLocation(), Sound.SHEEP_IDLE, 2f, 3f);
|
||||
|
||||
//Cooldown
|
||||
Recharge.Instance.useForce(player, "Sheep Stack", 500);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -329,7 +364,7 @@ public class SheepGame extends TeamGame
|
||||
return;
|
||||
|
||||
if (player.getPassenger() != null)
|
||||
DropSheep(player);
|
||||
DropSheep(player, 500);
|
||||
|
||||
if (!Recharge.Instance.usable(player, "Sheep Stack"))
|
||||
return;
|
||||
@ -350,22 +385,25 @@ public class SheepGame extends TeamGame
|
||||
player.setPassenger(other);
|
||||
|
||||
//Audio
|
||||
player.playSound(player.getLocation(), Sound.VILLAGER_YES, 2f, 3f);
|
||||
other.playSound(player.getLocation(), Sound.VILLAGER_NO, 2f, 3f);
|
||||
player.playSound(player.getLocation(), Sound.HORSE_ARMOR, 1f, 1f);
|
||||
|
||||
//Inform
|
||||
UtilPlayer.message(other, F.main("Skill", F.elem(GetTeam(player).GetColor() + player.getName()) + " picked you up."));
|
||||
UtilPlayer.message(player, F.main("Skill", "You picked up " + F.elem(GetTeam(player).GetColor() + player.getName()) + "."));
|
||||
UtilPlayer.message(player, F.main("Skill", "You picked up " + F.elem(GetTeam(other).GetColor() + other.getName()) + "."));
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void DeathDrop(PlayerDeathEvent event)
|
||||
{
|
||||
DropSheep(event.getEntity());
|
||||
DropSheep(event.getEntity(), 0);
|
||||
}
|
||||
|
||||
public void DropSheep(Player player)
|
||||
public void DropSheep(Player player, long cooldown)
|
||||
{
|
||||
//Brute can only throw
|
||||
if (GetKit(player) instanceof KitBrute)
|
||||
return;
|
||||
|
||||
boolean hadSheep = false;
|
||||
|
||||
Entity top = player;
|
||||
@ -388,12 +426,15 @@ public class SheepGame extends TeamGame
|
||||
|
||||
//Audio
|
||||
player.playSound(player.getLocation(), Sound.SHEEP_IDLE, 2f, 1f);
|
||||
|
||||
//Recharge
|
||||
Recharge.Instance.useForce(player, "Sheep Stack", cooldown);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void Drop(PlayerDropItemEvent event)
|
||||
{
|
||||
DropSheep(event.getPlayer());
|
||||
DropSheep(event.getPlayer(), 500);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -452,9 +493,24 @@ public class SheepGame extends TeamGame
|
||||
UtilTextTop.displayProgress(C.Bold + "Return the Sheep to your Team Pen!", (float)count/3f, player);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void DamageSheepCancel(CustomDamageEvent event)
|
||||
{
|
||||
if (event.IsCancelled())
|
||||
return;
|
||||
|
||||
if (event.GetDamagerPlayer(true) != null)
|
||||
{
|
||||
if (event.GetDamagerPlayer(true).getPassenger() != null)
|
||||
{
|
||||
event.SetCancelled("SQ: Has Passenger");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void DamagePasson(CustomDamageEvent event)
|
||||
public void DamagePassOn(CustomDamageEvent event)
|
||||
{
|
||||
if (event.IsCancelled())
|
||||
return;
|
||||
@ -493,7 +549,7 @@ public class SheepGame extends TeamGame
|
||||
Player player = event.GetDamageePlayer();
|
||||
if (player == null) return;
|
||||
|
||||
DropSheep(player);
|
||||
DropSheep(player, 2000);
|
||||
|
||||
Bukkit.getPluginManager().callEvent(new DropEnemySheepEvent(event.GetDamagerPlayer(true), player));
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.UtilGear;
|
||||
import mineplex.core.common.util.UtilInv;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
@ -45,7 +46,8 @@ public class KitArcher extends Kit
|
||||
{
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.WOOD_SWORD));
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW));
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.SADDLE));
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.SADDLE, (byte)0, 1,
|
||||
C.cYellow + C.Bold + "Move Near Sheep" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Pick Up Sheep"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -5,8 +5,8 @@ import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
import nautilus.game.arcade.ArcadeManager;
|
||||
import nautilus.game.arcade.kit.Kit;
|
||||
@ -27,7 +27,7 @@ public class KitBeserker extends Kit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkLeap("Beserker Leap", 1.2, 1.2, 8000)
|
||||
new PerkDoubleJump("Beserker Jump", 1.2, 1.2, true, 8000, true)
|
||||
},
|
||||
EntityType.ZOMBIE,
|
||||
new ItemStack(Material.IRON_AXE));
|
||||
@ -37,7 +37,8 @@ public class KitBeserker extends Kit
|
||||
public void GiveItems(Player player)
|
||||
{
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_AXE));
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.SADDLE));
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.SADDLE, (byte)0, 1,
|
||||
C.cYellow + C.Bold + "Move Near Sheep" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Pick Up Sheep"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -38,7 +38,8 @@ public class KitBrute extends Kit
|
||||
public void GiveItems(Player player)
|
||||
{
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_SWORD));
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.SADDLE));
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.SADDLE, (byte)0, 1,
|
||||
C.cYellow + C.Bold + "Move Near Sheep" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Pick Up Sheep"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -2,6 +2,7 @@ package nautilus.game.arcade.kit.perks;
|
||||
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -12,6 +13,7 @@ import mineplex.core.common.util.UtilAction;
|
||||
import mineplex.core.common.util.UtilBlock;
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
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.kit.Perk;
|
||||
@ -21,10 +23,12 @@ public class PerkDoubleJump extends Perk
|
||||
private double _power;
|
||||
private double _heightMax;
|
||||
private boolean _control;
|
||||
private long _recharge;
|
||||
private boolean _displayForce;
|
||||
|
||||
public PerkDoubleJump(String name, double power, double heightLimit, boolean control)
|
||||
{
|
||||
super("Jumper", new String[]
|
||||
super(name, new String[]
|
||||
{
|
||||
C.cYellow + "Tap Jump Twice" + C.cGray + " to " + C.cGreen + name
|
||||
});
|
||||
@ -32,6 +36,22 @@ public class PerkDoubleJump extends Perk
|
||||
_power = power;
|
||||
_heightMax = heightLimit;
|
||||
_control = control;
|
||||
_recharge = 0;
|
||||
_displayForce = false;
|
||||
}
|
||||
|
||||
public PerkDoubleJump(String name, double power, double heightLimit, boolean control, long recharge, boolean displayForce)
|
||||
{
|
||||
super(name, new String[]
|
||||
{
|
||||
C.cYellow + "Tap Jump Twice" + C.cGray + " to " + C.cGreen + name
|
||||
});
|
||||
|
||||
_power = power;
|
||||
_heightMax = heightLimit;
|
||||
_control = control;
|
||||
_recharge = recharge;
|
||||
_displayForce = displayForce;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -63,6 +83,17 @@ public class PerkDoubleJump extends Perk
|
||||
|
||||
//Sound
|
||||
player.getWorld().playEffect(player.getLocation(), Effect.BLAZE_SHOOT, 0);
|
||||
|
||||
//Recharge
|
||||
if (_recharge > 0)
|
||||
{
|
||||
Recharge.Instance.useForce(player, GetName(), _recharge);
|
||||
|
||||
if (_displayForce)
|
||||
{
|
||||
Recharge.Instance.setDisplayForce(player, GetName(), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -79,6 +110,9 @@ public class PerkDoubleJump extends Perk
|
||||
if (!Kit.HasKit(player))
|
||||
continue;
|
||||
|
||||
if (_recharge > 0 && !Recharge.Instance.usable(player, GetName()))
|
||||
continue;
|
||||
|
||||
if (UtilEnt.isGrounded(player) || UtilBlock.solid(player.getLocation().getBlock().getRelative(BlockFace.DOWN)))
|
||||
player.setAllowFlight(true);
|
||||
}
|
||||
|
@ -10,15 +10,19 @@ import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.common.util.UtilAction;
|
||||
import mineplex.core.common.util.UtilAlg;
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilEvent;
|
||||
import mineplex.core.common.util.UtilGear;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilTextTop;
|
||||
import mineplex.core.common.util.UtilEvent.ActionType;
|
||||
import mineplex.core.projectile.IThrown;
|
||||
import mineplex.core.projectile.ProjectileUser;
|
||||
@ -32,22 +36,16 @@ public class PerkThrower extends Perk implements IThrown
|
||||
{
|
||||
super("Thrower", new String[]
|
||||
{
|
||||
C.cGray + "You can pick up team mates!",
|
||||
C.cYellow + "Right-Click" + C.cGray + " with Sword to " + C.cGreen + "Throw Sheep",
|
||||
C.cGray + "You can also pick up team mates!",
|
||||
C.cYellow + "Drop Weapon" + C.cGray + " to " + C.cGreen + "Throw Sheep / Players",
|
||||
});
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void Throw(PlayerInteractEvent event)
|
||||
public void Throw(PlayerDropItemEvent event)
|
||||
{
|
||||
if (!UtilEvent.isAction(event, ActionType.R))
|
||||
return;
|
||||
|
||||
Player thrower = event.getPlayer();
|
||||
|
||||
if (!UtilGear.isMat(thrower.getItemInHand(), Material.IRON_SWORD))
|
||||
return;
|
||||
|
||||
if (thrower.getPassenger() == null)
|
||||
return;
|
||||
|
||||
@ -73,6 +71,8 @@ public class PerkThrower extends Perk implements IThrown
|
||||
fThrower.setPassenger(fThroweeStack);
|
||||
}
|
||||
}, 2);
|
||||
|
||||
UtilPlayer.message(thrower, F.main("Game", "You threw " + UtilEnt.getName(throwee) + "."));
|
||||
}
|
||||
|
||||
//Throw
|
||||
|
Loading…
Reference in New Issue
Block a user