Fixed all bug reports that came in earlier today. Filter Cubes work
properly again, Vacuum Cube bugs are gone (for players with old profiles and /vac turned off), and shooting mobs above their heads is fixed.
This commit is contained in:
parent
f5641c7e88
commit
5b4b52d56d
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.15
|
version: 3.10.16
|
||||||
loadbefore: [aPlugin]
|
loadbefore: [aPlugin]
|
||||||
commands:
|
commands:
|
||||||
money:
|
money:
|
||||||
|
@ -73,6 +73,7 @@ import sig.plugin.TwosideKeeper.HelperStructures.Common.BaublePouch;
|
|||||||
import sig.plugin.TwosideKeeper.HelperStructures.Common.GenericFunctions;
|
import sig.plugin.TwosideKeeper.HelperStructures.Common.GenericFunctions;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Effects.TemporaryBlockNode;
|
import sig.plugin.TwosideKeeper.HelperStructures.Effects.TemporaryBlockNode;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ArtifactUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ArtifactUtils;
|
||||||
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.DebugUtils;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.EntityUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.EntityUtils;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.IndicatorType;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.IndicatorType;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.SoundUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.SoundUtils;
|
||||||
@ -103,6 +104,7 @@ public class CustomDamage {
|
|||||||
public static final int IS_THORNS = 8; //System Flag. Used for telling a player structure their last hit was with thorns.
|
public static final int IS_THORNS = 8; //System Flag. Used for telling a player structure their last hit was with thorns.
|
||||||
|
|
||||||
static public boolean ApplyDamage(double damage, Entity damager, LivingEntity target, ItemStack weapon, String reason) {
|
static public boolean ApplyDamage(double damage, Entity damager, LivingEntity target, ItemStack weapon, String reason) {
|
||||||
|
TwosideKeeper.log("Weapon: "+weapon, 0);
|
||||||
return ApplyDamage(damage,damager,target,weapon,reason,NONE);
|
return ApplyDamage(damage,damager,target,weapon,reason,NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -193,6 +195,13 @@ public class CustomDamage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void UpdateWeaponUsedForShooting(Entity damager) {
|
||||||
|
if (getDamagerEntity(damager) instanceof Player) {
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure((Player)(getDamagerEntity(damager)));
|
||||||
|
pd.weaponUsedForShooting=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static double CalculateBonusTrueDamage(Entity damager, LivingEntity target, double dmg) {
|
private static double CalculateBonusTrueDamage(Entity damager, LivingEntity target, double dmg) {
|
||||||
//TwosideKeeper.log("Run here. Damage: "+dmg, 0);
|
//TwosideKeeper.log("Run here. Damage: "+dmg, 0);
|
||||||
if (getDamagerEntity(damager) instanceof Player) {
|
if (getDamagerEntity(damager) instanceof Player) {
|
||||||
@ -223,14 +232,17 @@ public class CustomDamage {
|
|||||||
if (shooter!=null && (shooter instanceof Player)) {
|
if (shooter!=null && (shooter instanceof Player)) {
|
||||||
if (weapon!=null) {
|
if (weapon!=null) {
|
||||||
dmg+=getBaseWeaponDamage(damage, weapon, damager, target, reason);
|
dmg+=getBaseWeaponDamage(damage, weapon, damager, target, reason);
|
||||||
|
TwosideKeeper.log("Weapon: "+weapon, 0);
|
||||||
|
DebugUtils.showStackTrace();
|
||||||
if (weapon.getType()==Material.BOW) {
|
if (weapon.getType()==Material.BOW) {
|
||||||
if ((damager instanceof Projectile)) {
|
if ((damager instanceof Projectile)) {
|
||||||
TwosideKeeper.log("This is a projectile! Reason: "+reason+", Damager: "+damager.toString(), 5);
|
TwosideKeeper.log("This is a projectile! Reason: "+reason+", Damager: "+damager.toString(), 0);
|
||||||
dmg += addToPlayerLogger(damager,target,"Custom Arrow",calculateCustomArrowDamageIncrease(weapon,damager,target));
|
dmg += addToPlayerLogger(damager,target,"Custom Arrow",calculateCustomArrowDamageIncrease(weapon,damager,target));
|
||||||
dmg += addMultiplierToPlayerLogger(damager,target,"Ranger Mult",dmg * calculateRangerMultiplier(weapon,damager));
|
dmg += addMultiplierToPlayerLogger(damager,target,"Ranger Mult",dmg * calculateRangerMultiplier(weapon,damager));
|
||||||
double headshotdmg = addMultiplierToPlayerLogger(damager,target,"Headshot Mult",dmg * calculateHeadshotMultiplier(weapon,damager,target));
|
double headshotdmg = addMultiplierToPlayerLogger(damager,target,"Headshot Mult",dmg * calculateHeadshotMultiplier(weapon,damager,target));
|
||||||
if (headshotdmg!=0.0) {headshot=true;}
|
if (headshotdmg!=0.0) {headshot=true;}
|
||||||
dmg += headshotdmg;
|
dmg += headshotdmg;
|
||||||
|
TwosideKeeper.log("Damage currently is: "+dmg, 0);
|
||||||
dmg += addMultiplierToPlayerLogger(damager,target,"Bow Drawback Mult",dmg * calculateBowDrawbackMultiplier(weapon,damager,target));
|
dmg += addMultiplierToPlayerLogger(damager,target,"Bow Drawback Mult",dmg * calculateBowDrawbackMultiplier(weapon,damager,target));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,8 +42,10 @@ public class InventoryUpdateEvent extends Event{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void TriggerUpdateInventoryEvent(Player p, ItemStack item, UpdateReason reason) {
|
public static void TriggerUpdateInventoryEvent(Player p, ItemStack item, UpdateReason reason) {
|
||||||
|
if (item!=null) {
|
||||||
InventoryUpdateEvent ev = new InventoryUpdateEvent(p, item, reason);
|
InventoryUpdateEvent ev = new InventoryUpdateEvent(p, item, reason);
|
||||||
Bukkit.getPluginManager().callEvent(ev);
|
Bukkit.getPluginManager().callEvent(ev);
|
||||||
|
}
|
||||||
//TwosideKeeper.log("Triggered because of "+reason, 0);
|
//TwosideKeeper.log("Triggered because of "+reason, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,6 +44,7 @@ public class LivingEntityStructure {
|
|||||||
public long lastBurnTick=0;
|
public long lastBurnTick=0;
|
||||||
public float MoveSpeedMultBeforeCripple=1f;
|
public float MoveSpeedMultBeforeCripple=1f;
|
||||||
public Channel currentChannel=null;
|
public Channel currentChannel=null;
|
||||||
|
public boolean isImportantGlowEnemy=true;
|
||||||
|
|
||||||
final static String MODIFIED_NAME_CODE = ChatColor.RESET+""+ChatColor.RESET+""+ChatColor.RESET;
|
final static String MODIFIED_NAME_CODE = ChatColor.RESET+""+ChatColor.RESET+""+ChatColor.RESET;
|
||||||
final static String MODIFIED_NAME_DELIMITER = ChatColor.RESET+";"+ChatColor.RESET;
|
final static String MODIFIED_NAME_DELIMITER = ChatColor.RESET+";"+ChatColor.RESET;
|
||||||
@ -193,7 +194,8 @@ public class LivingEntityStructure {
|
|||||||
//Updates the glow color for all players. We base it on default statuses here. CALL THIS INSTEAD OF
|
//Updates the glow color for all players. We base it on default statuses here. CALL THIS INSTEAD OF
|
||||||
// SETTING THE GLOW DIRECTLY ANYMORE!
|
// SETTING THE GLOW DIRECTLY ANYMORE!
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||||
if (p!=null && p.isValid() && !p.isDead()) {
|
//if (p!=null && p.isValid() && !p.isDead()) {
|
||||||
|
if (isImportantGlowEnemy) {
|
||||||
if (GenericFunctions.isSuppressed(m)) {
|
if (GenericFunctions.isSuppressed(m)) {
|
||||||
setGlow(p,GlowAPI.Color.BLACK);
|
setGlow(p,GlowAPI.Color.BLACK);
|
||||||
} else
|
} else
|
||||||
@ -210,11 +212,13 @@ public class LivingEntityStructure {
|
|||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if (getLeader() || (m instanceof Monster && GenericFunctions.isBossMonster((Monster)m))) {
|
if (getLeader() || (m instanceof Monster && GenericFunctions.isBossMonster((Monster)m))) {
|
||||||
|
//TwosideKeeper.log("Monster "+GenericFunctions.getDisplayName(m)+" is a Leader. Set the Glow.", 0);
|
||||||
setGlow(p,GlowAPI.Color.DARK_RED);
|
setGlow(p,GlowAPI.Color.DARK_RED);
|
||||||
|
//TwosideKeeper.log("Is glowing? "+GlowAPI.isGlowing(m, p)+", Glow color list contains key? "+glowcolorlist.containsKey(p.getUniqueId()), 0);
|
||||||
} else
|
} else
|
||||||
if (GenericFunctions.isIsolatedTarget(m, p)) {
|
if (GenericFunctions.isIsolatedTarget(m, p)) {
|
||||||
setGlow(p,GlowAPI.Color.WHITE);
|
setGlow(p,GlowAPI.Color.WHITE);
|
||||||
}
|
} else
|
||||||
if (Knight.isKnight(m)) {
|
if (Knight.isKnight(m)) {
|
||||||
setGlow(p,GlowAPI.Color.AQUA);
|
setGlow(p,GlowAPI.Color.AQUA);
|
||||||
}
|
}
|
||||||
@ -225,11 +229,18 @@ public class LivingEntityStructure {
|
|||||||
GlowAPI.setGlowing(m, null, p);
|
GlowAPI.setGlowing(m, null, p);
|
||||||
glowcolorlist.remove(p.getUniqueId());
|
glowcolorlist.remove(p.getUniqueId());
|
||||||
}
|
}
|
||||||
|
isImportantGlowEnemy=false;
|
||||||
|
}
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
if (!GlowAPI.isGlowing(m, p) && glowcolorlist.containsKey(p.getUniqueId())) {
|
if (!GlowAPI.isGlowing(m, p) && glowcolorlist.containsKey(p.getUniqueId())) {
|
||||||
|
//TwosideKeeper.log("Set glow of "+GenericFunctions.getDisplayName(m)+" to "+glowcolorlist.get(p.getUniqueId()), 0);
|
||||||
GlowAPI.setGlowing(m, glowcolorlist.get(p.getUniqueId()), p);
|
GlowAPI.setGlowing(m, glowcolorlist.get(p.getUniqueId()), p);
|
||||||
} else
|
} else
|
||||||
if (GlowAPI.isGlowing(m, p) && (p==null || !glowcolorlist.get(p.getUniqueId()).equals(GlowAPI.getGlowColor(m, p)))) {
|
if (GlowAPI.isGlowing(m, p) && (GlowAPI.getGlowColor(m, p)==null || !glowcolorlist.get(p.getUniqueId()).equals(GlowAPI.getGlowColor(m, p)))) {
|
||||||
|
if (GlowAPI.getGlowColor(m, p)==null) {
|
||||||
|
GlowAPI.setGlowing(m, null, p);
|
||||||
|
} else {
|
||||||
GlowAPI.setGlowing(m, glowcolorlist.get(p.getUniqueId()), p);
|
GlowAPI.setGlowing(m, glowcolorlist.get(p.getUniqueId()), p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -784,7 +784,11 @@ public class Knight extends CustomMonster{
|
|||||||
Spider ss = DarkSpider.InitializeDarkSpider(m);
|
Spider ss = DarkSpider.InitializeDarkSpider(m);
|
||||||
//ss.setPassenger(s);
|
//ss.setPassenger(s);
|
||||||
//Determine distance from Twoside for Difficulty.
|
//Determine distance from Twoside for Difficulty.
|
||||||
double chancer = TwosideKeeper.TWOSIDE_LOCATION.distanceSquared(m.getLocation());
|
Location compareloc = TwosideKeeper.TWOSIDE_LOCATION;
|
||||||
|
if (!compareloc.getWorld().equals(s.getWorld())) {
|
||||||
|
compareloc = new Location(s.getWorld(),0,0,0);
|
||||||
|
}
|
||||||
|
double chancer = compareloc.distanceSquared(m.getLocation());
|
||||||
if (Math.random()*chancer<4000000) {
|
if (Math.random()*chancer<4000000) {
|
||||||
MonsterController.convertLivingEntity(m, LivingEntityDifficulty.T1_MINIBOSS);
|
MonsterController.convertLivingEntity(m, LivingEntityDifficulty.T1_MINIBOSS);
|
||||||
} else
|
} else
|
||||||
|
@ -208,7 +208,7 @@ 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 vacuumsuckup=true;
|
||||||
public boolean equipweapons=true;
|
public boolean equipweapons=true;
|
||||||
public boolean equiparmor=true;
|
public boolean equiparmor=true;
|
||||||
public long lastpotionparticles=0;
|
public long lastpotionparticles=0;
|
||||||
@ -231,6 +231,7 @@ public class PlayerStructure {
|
|||||||
public HashMap<String,HashMap<Integer,Integer>> itemsets = new HashMap<String,HashMap<Integer,Integer>>(); //HashMap<"Set Name",HashMap<"Tier","Amt">>
|
public HashMap<String,HashMap<Integer,Integer>> itemsets = new HashMap<String,HashMap<Integer,Integer>>(); //HashMap<"Set Name",HashMap<"Tier","Amt">>
|
||||||
public boolean damagenumbers=true;
|
public boolean damagenumbers=true;
|
||||||
public OptionsMenu optionsmenu;
|
public OptionsMenu optionsmenu;
|
||||||
|
public ItemStack weaponUsedForShooting;
|
||||||
|
|
||||||
//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")
|
||||||
@ -288,7 +289,7 @@ 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.vacuumsuckup=true;
|
||||||
this.equipweapons=true;
|
this.equipweapons=true;
|
||||||
this.equiparmor=true;
|
this.equiparmor=true;
|
||||||
this.customtitle = new AdvancedTitle(p);
|
this.customtitle = new AdvancedTitle(p);
|
||||||
@ -396,7 +397,7 @@ 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("vacuumsuckup", vacuumsuckup);
|
||||||
workable.set("equipweapons", equipweapons);
|
workable.set("equipweapons", equipweapons);
|
||||||
workable.set("equiparmor", equiparmor);
|
workable.set("equiparmor", equiparmor);
|
||||||
workable.set("healthbardisplay", healthbardisplay);
|
workable.set("healthbardisplay", healthbardisplay);
|
||||||
@ -517,7 +518,7 @@ 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("vacuumsuckup", vacuumsuckup);
|
||||||
workable.addDefault("equipweapons", equipweapons);
|
workable.addDefault("equipweapons", equipweapons);
|
||||||
workable.addDefault("equiparmor", equiparmor);
|
workable.addDefault("equiparmor", equiparmor);
|
||||||
workable.addDefault("playermode_on_death", playermode_on_death.name());
|
workable.addDefault("playermode_on_death", playermode_on_death.name());
|
||||||
@ -605,7 +606,7 @@ public class PlayerStructure {
|
|||||||
this.lastusedwindslash = workable.getLong("COOLDOWN_lastusedwindslash");
|
this.lastusedwindslash = workable.getLong("COOLDOWN_lastusedwindslash");
|
||||||
this.lastusedbeastwithin = workable.getLong("COOLDOWN_lastusedbeastwithin");
|
this.lastusedbeastwithin = workable.getLong("COOLDOWN_lastusedbeastwithin");
|
||||||
this.lastusedunstoppableteam = workable.getLong("COOLDOWN_lastusedunstoppableteam");
|
this.lastusedunstoppableteam = workable.getLong("COOLDOWN_lastusedunstoppableteam");
|
||||||
this.vacuumsuckup = workable.getBoolean("vacuumsuckup");
|
//this.vacuumsuckup = workable.getBoolean("vacuumsuckup");
|
||||||
this.equipweapons = workable.getBoolean("equipweapons");
|
this.equipweapons = workable.getBoolean("equipweapons");
|
||||||
this.equiparmor = workable.getBoolean("equiparmor");
|
this.equiparmor = workable.getBoolean("equiparmor");
|
||||||
this.rangermode = BowMode.valueOf(workable.getString("rangermode"));
|
this.rangermode = BowMode.valueOf(workable.getString("rangermode"));
|
||||||
|
@ -534,7 +534,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
|
|
||||||
public static List<String> weather_watch_users = new ArrayList<String>();
|
public static List<String> weather_watch_users = new ArrayList<String>();
|
||||||
|
|
||||||
public final static int MAX_PIGMEN_AGGRO_AT_ONCE = 4;
|
public final static int MAX_PIGMEN_AGGRO_AT_ONCE = 8;
|
||||||
|
|
||||||
public static long lastPigmanAggroTime = 0;
|
public static long lastPigmanAggroTime = 0;
|
||||||
public static long pigmanAggroCount = 0;
|
public static long pigmanAggroCount = 0;
|
||||||
@ -2474,13 +2474,6 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
p.sendMessage(aPlugin.API.getHabitatMap(p, 7));
|
p.sendMessage(aPlugin.API.getHabitatMap(p, 7));
|
||||||
return true;
|
return true;
|
||||||
} else
|
} 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")) {
|
if (cmd.getName().equalsIgnoreCase("equip_weapon")) {
|
||||||
Player p = (Player)sender;
|
Player p = (Player)sender;
|
||||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
@ -3325,6 +3318,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
TemporaryBlock.createTemporaryBlockCircle(proj.getLocation().add(0,-2,0), 2, Material.REDSTONE_BLOCK, (byte)0, 100, "FIRECESSPOOL");
|
TemporaryBlock.createTemporaryBlockCircle(proj.getLocation().add(0,-2,0), 2, Material.REDSTONE_BLOCK, (byte)0, 100, "FIRECESSPOOL");
|
||||||
proj.setMetadata("FIREPOOL", new FixedMetadataValue(this,true));
|
proj.setMetadata("FIREPOOL", new FixedMetadataValue(this,true));
|
||||||
}*/
|
}*/
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
//pd.weaponUsedForShooting=null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ev.getEntity() instanceof Arrow) {
|
if (ev.getEntity() instanceof Arrow) {
|
||||||
@ -5626,7 +5621,14 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Bukkit.getScheduler().runTaskLater(TwosideKeeper.plugin, ()->{
|
||||||
|
if (ev.getClick()==ClickType.LEFT) {
|
||||||
InventoryUpdateEvent.TriggerUpdateInventoryEvent(player,ev.getCursor(),UpdateReason.INVENTORYUPDATE);
|
InventoryUpdateEvent.TriggerUpdateInventoryEvent(player,ev.getCursor(),UpdateReason.INVENTORYUPDATE);
|
||||||
|
InventoryUpdateEvent.TriggerUpdateInventoryEvent(player,ev.getCurrentItem(),UpdateReason.INVENTORYUPDATE);
|
||||||
|
} else {
|
||||||
|
InventoryUpdateEvent.TriggerUpdateInventoryEvent(player,new ItemStack(Material.HOPPER_MINECART),UpdateReason.INVENTORYUPDATE);
|
||||||
|
}
|
||||||
|
},1);
|
||||||
|
|
||||||
if (DeathManager.deathStructureExists(player) && ev.getInventory().getTitle().equalsIgnoreCase("Death Loot")) {
|
if (DeathManager.deathStructureExists(player) && ev.getInventory().getTitle().equalsIgnoreCase("Death Loot")) {
|
||||||
//See how many items are in our inventory. Determine final balance.
|
//See how many items are in our inventory. Determine final balance.
|
||||||
@ -6829,6 +6831,11 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
pd.customtitle.updateSideTitleStats(p);
|
pd.customtitle.updateSideTitleStats(p);
|
||||||
ev.setCancelled(true);
|
ev.setCancelled(true);
|
||||||
} else {
|
} else {
|
||||||
|
if (weapon.getType()==Material.AIR && pd.weaponUsedForShooting!=null) {
|
||||||
|
TwosideKeeper.log("Using weapon "+pd.weaponUsedForShooting+" as a substitute", 0);
|
||||||
|
weapon=pd.weaponUsedForShooting.clone();
|
||||||
|
pd.weaponUsedForShooting=null;
|
||||||
|
}
|
||||||
CustomDamage.ApplyDamage(0, ev.getDamager(), (LivingEntity)ev.getEntity(), weapon, null);
|
CustomDamage.ApplyDamage(0, ev.getDamager(), (LivingEntity)ev.getEntity(), weapon, null);
|
||||||
if (ev.getDamager() instanceof Projectile) {
|
if (ev.getDamager() instanceof Projectile) {
|
||||||
Projectile proj = (Projectile)ev.getDamager();
|
Projectile proj = (Projectile)ev.getDamager();
|
||||||
@ -7275,7 +7282,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
}
|
}
|
||||||
if (ev.getEntity() instanceof LivingEntity &&
|
if (ev.getEntity() instanceof LivingEntity &&
|
||||||
ev.getReason()==TargetReason.PIG_ZOMBIE_TARGET) {
|
ev.getReason()==TargetReason.PIG_ZOMBIE_TARGET) {
|
||||||
if (pigmanAggroCount<MAX_PIGMEN_AGGRO_AT_ONCE) {
|
if (pigmanAggroCount<MAX_PIGMEN_AGGRO_AT_ONCE && lastPigmanAggroTime+200<=TwosideKeeper.getServerTickTime()) {
|
||||||
pigmanAggroCount++;
|
pigmanAggroCount++;
|
||||||
lastPigmanAggroTime=TwosideKeeper.getServerTickTime();
|
lastPigmanAggroTime=TwosideKeeper.getServerTickTime();
|
||||||
} else {
|
} else {
|
||||||
@ -7994,6 +8001,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
},1);
|
},1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ItemSet.updateItemSets(p);
|
||||||
|
setPlayerMaxHealth(p);
|
||||||
|
|
||||||
pd.lastdeath=getServerTickTime();
|
pd.lastdeath=getServerTickTime();
|
||||||
pd.hasDied=false;
|
pd.hasDied=false;
|
||||||
pd.slayermodehp=10;
|
pd.slayermodehp=10;
|
||||||
@ -8435,8 +8445,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
long time = System.nanoTime();
|
long time = System.nanoTime();
|
||||||
long totaltime = System.nanoTime();
|
long totaltime = System.nanoTime();
|
||||||
|
|
||||||
|
Bukkit.getScheduler().runTaskLater(TwosideKeeper.plugin, ()->{
|
||||||
InventoryUpdateEvent.TriggerUpdateInventoryEvent(p,ev.getItem().getItemStack(),UpdateReason.PICKEDUPITEM);
|
InventoryUpdateEvent.TriggerUpdateInventoryEvent(p,ev.getItem().getItemStack(),UpdateReason.PICKEDUPITEM);
|
||||||
TwosideKeeper.PickupLogger.AddEntry("Trigger Update Inventory Event", (int)(System.nanoTime()-time));time=System.nanoTime();
|
}, 1);
|
||||||
ItemStack newstack = InventoryUtils.AttemptToFillPartialSlotsFirst(p,ev.getItem().getItemStack());
|
ItemStack newstack = InventoryUtils.AttemptToFillPartialSlotsFirst(p,ev.getItem().getItemStack());
|
||||||
TwosideKeeper.PickupLogger.AddEntry("Fill Partial Slots First", (int)(System.nanoTime()-time));time=System.nanoTime();
|
TwosideKeeper.PickupLogger.AddEntry("Fill Partial Slots First", (int)(System.nanoTime()-time));time=System.nanoTime();
|
||||||
//TwosideKeeper.log(" New Stack is: "+newstack,0);
|
//TwosideKeeper.log(" New Stack is: "+newstack,0);
|
||||||
@ -8445,7 +8456,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
if (ev.getRemaining()>0) {
|
if (ev.getRemaining()>0) {
|
||||||
Item it = ev.getItem();
|
Item it = ev.getItem();
|
||||||
it.getItemStack().setAmount(ev.getRemaining());
|
it.getItemStack().setAmount(ev.getRemaining());
|
||||||
GenericFunctions.giveItem(p, it.getItemStack());
|
//GenericFunctions.giveItem(p, it.getItemStack());
|
||||||
|
GenericFunctions.dropItem(it.getItemStack(), p.getLocation());
|
||||||
}
|
}
|
||||||
ev.getItem().remove();ev.setCancelled(true);return;}
|
ev.getItem().remove();ev.setCancelled(true);return;}
|
||||||
TwosideKeeper.PickupLogger.AddEntry("Pickup Item when it's null", (int)(System.nanoTime()-time));time=System.nanoTime();
|
TwosideKeeper.PickupLogger.AddEntry("Pickup Item when it's null", (int)(System.nanoTime()-time));time=System.nanoTime();
|
||||||
@ -8965,9 +8977,11 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
|
|
||||||
if (arr.getShooter() instanceof Player) {
|
if (arr.getShooter() instanceof Player) {
|
||||||
Player p = (Player)(arr.getShooter());
|
Player p = (Player)(arr.getShooter());
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(TwosideKeeper.plugin, ()->{
|
Bukkit.getScheduler().scheduleSyncDelayedTask(TwosideKeeper.plugin, ()->{
|
||||||
ItemStack tempitem = p.getEquipment().getItemInMainHand().clone();
|
ItemStack tempitem = p.getEquipment().getItemInMainHand().clone();
|
||||||
Location loc = p.getLocation().clone();
|
Location loc = p.getLocation().clone();
|
||||||
|
pd.weaponUsedForShooting = tempitem;
|
||||||
p.getEquipment().setItemInMainHand(new ItemStack(Material.AIR));
|
p.getEquipment().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(TwosideKeeper.plugin, ()->{
|
Bukkit.getScheduler().scheduleSyncDelayedTask(TwosideKeeper.plugin, ()->{
|
||||||
if (p!=null && p.isValid()) {
|
if (p!=null && p.isValid()) {
|
||||||
|
@ -1033,10 +1033,8 @@ 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