diff --git a/pom.xml b/pom.xml index 8b81f47..3cba8c2 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.planetgallium KitPvP - 2.1.9 + 2.2.0 jar ${project.artifactId} @@ -66,7 +66,7 @@ false false - /Users/nico/Developer/SpigotL/plugins/${project.artifactId}.jar + /Users/nico/Developer/Spigot/Latest/plugins/${project.artifactId}.jar @@ -84,13 +84,13 @@ org.spigotmc spigot-api - 1.17-R0.1-SNAPSHOT + 1.18-R0.1-SNAPSHOT provided me.clip placeholderapi - 2.10.3 + 2.11.0 provided @@ -108,7 +108,7 @@ com.github.cryptomorin XSeries - 7.9.1.1 + 8.5.0 compile @@ -132,7 +132,7 @@ placeholderapi - http://repo.extendedclip.com/content/repositories/placeholderapi/ + https://repo.extendedclip.com/content/repositories/placeholderapi/ sk89q-repo diff --git a/src/main/java/com/planetgallium/kitpvp/Game.java b/src/main/java/com/planetgallium/kitpvp/Game.java index 4ef0e84..c4fd597 100644 --- a/src/main/java/com/planetgallium/kitpvp/Game.java +++ b/src/main/java/com/planetgallium/kitpvp/Game.java @@ -100,9 +100,6 @@ public class Game extends JavaPlugin implements Listener { needsUpdate = true; updateVersion = version; break; - case LATEST: - Bukkit.getConsoleSender().sendMessage(Toolkit.translate("&7[&b&lKIT-PVP&7] &7No new update found. You are on the latest version.")); - break; case UNAVAILABLE: Bukkit.getConsoleSender().sendMessage(Toolkit.translate("&7[&b&lKIT-PVP&7] &cUnable to perform an update check.")); break; diff --git a/src/main/java/com/planetgallium/kitpvp/game/Arena.java b/src/main/java/com/planetgallium/kitpvp/game/Arena.java index b50344f..d924e8a 100644 --- a/src/main/java/com/planetgallium/kitpvp/game/Arena.java +++ b/src/main/java/com/planetgallium/kitpvp/game/Arena.java @@ -56,7 +56,10 @@ public class Arena { CacheManager.getPlayerAbilityCooldowns(p.getName()).clear(); kits.resetKit(p.getName()); - killstreaks.setStreak(p, 0); + + if (config.getBoolean("Arena.ResetKillStreakOnLeave")) { + killstreaks.setStreak(p, 0); + } if (config.getBoolean("Arena.ClearPotionEffectsOnJoin")) { for (PotionEffect effect : p.getActivePotionEffects()) { diff --git a/src/main/java/com/planetgallium/kitpvp/game/Stats.java b/src/main/java/com/planetgallium/kitpvp/game/Stats.java index 3a4640e..ff8488a 100644 --- a/src/main/java/com/planetgallium/kitpvp/game/Stats.java +++ b/src/main/java/com/planetgallium/kitpvp/game/Stats.java @@ -53,7 +53,8 @@ public class Stats { public void addExperience(Player p, int experienceToAdd) { if (levels.getBoolean("Levels.Levels.Enabled")) { int currentExperience = getStat("experience", p.getName()); - setStat("experience", p.getName(), currentExperience + experienceToAdd); + int newExperience = applyPossibleXPMultiplier(p, currentExperience + experienceToAdd); + setStat("experience", p.getName(), newExperience); if (getStat("experience", p.getName()) >= getRegularOrRelativeNeededExperience(p.getName())) { levelUp(p); Bukkit.getPluginManager().callEvent(new PlayerLevelUpEvent(p, getStat("level", p.getName()))); @@ -61,6 +62,11 @@ public class Stats { } } + private int applyPossibleXPMultiplier(Player p, int experience) { + double xpMultiplier = Toolkit.getPermissionAmountDouble(p, "kp.xpmultiplier.", 1.0); + return (int) (experience * xpMultiplier); + } + public void levelUp(Player p) { String username = p.getName(); diff --git a/src/main/java/com/planetgallium/kitpvp/item/AttributeParser.java b/src/main/java/com/planetgallium/kitpvp/item/AttributeParser.java index 24c84b1..aeafa1b 100644 --- a/src/main/java/com/planetgallium/kitpvp/item/AttributeParser.java +++ b/src/main/java/com/planetgallium/kitpvp/item/AttributeParser.java @@ -317,7 +317,7 @@ public class AttributeParser { return potion.toItemStack(item.getAmount()); } else if (Toolkit.versionToNumber() >= 19) { - potionMeta.setBasePotionData(new PotionData(potionType, isUpgraded, isExtended)); + potionMeta.setBasePotionData(new PotionData(potionType, isExtended, isUpgraded)); } item.setItemMeta(potionMeta); diff --git a/src/main/java/com/planetgallium/kitpvp/listener/ArrowListener.java b/src/main/java/com/planetgallium/kitpvp/listener/ArrowListener.java index 053fcd0..23c14c4 100644 --- a/src/main/java/com/planetgallium/kitpvp/listener/ArrowListener.java +++ b/src/main/java/com/planetgallium/kitpvp/listener/ArrowListener.java @@ -64,7 +64,9 @@ public class ArrowListener implements Listener { } // ARROW RETURN - + + ItemStack arrowToAdd = new ItemStack(Material.ARROW); + if (config.getBoolean("Combat.ArrowReturn.Enabled")) { for (ItemStack items : shooter.getInventory().getContents()) { @@ -72,10 +74,9 @@ public class ArrowListener implements Listener { if (items != null && items.getType() == XMaterial.ARROW.parseMaterial() && items.getAmount() < 64) { if (shooter.hasPermission("kp.arrowreturn")) { - - ItemStack arrowInv = new ItemStack(Material.ARROW); - shooter.getInventory().addItem(arrowInv); - shooter.getInventory().addItem(arrowInv); + + shooter.getInventory().addItem(arrowToAdd); + shooter.getInventory().addItem(arrowToAdd); return; @@ -89,7 +90,12 @@ public class ArrowListener implements Listener { shooter.sendMessage(config.getString("Combat.ArrowReturn.NoSpace")); - } + } else { + + shooter.getInventory().addItem(arrowToAdd); + shooter.getInventory().addItem(arrowToAdd); + + } } diff --git a/src/main/java/com/planetgallium/kitpvp/listener/HitListener.java b/src/main/java/com/planetgallium/kitpvp/listener/HitListener.java index 74c0fb8..f914510 100644 --- a/src/main/java/com/planetgallium/kitpvp/listener/HitListener.java +++ b/src/main/java/com/planetgallium/kitpvp/listener/HitListener.java @@ -22,7 +22,7 @@ public class HitListener implements Listener { this.config = plugin.getResources().getConfig(); String soundString = config.getString("Combat.HitSound.Sound") + ", 1, " + config.getInt("Combat.HitSound.Pitch"); - this.hitSound = XSound.parse(null, Bukkit.getWorlds().get(0).getSpawnLocation(), soundString, false).join(); + this.hitSound = XSound.parse(soundString); } @EventHandler @@ -38,8 +38,8 @@ public class HitListener implements Listener { arena.getHitCache().put(damagedPlayer.getName(), damager.getName()); if (config.getBoolean("Combat.HitSound.Enabled")) { - hitSound.play(damagedPlayer.getLocation()); - hitSound.play(damager.getLocation()); + hitSound.forPlayer(damagedPlayer).play(); + hitSound.forPlayer(damager).play(); } } diff --git a/src/main/java/com/planetgallium/kitpvp/listener/JoinListener.java b/src/main/java/com/planetgallium/kitpvp/listener/JoinListener.java index a74222f..bd58e44 100644 --- a/src/main/java/com/planetgallium/kitpvp/listener/JoinListener.java +++ b/src/main/java/com/planetgallium/kitpvp/listener/JoinListener.java @@ -1,6 +1,5 @@ package com.planetgallium.kitpvp.listener; -import com.planetgallium.kitpvp.util.CacheManager; import com.planetgallium.kitpvp.util.Resource; import com.planetgallium.kitpvp.util.Resources; import org.bukkit.entity.Player; @@ -15,10 +14,10 @@ import com.planetgallium.kitpvp.util.Toolkit; public class JoinListener implements Listener { - private Game plugin; - private Arena arena; - private Resources resources; - private Resource config; + private final Game plugin; + private final Arena arena; + private final Resources resources; + private final Resource config; public JoinListener(Game plugin) { this.plugin = plugin; @@ -26,7 +25,7 @@ public class JoinListener implements Listener { this.resources = plugin.getResources(); this.config = resources.getConfig(); } - + @EventHandler public void onJoin(PlayerJoinEvent e) { diff --git a/src/main/java/com/planetgallium/kitpvp/util/Toolkit.java b/src/main/java/com/planetgallium/kitpvp/util/Toolkit.java index 86dcac4..24f8b99 100644 --- a/src/main/java/com/planetgallium/kitpvp/util/Toolkit.java +++ b/src/main/java/com/planetgallium/kitpvp/util/Toolkit.java @@ -146,6 +146,8 @@ public class Toolkit { return 116; } else if (version.contains("1.17")) { return 117; + } else if (version.contains("1.18")) { + return 118; } return 500; @@ -297,6 +299,24 @@ public class Toolkit { } + // TODO: eventually merge the below two methods into one + public static double getPermissionAmountDouble(Player player, String permissionPrefix, double defaultValue) { + double highestPermissionValue = 0.0; + for (PermissionAttachmentInfo attachmentInfo : player.getEffectivePermissions()) { + String permission = attachmentInfo.getPermission(); + if (permission.startsWith(permissionPrefix)) { + // strips from some.permission.49 to just 49 + double permissionValue = Double.parseDouble(permission.substring(permissionPrefix.length())); + if (permissionValue > highestPermissionValue) { + highestPermissionValue = permissionValue; + } + } + } + + return highestPermissionValue == 0.0 ? defaultValue : highestPermissionValue; + + } + public static int getPermissionAmount(Player player, String permissionPrefix, int defaultValue) { // String permissionPrefix = "some.permission.here."; if (!player.isOp()) { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index d85a30f..0de6401 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: KitPvP author: Cervinakuy main: com.planetgallium.kitpvp.Game -version: 2.1.9 +version: 2.2.0 description: The ultimate all-in-one KitPvP plugin. website: https://www.spigotmc.org/resources/27107/ softdepend: [PlaceholderAPI, WorldGuard]