+>Added the /vac, /equip_weapons, and /equip_armor commands. These
commands are toggles to turn on/off Vacuum Cube suction, Auto-Equipping weapons, and Auto-Equipping armor functionality. +>Base Regeneration Level for Defenders increased. Not Blocking: Regeneration 1 -> Regeneration 2, Blocking: Regeneration 2 -> Regeneration 4 >Sleep voting system now works for thunderstorm weather conditions. >Armor Stands properly subtract health when taking damage now. ->Regen Pool is now hard capped to your maximum health. ->Arrow Quivers no longer equip to your off-hand when viewing other inventories. ->Vendetta Stacks reset if revival is triggered.
This commit is contained in:
parent
d8f2edd51e
commit
37dbd8b417
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
name: TwosideKeeper
|
name: TwosideKeeper
|
||||||
main: sig.plugin.TwosideKeeper.TwosideKeeper
|
main: sig.plugin.TwosideKeeper.TwosideKeeper
|
||||||
version: 3.10.7
|
version: 3.10.7a
|
||||||
loadbefore: [aPlugin]
|
loadbefore: [aPlugin]
|
||||||
commands:
|
commands:
|
||||||
money:
|
money:
|
||||||
@ -148,3 +148,18 @@ commands:
|
|||||||
usage: /debugreport
|
usage: /debugreport
|
||||||
permission: TwosideKeeper.fulldebugreport
|
permission: TwosideKeeper.fulldebugreport
|
||||||
permission-message: No permissions!
|
permission-message: No permissions!
|
||||||
|
vac:
|
||||||
|
description: Toggle Vacuum Cube suction
|
||||||
|
usage: /vac
|
||||||
|
permission: TwosideKeeper.money
|
||||||
|
permission-message: No permissions!
|
||||||
|
equip_weapon:
|
||||||
|
description: Toggle Automatic Equipping of Weapons
|
||||||
|
usage: /equip_weapon
|
||||||
|
permission: TwosideKeeper.money
|
||||||
|
permission-message: No permissions!
|
||||||
|
equip_armor:
|
||||||
|
description: Toggle Automatic Equipping of Armor
|
||||||
|
usage: /equip_armor
|
||||||
|
permission: TwosideKeeper.money
|
||||||
|
permission-message: No permissions!
|
@ -60,6 +60,10 @@ public class EliteGuardian extends EliteMonster{
|
|||||||
cutscenetimer++;
|
cutscenetimer++;
|
||||||
if (cutscenetimer>100) {
|
if (cutscenetimer>100) {
|
||||||
state=STATE.PASSIVE;
|
state=STATE.PASSIVE;
|
||||||
|
//Play the cutscene for all of these players.
|
||||||
|
for (Player p : nearby2) {
|
||||||
|
p.setGameMode(GameMode.SURVIVAL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.setAI(false);
|
m.setAI(false);
|
||||||
|
@ -15,6 +15,7 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.entity.ArmorStand;
|
||||||
import org.bukkit.entity.Arrow;
|
import org.bukkit.entity.Arrow;
|
||||||
import org.bukkit.entity.Blaze;
|
import org.bukkit.entity.Blaze;
|
||||||
import org.bukkit.entity.CaveSpider;
|
import org.bukkit.entity.CaveSpider;
|
||||||
@ -738,7 +739,7 @@ public class CustomDamage {
|
|||||||
private static double modifyFateBasedOnHolidayTreats(Player p, double damage) {
|
private static double modifyFateBasedOnHolidayTreats(Player p, double damage) {
|
||||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
boolean consumed=false;
|
boolean consumed=false;
|
||||||
if (p.getHealth()-damage<=0 && pd.lastrevivecandyconsumed+200<TwosideKeeper.getServerTickTime()) {
|
if (p.getHealth()-damage<=0 && pd.lastrevivecandyconsumed+400<TwosideKeeper.getServerTickTime()) {
|
||||||
for (int i=0;i<9;i++) {
|
for (int i=0;i<9;i++) {
|
||||||
ItemStack item = p.getInventory().getItem(i);
|
ItemStack item = p.getInventory().getItem(i);
|
||||||
if (item!=null) {
|
if (item!=null) {
|
||||||
@ -755,7 +756,7 @@ public class CustomDamage {
|
|||||||
GenericFunctions.RandomlyBreakBaubles(p, hotbar);
|
GenericFunctions.RandomlyBreakBaubles(p, hotbar);
|
||||||
SoundUtils.playLocalSound(p, Sound.ENTITY_GENERIC_EAT, 1.0f, 1.0f);
|
SoundUtils.playLocalSound(p, Sound.ENTITY_GENERIC_EAT, 1.0f, 1.0f);
|
||||||
pd.lastrevivecandyconsumed=TwosideKeeper.getServerTickTime();
|
pd.lastrevivecandyconsumed=TwosideKeeper.getServerTickTime();
|
||||||
aPlugin.API.sendCooldownPacket(p, Material.GOLDEN_APPLE, 200);
|
aPlugin.API.sendCooldownPacket(p, Material.GOLDEN_APPLE, 400);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1254,6 +1255,9 @@ public class CustomDamage {
|
|||||||
} else {
|
} else {
|
||||||
pd.regenpool += lifestealamt;
|
pd.regenpool += lifestealamt;
|
||||||
}
|
}
|
||||||
|
if (pd.regenpool>p.getMaxHealth()) {
|
||||||
|
pd.regenpool=p.getMaxHealth();
|
||||||
|
}
|
||||||
DecimalFormat df = new DecimalFormat("0.00");
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
GenericFunctions.sendActionBarMessage(p, "");
|
GenericFunctions.sendActionBarMessage(p, "");
|
||||||
TwosideKeeper.log(p.getName()+" healed "+df.format(lifestealamt)+" dmg from Lifesteal.", 5);
|
TwosideKeeper.log(p.getName()+" healed "+df.format(lifestealamt)+" dmg from Lifesteal.", 5);
|
||||||
@ -2494,7 +2498,7 @@ public class CustomDamage {
|
|||||||
TwosideKeeper.log("In here",5);
|
TwosideKeeper.log("In here",5);
|
||||||
if (!PlayerMode.isDefender(p) && PlayerMode.isDefender(check) &&
|
if (!PlayerMode.isDefender(p) && PlayerMode.isDefender(check) &&
|
||||||
check.isBlocking() &&
|
check.isBlocking() &&
|
||||||
!p.equals(check) && (reason==null || !reason.equalsIgnoreCase("Cupid Set Tank"))) {
|
!p.equals(check) && NotTankReason(reason)) {
|
||||||
//This is a defender. Transfer half the damage to them!
|
//This is a defender. Transfer half the damage to them!
|
||||||
dmg = dmg/2;
|
dmg = dmg/2;
|
||||||
//Send the rest of the damage to the defender.
|
//Send the rest of the damage to the defender.
|
||||||
@ -2505,7 +2509,7 @@ public class CustomDamage {
|
|||||||
break;
|
break;
|
||||||
} else
|
} else
|
||||||
if (!isCupidTank(p) && isCupidTank(check) &&
|
if (!isCupidTank(p) && isCupidTank(check) &&
|
||||||
!p.equals(check) && (reason==null || !reason.equalsIgnoreCase("Defender Tank"))) {
|
!p.equals(check) && NotTankReason(reason)) {
|
||||||
//This is a defender. Transfer half the damage to them!
|
//This is a defender. Transfer half the damage to them!
|
||||||
double origdmg = dmg;
|
double origdmg = dmg;
|
||||||
dmg = origdmg-(origdmg*(ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(check), check, ItemSet.CUPID)/100d));
|
dmg = origdmg-(origdmg*(ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(check), check, ItemSet.CUPID)/100d));
|
||||||
@ -2524,6 +2528,10 @@ public class CustomDamage {
|
|||||||
return dmg;
|
return dmg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean NotTankReason(String reason) {
|
||||||
|
return reason==null || !reason.equalsIgnoreCase("Cupid Set Tank") || !reason.equalsIgnoreCase("Defender Tank");
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean isCupidTank(Player p) {
|
private static boolean isCupidTank(Player p) {
|
||||||
if (ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.CUPID)>0) {
|
if (ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.CUPID)>0) {
|
||||||
return true;
|
return true;
|
||||||
@ -2655,7 +2663,7 @@ public class CustomDamage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void subtractHealth(double damage, LivingEntity target) {
|
private static void subtractHealth(double damage, LivingEntity target) {
|
||||||
if (target instanceof Player) {TwosideKeeper.log("Going to subtract "+damage+" damage", 5);}
|
//if (target instanceof ArmorStand) {TwosideKeeper.log("Going to subtract "+damage+" damage", 0);}
|
||||||
if (target.getHealth()>0) {
|
if (target.getHealth()>0) {
|
||||||
if (target.getHealth()<damage) {
|
if (target.getHealth()<damage) {
|
||||||
target.setHealth(0.00001);
|
target.setHealth(0.00001);
|
||||||
@ -2701,7 +2709,7 @@ public class CustomDamage {
|
|||||||
return finaldmg;
|
return finaldmg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static double calculateArmorPen(Entity pl, double dmg, ItemStack weapon) {
|
public static double calculateArmorPen(Entity pl, double dmg, ItemStack weapon) {
|
||||||
double finaldmg = 0.0;
|
double finaldmg = 0.0;
|
||||||
if (pl instanceof Player) {
|
if (pl instanceof Player) {
|
||||||
Player p = (Player)pl;
|
Player p = (Player)pl;
|
||||||
|
@ -8,13 +8,19 @@ import sig.plugin.TwosideKeeper.HelperStructures.Utils.ItemUtils;
|
|||||||
|
|
||||||
public class DropRandomFirework extends Drop {
|
public class DropRandomFirework extends Drop {
|
||||||
|
|
||||||
|
int min,max;
|
||||||
|
|
||||||
public DropRandomFirework(int min, int max, int weight) {
|
public DropRandomFirework(int min, int max, int weight) {
|
||||||
super(min,max,weight,"Holiday Firework");
|
super(min,max,weight,"Holiday Firework");
|
||||||
|
this.min=min;
|
||||||
|
this.max=max;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack getItemStack() {
|
public ItemStack getItemStack() {
|
||||||
return ItemUtils.createRandomFirework();
|
ItemStack randomfirework = ItemUtils.createRandomFirework();
|
||||||
|
randomfirework.setAmount((int)(((Math.random()*(max-min))+min)));
|
||||||
|
return randomfirework;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -163,7 +163,7 @@ public class EliteMonster {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void AnnounceFailedTakedown() {
|
private void AnnounceFailedTakedown() {
|
||||||
if (dpslist.size()>0) {
|
if (dpslist.size()>0 && !m.isDead()) {
|
||||||
Bukkit.getServer().broadcastMessage(GenericFunctions.getDisplayName(m)+" Takedown Failed...");
|
Bukkit.getServer().broadcastMessage(GenericFunctions.getDisplayName(m)+" Takedown Failed...");
|
||||||
Bukkit.getServer().broadcastMessage(ChatColor.YELLOW+"DPS Breakdown:");
|
Bukkit.getServer().broadcastMessage(ChatColor.YELLOW+"DPS Breakdown:");
|
||||||
Bukkit.getServer().broadcastMessage(generateDPSReport());
|
Bukkit.getServer().broadcastMessage(generateDPSReport());
|
||||||
|
@ -3591,8 +3591,12 @@ public class GenericFunctions {
|
|||||||
}
|
}
|
||||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
pd.slayermodehp = Math.min(healdmg,p.getMaxHealth());
|
pd.slayermodehp = Math.min(healdmg,p.getMaxHealth());
|
||||||
|
pd.vendetta_amt=0;
|
||||||
|
pd.lastvendettastack=0;
|
||||||
|
pd.thorns_amt=0;
|
||||||
p.setFireTicks(0);
|
p.setFireTicks(0);
|
||||||
CustomDamage.addIframe(40, p);
|
CustomDamage.addIframe(40, p);
|
||||||
|
GenericFunctions.sendActionBarMessage(p, "");
|
||||||
//p.addPotionEffect(new PotionEffect(PotionEffectType.GLOWING,20,0));
|
//p.addPotionEffect(new PotionEffect(PotionEffectType.GLOWING,20,0));
|
||||||
//TwosideKeeper.log("Added "+20+" glowing ticks to "+p.getName()+" for reviving.",3);
|
//TwosideKeeper.log("Added "+20+" glowing ticks to "+p.getName()+" for reviving.",3);
|
||||||
//p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION,20,0));
|
//p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION,20,0));
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
package sig.plugin.TwosideKeeper.HelperStructures.Utils;
|
package sig.plugin.TwosideKeeper.HelperStructures.Utils;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import sig.plugin.TwosideKeeper.PartyManager;
|
||||||
import sig.plugin.TwosideKeeper.TwosideKeeper;
|
import sig.plugin.TwosideKeeper.TwosideKeeper;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.ServerType;
|
import sig.plugin.TwosideKeeper.HelperStructures.ServerType;
|
||||||
|
|
||||||
@ -12,4 +16,11 @@ public class MessageUtils {
|
|||||||
}
|
}
|
||||||
Bukkit.broadcastMessage(msg);
|
Bukkit.broadcastMessage(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void announceMessageToParty(Player p, String msg) {
|
||||||
|
List<Player> partymembers = PartyManager.getPartyMembers(p);
|
||||||
|
for (Player pl : partymembers) {
|
||||||
|
pl.sendMessage(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -189,6 +189,9 @@ public class PlayerStructure {
|
|||||||
public long lastActionBarMessageTime=0;
|
public long lastActionBarMessageTime=0;
|
||||||
public long lastsantabox2;
|
public long lastsantabox2;
|
||||||
public double regenpool=0;
|
public double regenpool=0;
|
||||||
|
public boolean vacuumsuckup=true;
|
||||||
|
public boolean equipweapons=true;
|
||||||
|
public boolean equiparmor=true;
|
||||||
|
|
||||||
//Needs the instance of the player object to get all other info. Only to be called at the beginning.
|
//Needs the instance of the player object to get all other info. Only to be called at the beginning.
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@ -243,6 +246,9 @@ public class PlayerStructure {
|
|||||||
this.damagelogging=false;
|
this.damagelogging=false;
|
||||||
this.isPlayingSpleef=false;
|
this.isPlayingSpleef=false;
|
||||||
this.iframetime=TwosideKeeper.getServerTickTime();
|
this.iframetime=TwosideKeeper.getServerTickTime();
|
||||||
|
this.vacuumsuckup=true;
|
||||||
|
this.equipweapons=true;
|
||||||
|
this.equiparmor=true;
|
||||||
//Set defaults first, in case this is a new user.
|
//Set defaults first, in case this is a new user.
|
||||||
loadConfig();
|
loadConfig();
|
||||||
p.getInventory().addItem(new ItemStack(Material.PORTAL));
|
p.getInventory().addItem(new ItemStack(Material.PORTAL));
|
||||||
@ -337,6 +343,9 @@ public class PlayerStructure {
|
|||||||
workable.set("holidaychest3", holidaychest3);
|
workable.set("holidaychest3", holidaychest3);
|
||||||
workable.set("holidaychest4", holidaychest4);
|
workable.set("holidaychest4", holidaychest4);
|
||||||
workable.set("lastsantabox2", lastsantabox2);
|
workable.set("lastsantabox2", lastsantabox2);
|
||||||
|
workable.set("vacuumsuckup", vacuumsuckup);
|
||||||
|
workable.set("equipweapons", equipweapons);
|
||||||
|
workable.set("equiparmor", equiparmor);
|
||||||
workable.set("playermode_on_death", playermode_on_death.name());
|
workable.set("playermode_on_death", playermode_on_death.name());
|
||||||
//ConfigurationSection deathlootlist = workable.createSection("deathloot");
|
//ConfigurationSection deathlootlist = workable.createSection("deathloot");
|
||||||
if (DeathManager.deathStructureExists(Bukkit.getPlayer(name))) {
|
if (DeathManager.deathStructureExists(Bukkit.getPlayer(name))) {
|
||||||
@ -419,6 +428,9 @@ public class PlayerStructure {
|
|||||||
workable.addDefault("holidaychest3", holidaychest3);
|
workable.addDefault("holidaychest3", holidaychest3);
|
||||||
workable.addDefault("holidaychest4", holidaychest4);
|
workable.addDefault("holidaychest4", holidaychest4);
|
||||||
workable.addDefault("lastsantabox2", lastsantabox2);
|
workable.addDefault("lastsantabox2", lastsantabox2);
|
||||||
|
workable.addDefault("vacuumsuckup", vacuumsuckup);
|
||||||
|
workable.addDefault("equipweapons", equipweapons);
|
||||||
|
workable.addDefault("equiparmor", equiparmor);
|
||||||
workable.addDefault("playermode_on_death", playermode_on_death.name());
|
workable.addDefault("playermode_on_death", playermode_on_death.name());
|
||||||
workable.addDefault("COOLDOWN_deathmark", last_deathmark);
|
workable.addDefault("COOLDOWN_deathmark", last_deathmark);
|
||||||
workable.addDefault("COOLDOWN_shovelspell", last_shovelspell);
|
workable.addDefault("COOLDOWN_shovelspell", last_shovelspell);
|
||||||
@ -494,6 +506,9 @@ public class PlayerStructure {
|
|||||||
this.last_mock = workable.getLong("COOLDOWN_lastmock");
|
this.last_mock = workable.getLong("COOLDOWN_lastmock");
|
||||||
this.lastassassinatetime = workable.getLong("COOLDOWN_lastassassinatetime");
|
this.lastassassinatetime = workable.getLong("COOLDOWN_lastassassinatetime");
|
||||||
this.lastlifesavertime = workable.getLong("COOLDOWN_lastlifesavertime");
|
this.lastlifesavertime = workable.getLong("COOLDOWN_lastlifesavertime");
|
||||||
|
this.vacuumsuckup = workable.getBoolean("vacuumsuckup");
|
||||||
|
this.equipweapons = workable.getBoolean("equipweapons");
|
||||||
|
this.equiparmor = workable.getBoolean("equiparmor");
|
||||||
|
|
||||||
if (this.hasDied) {
|
if (this.hasDied) {
|
||||||
List<ItemStack> deathlootlist = new ArrayList<ItemStack>();
|
List<ItemStack> deathlootlist = new ArrayList<ItemStack>();
|
||||||
|
@ -41,6 +41,7 @@ import org.bukkit.configuration.file.FileConfiguration;
|
|||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.AreaEffectCloud;
|
import org.bukkit.entity.AreaEffectCloud;
|
||||||
|
import org.bukkit.entity.ArmorStand;
|
||||||
import org.bukkit.entity.Arrow;
|
import org.bukkit.entity.Arrow;
|
||||||
import org.bukkit.entity.Bat;
|
import org.bukkit.entity.Bat;
|
||||||
import org.bukkit.entity.Blaze;
|
import org.bukkit.entity.Blaze;
|
||||||
@ -127,6 +128,7 @@ import org.bukkit.event.inventory.PrepareAnvilEvent;
|
|||||||
import org.bukkit.event.inventory.PrepareItemCraftEvent;
|
import org.bukkit.event.inventory.PrepareItemCraftEvent;
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
import org.bukkit.event.player.PlayerAchievementAwardedEvent;
|
import org.bukkit.event.player.PlayerAchievementAwardedEvent;
|
||||||
|
import org.bukkit.event.player.PlayerArmorStandManipulateEvent;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||||
import org.bukkit.event.player.PlayerExpChangeEvent;
|
import org.bukkit.event.player.PlayerExpChangeEvent;
|
||||||
@ -229,6 +231,7 @@ import sig.plugin.TwosideKeeper.HelperStructures.Utils.EntityUtils;
|
|||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.InventoryUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.InventoryUtils;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ItemCubeUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ItemCubeUtils;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ItemUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ItemUtils;
|
||||||
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.MessageUtils;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.SoundUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.SoundUtils;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.TimeUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.TimeUtils;
|
||||||
import sig.plugin.TwosideKeeper.HolidayEvents.Christmas;
|
import sig.plugin.TwosideKeeper.HolidayEvents.Christmas;
|
||||||
@ -2023,26 +2026,26 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (CHRISTMASEVENT_ACTIVATED) {
|
if (CHRISTMASEVENT_ACTIVATED) {
|
||||||
switch (InventoryUtils.onlyHoldingFiveDirtBlocks(p)) {
|
switch (InventoryUtils.onlyHoldingFiveDirtBlocks(p)) {
|
||||||
case HOLDING5DIRT:{
|
case HOLDING5DIRT:{
|
||||||
Bukkit.broadcastMessage(p.getName()+" is "+ChatColor.GREEN+"READY"+".");
|
MessageUtils.announceMessageToParty(p,p.getName()+" is "+ChatColor.GREEN+"READY"+".");
|
||||||
}break;
|
}break;
|
||||||
case NOTEMPTYINVENTORY:
|
case NOTEMPTYINVENTORY:
|
||||||
Bukkit.broadcastMessage(p.getName()+" is "+ChatColor.RED+"NOT READY"+".");
|
MessageUtils.announceMessageToParty(p,p.getName()+" is "+ChatColor.RED+"NOT READY"+".");
|
||||||
p.sendMessage(" You need to get rid of "+ChatColor.RED+"ALL ITEMS"+ChatColor.RESET+" to play.");
|
p.sendMessage(" You need to get rid of "+ChatColor.RED+"ALL ITEMS"+ChatColor.RESET+" to play.");
|
||||||
break;
|
break;
|
||||||
case NOTENOUGHDIRT:
|
case NOTENOUGHDIRT:
|
||||||
Bukkit.broadcastMessage(p.getName()+" is "+ChatColor.RED+"NOT READY"+".");
|
MessageUtils.announceMessageToParty(p,p.getName()+" is "+ChatColor.RED+"NOT READY"+".");
|
||||||
p.sendMessage(" You need to have exactly "+ChatColor.YELLOW+"5 DIRT BLOCKS"+ChatColor.RESET+" to play.");
|
p.sendMessage(" You need to have exactly "+ChatColor.YELLOW+"5 DIRT BLOCKS"+ChatColor.RESET+" to play.");
|
||||||
break;
|
break;
|
||||||
case TOOMUCHDIRT:
|
case TOOMUCHDIRT:
|
||||||
Bukkit.broadcastMessage(p.getName()+" is "+ChatColor.RED+"NOT READY"+".");
|
MessageUtils.announceMessageToParty(p,p.getName()+" is "+ChatColor.RED+"NOT READY"+".");
|
||||||
p.sendMessage(" You need to have exactly "+ChatColor.YELLOW+"5 DIRT BLOCKS"+ChatColor.RESET+" to play.");
|
p.sendMessage(" You need to have exactly "+ChatColor.YELLOW+"5 DIRT BLOCKS"+ChatColor.RESET+" to play.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (args.length>0) {
|
if (args.length>0) {
|
||||||
Bukkit.broadcastMessage(p.getName()+" has issued a ready check. Type "+ChatColor.YELLOW+"/ready"+ChatColor.RESET+" to announce when you are ready.");
|
MessageUtils.announceMessageToParty(p,p.getName()+" has issued a ready check. Type "+ChatColor.YELLOW+"/ready"+ChatColor.RESET+" to announce when you are ready.");
|
||||||
} else {
|
} else {
|
||||||
Bukkit.broadcastMessage(p.getName()+" is "+ChatColor.GREEN+"READY"+".");
|
MessageUtils.announceMessageToParty(p,p.getName()+" is "+ChatColor.GREEN+"READY"+".");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -2063,6 +2066,27 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
Player p = (Player)sender;
|
Player p = (Player)sender;
|
||||||
p.sendMessage(aPlugin.API.getHabitatMap(p, 7));
|
p.sendMessage(aPlugin.API.getHabitatMap(p, 7));
|
||||||
return true;
|
return true;
|
||||||
|
} else
|
||||||
|
if (cmd.getName().equalsIgnoreCase("vac")) {
|
||||||
|
Player p = (Player)sender;
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
pd.vacuumsuckup=!pd.vacuumsuckup;
|
||||||
|
p.sendMessage("Vacuum Cube suction is now turned "+(pd.vacuumsuckup?ChatColor.GREEN+"ON":ChatColor.RED+"OFF")+ChatColor.RESET+".");
|
||||||
|
return true;
|
||||||
|
} else
|
||||||
|
if (cmd.getName().equalsIgnoreCase("equip_weapon")) {
|
||||||
|
Player p = (Player)sender;
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
pd.equipweapons=!pd.equipweapons;
|
||||||
|
p.sendMessage("Automatic Weapon Equipping is now turned "+(pd.equipweapons?ChatColor.GREEN+"ON":ChatColor.RED+"OFF")+ChatColor.RESET+".");
|
||||||
|
return true;
|
||||||
|
} else
|
||||||
|
if (cmd.getName().equalsIgnoreCase("equip_armor")) {
|
||||||
|
Player p = (Player)sender;
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
pd.equiparmor=!pd.equiparmor;
|
||||||
|
p.sendMessage("Automatic Armor Equipping is now turned "+(pd.equiparmor?ChatColor.GREEN+"ON":ChatColor.RED+"OFF")+ChatColor.RESET+".");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//Implement console/admin version later (Let's you check any name's money.)
|
//Implement console/admin version later (Let's you check any name's money.)
|
||||||
@ -4865,6 +4889,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((ev.getClick()==ClickType.SHIFT_LEFT || ev.getClick()==ClickType.SHIFT_RIGHT) &&
|
if ((ev.getClick()==ClickType.SHIFT_LEFT || ev.getClick()==ClickType.SHIFT_RIGHT) &&
|
||||||
|
ev.getInventory().getType()==InventoryType.CRAFTING &&
|
||||||
ev.getWhoClicked().getInventory().getExtraContents()[0]==null && GenericFunctions.AllowedToBeEquippedToOffHand((Player)ev.getWhoClicked(),ev.getCurrentItem(),ev.getRawSlot()) &&
|
ev.getWhoClicked().getInventory().getExtraContents()[0]==null && GenericFunctions.AllowedToBeEquippedToOffHand((Player)ev.getWhoClicked(),ev.getCurrentItem(),ev.getRawSlot()) &&
|
||||||
((ev.getInventory().getType()!=InventoryType.WORKBENCH && ev.getRawSlot()>=0) ||
|
((ev.getInventory().getType()!=InventoryType.WORKBENCH && ev.getRawSlot()>=0) ||
|
||||||
(ev.getInventory().getType()==InventoryType.WORKBENCH && ev.getRawSlot()>9))) {
|
(ev.getInventory().getType()==InventoryType.WORKBENCH && ev.getRawSlot()>9))) {
|
||||||
@ -4907,7 +4932,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ev.getClick()==ClickType.RIGHT && Artifact.isMalleableBase(ev.getCurrentItem())) {
|
/*if (ev.getClick()==ClickType.RIGHT && Artifact.isMalleableBase(ev.getCurrentItem())) {
|
||||||
if (MalleableBaseQuest.getStatus(ev.getCurrentItem())==QuestStatus.UNFORMED) {
|
if (MalleableBaseQuest.getStatus(ev.getCurrentItem())==QuestStatus.UNFORMED) {
|
||||||
StartMalleableBaseQuest((Player)ev.getWhoClicked());
|
StartMalleableBaseQuest((Player)ev.getWhoClicked());
|
||||||
ev.setCancelled(true);
|
ev.setCancelled(true);
|
||||||
@ -4917,7 +4942,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
ev.setCancelled(true);
|
ev.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
//Left-Click for an Arrow Quiver.
|
//Left-Click for an Arrow Quiver.
|
||||||
if (ev.getClick()==ClickType.LEFT && ev.getCursor()!=null && ev.getCursor().getAmount()>0 &&
|
if (ev.getClick()==ClickType.LEFT && ev.getCursor()!=null && ev.getCursor().getAmount()>0 &&
|
||||||
@ -5861,6 +5886,13 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
CustomDamage.setupTrueDamage(ev);
|
CustomDamage.setupTrueDamage(ev);
|
||||||
ev.setDamage(DamageModifier.BASE, dmgdealt);
|
ev.setDamage(DamageModifier.BASE, dmgdealt);
|
||||||
log("BASE damage: "+ev.getDamage(DamageModifier.BASE),5);
|
log("BASE damage: "+ev.getDamage(DamageModifier.BASE),5);
|
||||||
|
if (ev.getEntity() instanceof ArmorStand) {
|
||||||
|
ArmorStand as = (ArmorStand)ev.getEntity();
|
||||||
|
if (as.isVisible() &&
|
||||||
|
!as.isInvulnerable()) {
|
||||||
|
as.setHealth(Math.max(as.getHealth()-dmgdealt, 0));
|
||||||
|
}
|
||||||
|
}
|
||||||
//Only a player can deal custom damage.
|
//Only a player can deal custom damage.
|
||||||
LivingEntity l = CustomDamage.getDamagerEntity(ev.getDamager());
|
LivingEntity l = CustomDamage.getDamagerEntity(ev.getDamager());
|
||||||
if (l instanceof Player) {
|
if (l instanceof Player) {
|
||||||
@ -6250,12 +6282,14 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
@EventHandler(priority=EventPriority.LOW,ignoreCancelled = true)
|
@EventHandler(priority=EventPriority.LOW,ignoreCancelled = true)
|
||||||
public void onLightningStrike(LightningStrikeEvent ev) {
|
public void onLightningStrike(LightningStrikeEvent ev) {
|
||||||
LightningStrike lightning = ev.getLightning();
|
LightningStrike lightning = ev.getLightning();
|
||||||
|
if (!lightning.isEffect()) {
|
||||||
for (int i=0;i<4;i++) {
|
for (int i=0;i<4;i++) {
|
||||||
Item it = lightning.getLocation().getWorld().dropItemNaturally(lightning.getLocation().add(0,2,0), Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE));
|
Item it = lightning.getLocation().getWorld().dropItemNaturally(lightning.getLocation().add(0,2,0), Artifact.createArtifactItem(ArtifactItem.MYSTERIOUS_ESSENCE));
|
||||||
it.setVelocity(new Vector(Math.random()*10-15,Math.random()*5,Math.random()*10-15));
|
it.setVelocity(new Vector(Math.random()*10-15,Math.random()*5,Math.random()*10-15));
|
||||||
//Make them move in a direction violently and spontaneously.
|
//Make them move in a direction violently and spontaneously.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void witherBlockEatingCanceller(EntityChangeBlockEvent event)
|
public void witherBlockEatingCanceller(EntityChangeBlockEvent event)
|
||||||
@ -7129,12 +7163,11 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority=EventPriority.LOW,ignoreCancelled = true)
|
@EventHandler(priority=EventPriority.LOW,ignoreCancelled = true)
|
||||||
public void onaPluginPickupEvent(PlayerGainItemEvent ev) {
|
public void onaPluginPickupEvent(PlayerGainItemEvent ev) {
|
||||||
TwosideKeeper.log("["+TwosideKeeper.getServerTickTime()+"] PlayerGainItemEvent fired w/ "+ev.getItemStack(), 1);
|
TwosideKeeper.log("["+TwosideKeeper.getServerTickTime()+"] PlayerGainItemEvent fired w/ "+ev.getItemStack(), 4);
|
||||||
Player p = ev.getPlayer();
|
Player p = ev.getPlayer();
|
||||||
ItemStack newstack = InventoryUtils.AttemptToFillPartialSlotsFirst(p,ev.getItemStack());
|
ItemStack newstack = InventoryUtils.AttemptToFillPartialSlotsFirst(p,ev.getItemStack());
|
||||||
if (newstack==null) {
|
if (newstack==null) {
|
||||||
@ -7366,6 +7399,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean AutoEquipItem(ItemStack item, Player p) {
|
public boolean AutoEquipItem(ItemStack item, Player p) {
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
if (item.getType().toString().contains("BOOTS") ||
|
if (item.getType().toString().contains("BOOTS") ||
|
||||||
item.getType().toString().contains("LEGGINGS") ||
|
item.getType().toString().contains("LEGGINGS") ||
|
||||||
item.getType().toString().contains("CHESTPLATE") ||
|
item.getType().toString().contains("CHESTPLATE") ||
|
||||||
@ -7378,7 +7412,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (armor.getType().toString().contains("BOOTS") &&
|
if (armor.getType().toString().contains("BOOTS") &&
|
||||||
p.getEquipment().getBoots()==null &&
|
p.getEquipment().getBoots()==null &&
|
||||||
(!PlayerMode.isRanger(p) || (armor.getType().toString().contains("LEATHER"))) &&
|
(!PlayerMode.isRanger(p) || (armor.getType().toString().contains("LEATHER"))) &&
|
||||||
!PlayerMode.isSlayer(p)) {
|
!PlayerMode.isSlayer(p) &&
|
||||||
|
pd.equiparmor) {
|
||||||
p.getEquipment().setBoots(armor);
|
p.getEquipment().setBoots(armor);
|
||||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||||
@ -7389,7 +7424,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (armor.getType().toString().contains("LEGGINGS") &&
|
if (armor.getType().toString().contains("LEGGINGS") &&
|
||||||
p.getEquipment().getLeggings()==null &&
|
p.getEquipment().getLeggings()==null &&
|
||||||
(!PlayerMode.isRanger(p) || (armor.getType().toString().contains("LEATHER"))) &&
|
(!PlayerMode.isRanger(p) || (armor.getType().toString().contains("LEATHER"))) &&
|
||||||
!PlayerMode.isSlayer(p)) {
|
!PlayerMode.isSlayer(p) &&
|
||||||
|
pd.equiparmor) {
|
||||||
p.getEquipment().setLeggings(armor);
|
p.getEquipment().setLeggings(armor);
|
||||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||||
@ -7400,7 +7436,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (armor.getType().toString().contains("CHESTPLATE") &&
|
if (armor.getType().toString().contains("CHESTPLATE") &&
|
||||||
p.getEquipment().getChestplate()==null &&
|
p.getEquipment().getChestplate()==null &&
|
||||||
(!PlayerMode.isRanger(p) || (armor.getType().toString().contains("LEATHER"))) &&
|
(!PlayerMode.isRanger(p) || (armor.getType().toString().contains("LEATHER"))) &&
|
||||||
!PlayerMode.isSlayer(p)) {
|
!PlayerMode.isSlayer(p) &&
|
||||||
|
pd.equiparmor) {
|
||||||
p.getEquipment().setChestplate(armor);
|
p.getEquipment().setChestplate(armor);
|
||||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||||
@ -7411,7 +7448,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (armor.getType().toString().contains("HELMET") &&
|
if (armor.getType().toString().contains("HELMET") &&
|
||||||
p.getEquipment().getHelmet()==null &&
|
p.getEquipment().getHelmet()==null &&
|
||||||
(!PlayerMode.isRanger(p) || (armor.getType().toString().contains("LEATHER"))) &&
|
(!PlayerMode.isRanger(p) || (armor.getType().toString().contains("LEATHER"))) &&
|
||||||
!PlayerMode.isSlayer(p)) {
|
!PlayerMode.isSlayer(p) &&
|
||||||
|
pd.equiparmor) {
|
||||||
p.getEquipment().setHelmet(armor);
|
p.getEquipment().setHelmet(armor);
|
||||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||||
@ -7422,7 +7460,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (armor.getType().toString().contains("SHIELD") &&
|
if (armor.getType().toString().contains("SHIELD") &&
|
||||||
(p.getEquipment().getItemInMainHand().getType()==Material.AIR || p.getInventory().getExtraContents()[0]==null) &&
|
(p.getEquipment().getItemInMainHand().getType()==Material.AIR || p.getInventory().getExtraContents()[0]==null) &&
|
||||||
!PlayerMode.isStriker(p) &&
|
!PlayerMode.isStriker(p) &&
|
||||||
(!PlayerMode.isRanger(p) || (armor.getType().toString().contains("LEATHER")))) {
|
(!PlayerMode.isRanger(p) || (armor.getType().toString().contains("LEATHER"))) &&
|
||||||
|
pd.equipweapons) {
|
||||||
if (p.getEquipment().getItemInMainHand().getType()==Material.AIR) {
|
if (p.getEquipment().getItemInMainHand().getType()==Material.AIR) {
|
||||||
p.getEquipment().setItemInMainHand(armor);
|
p.getEquipment().setItemInMainHand(armor);
|
||||||
} else {
|
} else {
|
||||||
@ -7435,7 +7474,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
return true;
|
return true;
|
||||||
} else
|
} else
|
||||||
if (armor.getType().toString().contains("_AXE") &&
|
if (armor.getType().toString().contains("_AXE") &&
|
||||||
(p.getEquipment().getItemInMainHand().getType()==Material.AIR || p.getInventory().getExtraContents()[0]==null)) {
|
(p.getEquipment().getItemInMainHand().getType()==Material.AIR || p.getInventory().getExtraContents()[0]==null) &&
|
||||||
|
pd.equipweapons) {
|
||||||
if (p.getEquipment().getItemInMainHand().getType()==Material.AIR) {
|
if (p.getEquipment().getItemInMainHand().getType()==Material.AIR) {
|
||||||
p.getEquipment().setItemInMainHand(armor);
|
p.getEquipment().setItemInMainHand(armor);
|
||||||
} else {
|
} else {
|
||||||
@ -7447,7 +7487,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
p.updateInventory();
|
p.updateInventory();
|
||||||
return true;
|
return true;
|
||||||
} else
|
} else
|
||||||
if (ArrowQuiver.isValidQuiver(armor) && p.getInventory().getExtraContents()[0]==null) {
|
if (ArrowQuiver.isValidQuiver(armor) && p.getInventory().getExtraContents()[0]==null &&
|
||||||
|
pd.equipweapons) {
|
||||||
p.getInventory().setExtraContents(new ItemStack[]{armor});
|
p.getInventory().setExtraContents(new ItemStack[]{armor});
|
||||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||||
@ -8886,7 +8927,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
|
|
||||||
if (PlayerMode.isDefender(p)) {
|
if (PlayerMode.isDefender(p)) {
|
||||||
hp+=10;
|
hp+=10;
|
||||||
GenericFunctions.logAndApplyPotionEffectToEntity(PotionEffectType.REGENERATION,60,(p.isBlocking())?1:0,p,false);
|
GenericFunctions.logAndApplyPotionEffectToEntity(PotionEffectType.REGENERATION,60,(p.isBlocking())?3:1,p,false);
|
||||||
}
|
}
|
||||||
if (PlayerMode.isBarbarian(p)) {
|
if (PlayerMode.isBarbarian(p)) {
|
||||||
double red = 1-CustomDamage.CalculateDamageReduction(1,p,null);
|
double red = 1-CustomDamage.CalculateDamageReduction(1,p,null);
|
||||||
@ -9313,6 +9354,10 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (all || critchance>0) {receiver.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"Critical Strike Chance: "+ChatColor.RESET+""+ChatColor.DARK_AQUA+df.format(critchance)+"%");}
|
if (all || critchance>0) {receiver.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"Critical Strike Chance: "+ChatColor.RESET+""+ChatColor.DARK_AQUA+df.format(critchance)+"%");}
|
||||||
double critdamage = CustomDamage.calculateCriticalStrikeMultiplier(p, p.getEquipment().getItemInMainHand())*100+100;
|
double critdamage = CustomDamage.calculateCriticalStrikeMultiplier(p, p.getEquipment().getItemInMainHand())*100+100;
|
||||||
if (all || (critdamage>200 && critchance>0)) {receiver.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"Crit Damage: "+ChatColor.RESET+""+ChatColor.DARK_AQUA+df.format(critdamage)+"%");}
|
if (all || (critdamage>200 && critchance>0)) {receiver.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"Crit Damage: "+ChatColor.RESET+""+ChatColor.DARK_AQUA+df.format(critdamage)+"%");}
|
||||||
|
double armorpen = CustomDamage.calculateArmorPen(p, 1.0, p.getEquipment().getItemInMainHand())/1.0d;
|
||||||
|
if (all || armorpen>0) {
|
||||||
|
receiver.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"Armor Penetration: "+ChatColor.RESET+""+ChatColor.DARK_AQUA+df.format(armorpen*100d)+"%");
|
||||||
|
}
|
||||||
if (PlayerMode.isDefender(p)) {
|
if (PlayerMode.isDefender(p)) {
|
||||||
double dodgechance=0.0;
|
double dodgechance=0.0;
|
||||||
if (!p.isBlocking()) {
|
if (!p.isBlocking()) {
|
||||||
|
@ -29,6 +29,7 @@ import sig.plugin.TwosideKeeper.HelperStructures.Common.ArrowQuiver;
|
|||||||
import sig.plugin.TwosideKeeper.HelperStructures.Common.GenericFunctions;
|
import sig.plugin.TwosideKeeper.HelperStructures.Common.GenericFunctions;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ItemCubeUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ItemCubeUtils;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ItemUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ItemUtils;
|
||||||
|
import sig.plugin.TwosideKeeper.HolidayEvents.Christmas;
|
||||||
|
|
||||||
public final class TwosideKeeperAPI {
|
public final class TwosideKeeperAPI {
|
||||||
//MONEY COMMANDS.
|
//MONEY COMMANDS.
|
||||||
@ -101,6 +102,41 @@ public final class TwosideKeeperAPI {
|
|||||||
return MonsterController.getLivingEntityDifficulty(m);
|
return MonsterController.getLivingEntityDifficulty(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Christmas Commands.
|
||||||
|
public static ItemStack getSmallCandyItem() {
|
||||||
|
return Christmas.getSmallCandyItem();
|
||||||
|
}
|
||||||
|
public static ItemStack getLargeCandyItem() {
|
||||||
|
return Christmas.getLargeCandyItem();
|
||||||
|
}
|
||||||
|
public static ItemStack getSourCandyItem() {
|
||||||
|
return Christmas.getSourCandyItem();
|
||||||
|
}
|
||||||
|
public static ItemStack getSweetCandyItem() {
|
||||||
|
return Christmas.getSweetCandyItem();
|
||||||
|
}
|
||||||
|
public static ItemStack getMysteryFlavorLollipopItem() {
|
||||||
|
return Christmas.getMysteryFlavorLollipopItem();
|
||||||
|
}
|
||||||
|
public static ItemStack getHolidayRageCandyBarItem() {
|
||||||
|
return Christmas.getHolidayRageCandyBarItem();
|
||||||
|
}
|
||||||
|
public static ItemStack getChristmasEventToken() {
|
||||||
|
return Christmas.getChristmasEventToken();
|
||||||
|
}
|
||||||
|
public static ItemStack getFireworkShooterBox() {
|
||||||
|
return Christmas.getFireworkShooterBox();
|
||||||
|
}
|
||||||
|
public static ItemStack getRocketBoosterItem() {
|
||||||
|
return Christmas.getRocketBoosterItem();
|
||||||
|
}
|
||||||
|
public static ItemStack getSantaDimensionalBox() {
|
||||||
|
return Christmas.getSantaDimensionalBox();
|
||||||
|
}
|
||||||
|
public static ItemStack getWinterSolsticeAugury() {
|
||||||
|
return Christmas.getWinterSolsticeAugury();
|
||||||
|
}
|
||||||
|
|
||||||
//Artifact Commands.
|
//Artifact Commands.
|
||||||
public static boolean isArtifactItem(ItemStack item) {
|
public static boolean isArtifactItem(ItemStack item) {
|
||||||
return Artifact.isArtifact(item);
|
return Artifact.isArtifact(item);
|
||||||
|
@ -117,7 +117,7 @@ final class runServerHeartbeat implements Runnable {
|
|||||||
TwosideKeeper.LASTSERVERCHECK=serverTickTime;
|
TwosideKeeper.LASTSERVERCHECK=serverTickTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Bukkit.getWorld("world").getTime()>=12000) {
|
if (Bukkit.getWorld("world").getTime()>=12000 || Bukkit.getWorld("world").isThundering()) {
|
||||||
Collection<? extends Player> players = ServerHeartbeat.getServer().getOnlinePlayers();
|
Collection<? extends Player> players = ServerHeartbeat.getServer().getOnlinePlayers();
|
||||||
//Count the number of players sleeping. Compare to "sleepingplayers" count.
|
//Count the number of players sleeping. Compare to "sleepingplayers" count.
|
||||||
TwosideKeeper.log("[DEBUG] Time: "+Bukkit.getWorld("world").getTime()+" Full Time: "+Bukkit.getWorld("world").getFullTime() + " SERVERTICKTIME: "+serverTickTime,4);
|
TwosideKeeper.log("[DEBUG] Time: "+Bukkit.getWorld("world").getTime()+" Full Time: "+Bukkit.getWorld("world").getFullTime() + " SERVERTICKTIME: "+serverTickTime,4);
|
||||||
@ -605,6 +605,7 @@ final class runServerHeartbeat implements Runnable {
|
|||||||
public static void runVacuumCubeSuckup(Player p) {
|
public static void runVacuumCubeSuckup(Player p) {
|
||||||
if (InventoryUtils.isCarryingVacuumCube(p)) {
|
if (InventoryUtils.isCarryingVacuumCube(p)) {
|
||||||
//Suck up nearby item entities.
|
//Suck up nearby item entities.
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
List<Entity> ents = p.getNearbyEntities(6, 6, 6);
|
List<Entity> ents = p.getNearbyEntities(6, 6, 6);
|
||||||
int count=0;
|
int count=0;
|
||||||
for (Entity ent : ents) {
|
for (Entity ent : ents) {
|
||||||
@ -658,8 +659,10 @@ final class runServerHeartbeat implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (pd.vacuumsuckup) {
|
||||||
ent.setVelocity(new Vector(xvel,yvel,zvel));
|
ent.setVelocity(new Vector(xvel,yvel,zvel));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/*if (ent.getLocation().getX()<p.getLocation().getX()) {
|
/*if (ent.getLocation().getX()<p.getLocation().getX()) {
|
||||||
ent.setVelocity(ent.getVelocity().setX(SPD*(10-Math.min(10,Math.abs()))));
|
ent.setVelocity(ent.getVelocity().setX(SPD*(10-Math.min(10,Math.abs()))));
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user