diff --git a/TwosideKeeper.jar b/TwosideKeeper.jar
index 157dfb5..e67e3c1 100644
Binary files a/TwosideKeeper.jar and b/TwosideKeeper.jar differ
diff --git a/src/plugin.yml b/src/plugin.yml
index 0eb1b64..2880779 100644
--- a/src/plugin.yml
+++ b/src/plugin.yml
@@ -1,6 +1,6 @@
name: TwosideKeeper
main: sig.plugin.TwosideKeeper.TwosideKeeper
-version: 3.12.1
+version: 3.12.1a
loadbefore: [aPlugin]
commands:
money:
diff --git a/src/sig/plugin/TwosideKeeper/CustomDamage.java b/src/sig/plugin/TwosideKeeper/CustomDamage.java
index 73f84bb..951eb0d 100644
--- a/src/sig/plugin/TwosideKeeper/CustomDamage.java
+++ b/src/sig/plugin/TwosideKeeper/CustomDamage.java
@@ -739,8 +739,8 @@ public class CustomDamage {
}
if (getDamagerEntity(damager) instanceof Enderman) {
if (MonsterController.getMonsterDifficulty(((Monster)getDamagerEntity(damager)))==MonsterDifficulty.HELLFIRE) {
- for (int i=0;i<4;i++) {
- if (Math.random()<=0.2) {
+ for (int i=0;i<4;i++) {
+ if (Math.random()<=0.2) {
LivingEntity mm = MonsterController.spawnAdjustedMonster(MonsterType.ENDERMITE, getDamagerEntity(damager).getLocation().add(0,1,0));
mm.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,Integer.MAX_VALUE,2));
}
@@ -2796,6 +2796,13 @@ public class CustomDamage {
case CHAINMAIL_LEGGINGS:
case CHAINMAIL_CHESTPLATE:
case CHAINMAIL_HELMET: {
+ if (target instanceof Player) {
+ Player p = (Player)target;
+ if (PVP.isPvPing(p)) {
+ dmgreduction+=10*((isBlockArmor)?2:1);
+ break;
+ }
+ }
dmgreduction+=6*((isBlockArmor)?2:1);
}break;
case IRON_BOOTS:
@@ -3276,7 +3283,11 @@ public class CustomDamage {
LivingEntity shooter = getDamagerEntity(damager);
if (shooter instanceof Player) {
if (PlayerMode.isRanger((Player)shooter)) {
- return 4.0;
+ if (PVP.isPvPing((Player)shooter)) {
+ return 0.0;
+ } else {
+ return 3.0;
+ }
}
}
return 0.0;
@@ -4191,7 +4202,7 @@ public class CustomDamage {
mult+=2.0;
}
if (PVP.isPvPing((Player)shooter)) {
- mult /= 4.0;
+ mult /= 3.0;
}
if (ItemSet.meetsSlayerSwordConditions(ItemSet.ASSASSIN, 18, 2, (Player)shooter)) {
Material name = ((Player)shooter).getEquipment().getItemInMainHand().getType();
diff --git a/src/sig/plugin/TwosideKeeper/HelperStructures/ArtifactAbility.java b/src/sig/plugin/TwosideKeeper/HelperStructures/ArtifactAbility.java
index 45ba8ea..b3d2492 100644
--- a/src/sig/plugin/TwosideKeeper/HelperStructures/ArtifactAbility.java
+++ b/src/sig/plugin/TwosideKeeper/HelperStructures/ArtifactAbility.java
@@ -30,7 +30,7 @@ public enum ArtifactAbility {
//Weapon Abilities
DAMAGE("Strike","Improves Base Damage by [VAL]",new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},
- new PVPValue(30,1.0),10000,1,UpgradePath.BASIC,1),
+ new PVPValue(15,1.0),10000,1,UpgradePath.BASIC,1),
ARMOR_PEN("Piercing","[VAL]% of your damage is ignored by resistances. ([PENDMG] damage)",new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},
new PVPValue(30,1.0),100,1,UpgradePath.BASIC,1),
EXECUTION("Execute","Deals [VAL] extra damage for every 20% of target's missing health.",new double[]{0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3},
@@ -59,9 +59,9 @@ public enum ArtifactAbility {
//Armor abilities
DAMAGE_REDUCTION("Defense","Increases Base Damage reduction by [VAL]%\n\n"+PlayerMode.RANGER.getColor()+PlayerMode.RANGER.getName()+" Mode "+ChatColor.WHITE+" only receives half the effect.",new double[]{0.245,0.245,0.245,0.245,0.245,0.245,0.245,0.245,0.245,0.245,0.245,0.245,0.245,0.245,0.245,0.245,0.245},
- new PVPValue(80,0.245),100,1,UpgradePath.ARMOR,1),
+ new PVPValue(50,0.245),100,1,UpgradePath.ARMOR,1),
HEALTH("Health","Increases Maximum Health by [VAL].\n\n"+PlayerMode.RANGER.getColor()+PlayerMode.RANGER.getName()+" Mode "+ChatColor.WHITE+" only receives half the effect.",new double[]{0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25},
- new PVPValue(40,0.25),10000,1,UpgradePath.ARMOR,1),
+ new PVPValue(30,0.25),10000,1,UpgradePath.ARMOR,1),
HEALTH_REGEN("Regeneration","Regenerates an extra [VAL] health every 5 seconds.",new double[]{0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125},
new PVPValue(1,0.125),10000,1,UpgradePath.ARMOR,1),
STATUS_EFFECT_RESISTANCE("Resistance","When a debuff is applied, there is a [VAL]% chance to remove it.",new double[]{0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25},
@@ -100,9 +100,9 @@ public enum ArtifactAbility {
+ "Suppression prevents movement, attacking, exploding, and teleportation."+LevelCost(10),new double[]{0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02},
new PVPValue(10,0.02),100,10,UpgradePath.SHOVEL,10),
ERUPTION("Eruption","Sneak while Left-clicking a mob to damage mobs for [ERUPTIONVAL] damage and knock them up. The eruption also destroys the ground beneath you.",new double[]{3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0},
- new PVPValue(30,3.0),10000,40,UpgradePath.SHOVEL,1),
+ new PVPValue(15,3.0),10000,40,UpgradePath.SHOVEL,1),
EARTHWAVE("Earth Wave","While in mid-air, right-click to instantly slam into the ground and launch soft blocks. This attack ignores fall damage. The larger the fall, the larger the wave.\n\nDeals [EARTHWAVEVAL] damage to every enemy hit by the wave. Deals double damage and knocks up on soft blocks.",new double[]{2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0},
- new PVPValue(30,2.0),10000,100,UpgradePath.SHOVEL,1),
+ new PVPValue(15,2.0),10000,100,UpgradePath.SHOVEL,1),
//Axe abilities
/*BREAKDOWN("Break Down",ChatColor.GRAY+"[Unimplemented] Breaks down armor on mobs. Each hit has a [VAL]% chance to remove a piece of armor from a mob.",new double[]{3,3,3,3,3,3,3,3,3,3},
@@ -124,9 +124,9 @@ public enum ArtifactAbility {
//Scythe abilities
AOE("Area of Effect","Deals damage to targets up to [AOEVAL]m from the main target hit.",new double[]{0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1},
- new PVPValue(3,1.0),10000,1,UpgradePath.SCYTHE,1),
+ new PVPValue(5,1.0),10000,1,UpgradePath.SCYTHE,1),
DEATHMARK("Death Mark","Applies a Death Mark stack to enemies hit. Death mark stacks last for 5 seconds, and refresh on each hit.\n\nMarks can be detonated at any time by right-clicking. Targets killed with Death Mark resets the cooldown. Targets not killed lose half their Death Mark stacks.\n\n Each death mark stack applied deals [VAL] true damage.",new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},
- new PVPValue(3,1.0),10000,10,UpgradePath.SCYTHE,1),
+ new PVPValue(10,1.0),10000,10,UpgradePath.SCYTHE,1),
CRIPPLE("Cripple","Every 10 death marks applied on a monster increases damage dealt from all damage sources by [VAL]%.",new double[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},
new PVPValue(1,1.0),100,1000,UpgradePath.SCYTHE,1),
diff --git a/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java b/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java
index 53e5be4..24724fa 100644
--- a/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java
+++ b/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java
@@ -134,7 +134,6 @@ public class GenericFunctions {
}
public static ItemStack breakHardenedItem(ItemStack item, Player p) {
-
showStackTrace();
int break_count = getHardenedItemBreaks(item);
if (break_count>0) {
@@ -2253,6 +2252,11 @@ public class GenericFunctions {
leather=false;
break;
}
+ ItemSet set = ItemSet.GetItemSet(equip);
+ if (!ItemSet.isRangerSet(set) && !GenericFunctions.isArtifactArmor(equip)) {
+ leather=false;
+ break;
+ }
}
return leather;
}
@@ -3728,6 +3732,8 @@ public class GenericFunctions {
if (!revived) {
if (PVP.isPvPing(p)) {
revived=true;
+ pd.lastPVPHitReason = reason;
+ pd.lastPVPHitDamage = dmg;
RevivePlayer(p, p.getMaxHealth());
PVP session = PVP.getMatch(p);
session.onDeathEvent(p);
diff --git a/src/sig/plugin/TwosideKeeper/HelperStructures/ItemSet.java b/src/sig/plugin/TwosideKeeper/HelperStructures/ItemSet.java
index 30b714c..d627e6a 100644
--- a/src/sig/plugin/TwosideKeeper/HelperStructures/ItemSet.java
+++ b/src/sig/plugin/TwosideKeeper/HelperStructures/ItemSet.java
@@ -87,6 +87,17 @@ public enum ItemSet {
//ItemSet.SHARD,
//ItemSet.TOXIN,
};
+
+ public static final ItemSet[] SLAYER= new ItemSet[]{
+ ItemSet.ASSASSIN,
+ ItemSet.LORASYS,
+ ItemSet.STEALTH,
+ };
+
+ public static final ItemSet[] RANGER2 = new ItemSet[]{
+ ItemSet.SHARD,
+ ItemSet.TOXIN,
+ };
public static final ItemSet[] MELEE = new ItemSet[]{
ItemSet.DAWNTRACKER,
ItemSet.PANROS,
@@ -1236,17 +1247,39 @@ public enum ItemSet {
}
public static boolean isTrinketSet(ItemSet is) {
- for (ItemSet tr : TRINKET) {
- if (is == tr) {
- return true;
+ if (is!=null) {
+ for (ItemSet tr : TRINKET) {
+ if (is == tr) {
+ return true;
+ }
}
}
return false;
}
public static boolean isAssassinSet(ItemSet is) {
- if (is == ItemSet.ASSASSIN || is == ItemSet.LORASYS || is == ItemSet.STEALTH) {
- return true;
+ if (is!=null) {
+ for (ItemSet set : SLAYER) {
+ if (is==set) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public static boolean isRangerSet(ItemSet is) {
+ if (is!=null) {
+ for (ItemSet set : RANGER) {
+ if (is==set) {
+ return true;
+ }
+ }
+ for (ItemSet set : RANGER2) {
+ if (is==set) {
+ return true;
+ }
+ }
}
return false;
}
diff --git a/src/sig/plugin/TwosideKeeper/PVP.java b/src/sig/plugin/TwosideKeeper/PVP.java
index 0d65c2f..4c47819 100644
--- a/src/sig/plugin/TwosideKeeper/PVP.java
+++ b/src/sig/plugin/TwosideKeeper/PVP.java
@@ -10,16 +10,22 @@ import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Chunk;
import org.bukkit.ChunkSnapshot;
+import org.bukkit.Color;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
+import org.bukkit.OfflinePlayer;
import org.bukkit.boss.BarColor;
import org.bukkit.boss.BarFlag;
import org.bukkit.boss.BarStyle;
import org.bukkit.boss.BossBar;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
+import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.LeatherArmorMeta;
+import org.bukkit.inventory.meta.PotionMeta;
+import org.bukkit.potion.PotionEffect;
import com.google.common.collect.ImmutableList;
@@ -167,6 +173,78 @@ public class PVP {
for (int i=9;i<36;i++) {
p.getInventory().setItem(i, new ItemStack(Material.AIR));
}
+ ReplaceGearWithLeatherVersionAndFilterItems(p);
+ }
+
+ private void ReplaceGearWithLeatherVersionAndFilterItems(Player p) {
+ for (int i=0;i
4) { //This potion is too strong, and cannot be used in a PvP match.
+ p.getInventory().setItem(i, new ItemStack(Material.AIR));
+ }
+ }
+ }
+ //Use of scrolls should also be forbidden.
+ if (ItemUtils.isValidItem(item) &&
+ item.getType()==Material.PAPER &&
+ item.hasItemMeta() && item.getEnchantments().size()>0) {
+ //This means it's magical paper and is not allowed.
+ p.getInventory().setItem(i, new ItemStack(Material.AIR));
+ }
+ }
+ RemoveAllPlayerBuffs(p);
+ }
+
+ private void RemoveAllPlayerBuffs(Player p) {
+ for (PotionEffect pe : p.getActivePotionEffects()) {
+ GenericFunctions.logAndRemovePotionEffectFromEntity(pe.getType(), p);
+ }
+ PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
+ pd.vendetta_amt=0;
+ pd.weaponcharges=0;
+ pd.damagepool=0;
+ HashMap buffs = Buff.getBuffData(p);
+ for (String s : buffs.keySet()) {
+ Buff b = buffs.get(s);
+ Bukkit.getScheduler().runTaskLater(TwosideKeeper.plugin, ()->{
+ b.removeBuff(p, s);
+ }, 1);
+ }
+ }
+
+ private void ColorGearBasedOnTeam(Player p, int team) {
+ for (int i=0;i{
@@ -183,6 +266,7 @@ public class PVP {
if (pl!=null && pl.isValid() && pl.isOnline() && !s.equalsIgnoreCase(ss)) {
pl.sendMessage(ChatColor.YELLOW+s+" has left the match. Current Participants: "+ChatColor.YELLOW+getParticipants());
}
+ RemoveAllPlayerBuffs(pl);
}
},2);
}
@@ -240,13 +324,7 @@ public class PVP {
resetPlayerChoices();
DisplayRoundChoices();
} else {
- for (String s : players.keySet()) {
- Player pl = Bukkit.getPlayer(s);
- if (pl!=null && pl.isValid() && pl.isOnline()) {
- pl.sendMessage(ChatColor.YELLOW+"Not enough participants!"+ChatColor.GREEN+" The PVP Match has been disbanded.");
- }
- }
- return false; //Cancelled.
+ return DisbandMatch(ChatColor.YELLOW+"Not enough participants!"+ChatColor.GREEN+" The PVP Match has been disbanded.");
}
}
//}
@@ -277,7 +355,7 @@ public class PVP {
p.sendMessage(ChatColor.YELLOW+style.getTitle()+ChatColor.GREEN+" has been voted as the style for this PVP match!");
}
}
- if (players.size()>=2 && style.name().contains("ROUNDS")) {
+ if (players.size()>2 && style.name().contains("ROUNDS")) {
state = CHOICEENGINE.WAITFORTEAMCHOICES;
isTeamMatch=true;
lastSelected=TwosideKeeper.getServerTickTime();
@@ -290,13 +368,7 @@ public class PVP {
}
timer=TwosideKeeper.getServerTickTime();
} else {
- for (String s : players.keySet()) {
- Player pl = Bukkit.getPlayer(s);
- if (pl!=null && pl.isValid() && pl.isOnline()) {
- pl.sendMessage(ChatColor.YELLOW+"Not enough participants!"+ChatColor.GREEN+" The PVP Match has been disbanded.");
- }
- }
- return false; //Cancelled.
+ return DisbandMatch(ChatColor.YELLOW+"Not enough participants!"+ChatColor.GREEN+" The PVP Match has been disbanded.");
}
}
}break;
@@ -305,13 +377,7 @@ public class PVP {
if (allPlayersHaveChosenATeam() || lastSelected+4000<=TwosideKeeper.getServerTickTime()) {
randomlyPickTeams();
if (teamsAreInvalid()) {
- for (String s : players.keySet()) {
- Player p = Bukkit.getPlayer(s);
- if (p!=null) {
- p.sendMessage("Not enough players in both teams to begin a PvP Match! The match has been cancelled.");
- }
- }
- return false;
+ return DisbandMatch("Not enough players in both teams to begin a PvP Match! The match has been cancelled.");
}
SendTeamList();
resetPlayerChoices();
@@ -367,13 +433,7 @@ public class PVP {
}
}
} else {
- for (String s : players.keySet()) {
- Player pl = Bukkit.getPlayer(s);
- if (pl!=null && pl.isValid() && pl.isOnline()) {
- pl.sendMessage(ChatColor.YELLOW+"Not enough participants!"+ChatColor.GREEN+" The PVP Match has been disbanded.");
- }
- }
- return false; //Cancelled.
+ return DisbandMatch(ChatColor.YELLOW+"Not enough participants!"+ChatColor.GREEN+" The PVP Match has been disbanded.");
}
}
}break;
@@ -416,6 +476,18 @@ public class PVP {
return true;
}
+ private boolean DisbandMatch(String msg) {
+ giveBackInventories();
+ for (String s : players.keySet()) {
+ Player pl = Bukkit.getPlayer(s);
+ if (pl!=null && pl.isValid() && pl.isOnline()) {
+ pl.sendMessage(msg);
+
+ }
+ }
+ return false; //Cancelled.
+ }
+
private void giveBackInventories() {
for (String s : players.keySet()) {
PVPPlayer pp = players.get(s);
@@ -424,6 +496,10 @@ public class PVP {
for (int i=0;i0) {
+ DecimalFormat df = new DecimalFormat("0.00");
+ sb.append(" for ");
+ sb.append(ChatColor.RED);
+ sb.append(df.format(pd.lastPVPHitDamage));
+ sb.append(ChatColor.RESET);
+ sb.append(" damage");
+ sb2.append(" for ");
+ sb2.append(ChatColor.RED);
+ sb2.append(df.format(pd.lastPVPHitDamage));
+ sb2.append(ChatColor.RESET);
+ sb2.append(" damage");
+ }
+ if (pd.lastPVPHitReason!=null) {
+ sb.append(" (");
+ sb.append(pd.lastPVPHitReason);
+ sb.append(").");
+ sb2.append(" (");
+ sb2.append(pd.lastPVPHitReason);
+ sb2.append(").");
+ } else {
+ sb.append(".");
+ sb2.append(".");
+ }
+ p.sendMessage(sb.toString());
Player killerp = Bukkit.getPlayer(pd.lastplayerHitBy);
if (killerp!=null) {
- killerp.sendMessage(" Killed "+ChatColor.GREEN+p.getName()+ChatColor.RESET+".");
+ killerp.sendMessage(sb2.toString());
+ PlayerStructure killerpd = PlayerStructure.GetPlayerStructure(killerp);
+ killerpd.damagepool=0;
+ killerpd.customtitle.update();
}
} else {
if (players.containsKey(p.getName())) {
diff --git a/src/sig/plugin/TwosideKeeper/PlayerStructure.java b/src/sig/plugin/TwosideKeeper/PlayerStructure.java
index 8a9b730..0d645ff 100644
--- a/src/sig/plugin/TwosideKeeper/PlayerStructure.java
+++ b/src/sig/plugin/TwosideKeeper/PlayerStructure.java
@@ -178,6 +178,8 @@ public class PlayerStructure {
public Location playerLocRef=null;
public boolean freshBlood=true;
public boolean firstPVPMatch=true;
+ public String lastPVPHitReason="";
+ public double lastPVPHitDamage=0;
/*State 1
* 1: Best of 3 Rounds
* 2: Best of 5 Rounds
diff --git a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java
index a16df08..3798d77 100644
--- a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java
+++ b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java
@@ -173,6 +173,7 @@ import org.bukkit.event.world.WorldSaveEvent;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.Inventory;
+import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.Recipe;
import org.bukkit.inventory.ShapedRecipe;
@@ -3546,12 +3547,15 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
PVP session = PVP.getMatch(p);
if (session!=null) {
- PVPPlayer pp = session.players.get(p);
+ PVPPlayer pp = session.players.get(p.getName());
for (int i=0;i=4 &&
@@ -4895,7 +4899,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
return;
}
} else
- if (ev.getPlayer().isSneaking() && ev.getAction()==Action.RIGHT_CLICK_BLOCK && GenericFunctions.isDumpableContainer(ev.getClickedBlock().getType())) {
+ if (ev.getPlayer().isSneaking() && ev.getAction()==Action.RIGHT_CLICK_BLOCK && GenericFunctions.isDumpableContainer(ev.getClickedBlock().getType()) && !PVP.isPvPing(ev.getPlayer())) {
//This is an attempt to insert an item cube into a container. See what item cube we're holding.
if (ev.getPlayer().getInventory().getItemInMainHand().hasItemMeta() &&
ev.getPlayer().getInventory().getItemInMainHand().getItemMeta().hasLore() &&
@@ -5699,7 +5703,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
public void onPlayerDeath(PlayerDeathEvent ev) {
//Modify the death message. This is a fix for getting rid of the healthbar from the player name.
final Player p = ev.getEntity();
- if (!p.getWorld().getName().contains("Instance")) {
+ if (!p.getWorld().getName().contains("Instance") && !PVP.isPvPing(p)) {
if (!DeathManager.deathStructureExists(p)) {
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
pd.playermode_on_death=pd.lastmode;
@@ -6471,6 +6475,10 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
}
}*/
+ if (PVP.isPvPing(ev.getPlayer())) {
+ ev.setCancelled(true);
+ return;
+ }
ItemSet.updateItemSets(ev.getPlayer());
return;
}
@@ -6868,7 +6876,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
//Check for a right-click for a Bauble Pouch.
if (ev.getClick()==ClickType.RIGHT && ((ev.getInventory().getType()!=InventoryType.WORKBENCH && ev.getRawSlot()>=0) ||
- (ev.getInventory().getType()==InventoryType.WORKBENCH && ev.getRawSlot()>9))) {
+ (ev.getInventory().getType()==InventoryType.WORKBENCH && ev.getRawSlot()>9)) && !PVP.isPvPing((Player)ev.getWhoClicked())) {
ItemStack item = ev.getCurrentItem();
if (BaublePouch.isBaublePouch(item)) {
BaublePouch.openBaublePouch((Player)ev.getWhoClicked(), item);
@@ -7316,7 +7324,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
log("Inventory click.",5);
//WARNING! This only happens for ITEM CUBES! Do not add other items in here!
if (((ev.getInventory().getType()!=InventoryType.WORKBENCH && ev.getRawSlot()>=0) ||
- (ev.getInventory().getType()==InventoryType.WORKBENCH && ev.getRawSlot()>9)) && ev.isRightClick() && ev.getCurrentItem()!=null && ev.getCurrentItem().getAmount()==1) {
+ (ev.getInventory().getType()==InventoryType.WORKBENCH && ev.getRawSlot()>9)) && ev.isRightClick() && ev.getCurrentItem()!=null && ev.getCurrentItem().getAmount()==1 &&
+ !PVP.isPvPing((Player)ev.getWhoClicked())) {
log("Clicked Item: "+ev.getCurrentItem().toString(),5);
if (ev.getCurrentItem().hasItemMeta()) {
log("Item Meta: "+ev.getCurrentItem().getItemMeta().toString(),5);
@@ -9834,6 +9843,10 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
return;
}
Player p = ev.getPlayer();
+ if (PVP.isPvPing(p)) {
+ ev.setCancelled(true);
+ return;
+ }
//log("Item Right now: "+ev.getItem().getItemStack(),0);
long time = System.nanoTime();
long totaltime = System.nanoTime();
@@ -9846,6 +9859,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
//TwosideKeeper.log(" New Stack is: "+newstack,0);
if (newstack==null || newstack.getType()==Material.AIR) {
SoundUtils.playGlobalSound(ev.getPlayer().getLocation(), Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(ev.getItem().getItemStack()));
+ PlayPickupParticle(ev.getPlayer(),ev.getItem());
if (ev.getRemaining()>0) {
Item it = ev.getItem();
it.getItemStack().setAmount(ev.getRemaining());
diff --git a/src/sig/plugin/TwosideKeeper/runServerHeartbeat.java b/src/sig/plugin/TwosideKeeper/runServerHeartbeat.java
index 946bc79..ccf9d59 100644
--- a/src/sig/plugin/TwosideKeeper/runServerHeartbeat.java
+++ b/src/sig/plugin/TwosideKeeper/runServerHeartbeat.java
@@ -826,8 +826,14 @@ final public class runServerHeartbeat implements Runnable {
} else {
p.getScoreboard().getTeam(p.getName().toLowerCase()).setPrefix(ChatColor.RED+ChatColor.stripColor(GenericFunctions.PlayerModePrefix(p)));
}
+ } else {
+ p.getScoreboard().getTeam(p.getName().toLowerCase()).setPrefix(GenericFunctions.PlayerModePrefix(p));
}
+ } else {
+ p.getScoreboard().getTeam(p.getName().toLowerCase()).setPrefix(GenericFunctions.PlayerModePrefix(p));
}
+ } else {
+ p.getScoreboard().getTeam(p.getName().toLowerCase()).setPrefix(GenericFunctions.PlayerModePrefix(p));
}
} else {
p.getScoreboard().getTeam(p.getName().toLowerCase()).setPrefix(GenericFunctions.PlayerModePrefix(p));