Skip to content

Commit 8ef4535

Browse files
committed
Update to 3.18.1
1 parent cf3ee0c commit 8ef4535

File tree

10 files changed

+34
-18
lines changed

10 files changed

+34
-18
lines changed

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1212
<sonar.organization>chancesd</sonar.organization>
1313
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
14-
<revision>3.18</revision>
14+
<revision>3.18.1</revision>
1515
</properties>
1616

1717
<distributionManagement>

pvpmanager/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@
333333
<dependency>
334334
<groupId>me.chancesd.sdutils</groupId>
335335
<artifactId>sdutils</artifactId>
336-
<version>1.1-SNAPSHOT</version>
336+
<version>1.2-SNAPSHOT</version>
337337
</dependency>
338338
</dependencies>
339339
</project>

pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.bukkit.event.player.PlayerItemConsumeEvent;
2222
import org.bukkit.inventory.ItemStack;
2323
import org.bukkit.inventory.PlayerInventory;
24-
import org.bukkit.potion.PotionEffectType;
2524
import org.bukkit.projectiles.ProjectileSource;
2625

2726
import com.google.common.cache.Cache;
@@ -37,7 +36,7 @@
3736
public class EntityListener1_9 implements Listener {
3837

3938
private final PlayerHandler ph;
40-
private final Cache<UUID, Set<AreaEffectCloud>> potionMessageCache = CacheBuilder.newBuilder().expireAfterAccess(5, TimeUnit.SECONDS).build();
39+
private final Cache<UUID, Set<AreaEffectCloud>> potionMessageCache = CacheBuilder.newBuilder().expireAfterAccess(3, TimeUnit.SECONDS).build();
4140

4241
public EntityListener1_9(final PlayerHandler ph) {
4342
this.ph = ph;
@@ -62,8 +61,7 @@ public final void onLingeringPotionSplash(final AreaEffectCloudApplyEvent event)
6261
if (event.getAffectedEntities().isEmpty() || !(areaCloudSource instanceof Player))
6362
return;
6463

65-
final PotionEffectType potionType = areaCloud.getBasePotionType().getEffectType();
66-
if (potionType == null || !CombatUtils.isHarmfulPotion(potionType))
64+
if (!CombatUtils.hasHarmfulPotion(areaCloud))
6765
return;
6866

6967
final Player player = (Player) areaCloudSource;

pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/DependencyManager.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ public DependencyManager() {
6363
+ "Issues with those features often get wrongly blamed on PvPManager and cause conflicts due to the lack of GP feedback messages.");
6464
}
6565
if (Bukkit.getPluginManager().getPlugin("TAB") != null && Settings.useNameTag()) {
66-
Log.warning("TAB detected. If you want nametags to change while in combat, set 'anti-override' to false in TAB's config."
66+
Log.info("TAB detected. If you want nametags to change while in combat, set 'anti-override' to false in TAB's config."
6767
+ " (Doing that will prevent TAB from changing nametags)");
68-
Log.warning("Or use the premium version of PvPManager which hooks into TAB for nametag/tablist changes.");
68+
Log.info("Or use the premium version of PvPManager which hooks into TAB for nametag/tablist changes.");
6969
}
7070
final List<Hook> failedHooks = setupHooks(Hook.values());
7171
// Delayed check for hooks that do not use softdepend

pvpmanager/src/main/java/me/NoChance/PvPManager/Managers/PlayerHandler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ private PvPlayer addUser(final PvPlayer p) {
117117
if (save) {
118118
players.put(p.getUUID(), p);
119119
}
120-
Log.debug("Adding " + p + " to online players. Saved: " + save);
120+
Log.debug("Creating " + p + " Saved: " + save);
121121
return p;
122122
}
123123

pvpmanager/src/main/java/me/NoChance/PvPManager/PvPlayer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ private synchronized void loadData() {
306306
}
307307
this.loaded = true;
308308
notifyAll();
309-
Log.debug("Finished loading data for " + this);
309+
Log.debug("Finished loading data for " + this + (nametag != null ? " with " + nametag.getClass().getSimpleName() : ""));
310310
}
311311

312312
private void loadUserData(final Map<String, Object> userData) {

pvpmanager/src/main/java/me/NoChance/PvPManager/Utils/CombatUtils.java

+21
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.NoChance.PvPManager.Utils;
22

3+
import java.lang.reflect.InvocationTargetException;
34
import java.text.DecimalFormat;
45
import java.util.List;
56
import java.util.Map;
@@ -19,13 +20,16 @@
1920
import org.bukkit.event.entity.EntityCombustByEntityEvent;
2021
import org.bukkit.event.entity.EntityDamageByEntityEvent;
2122
import org.bukkit.inventory.ItemStack;
23+
import org.bukkit.potion.PotionEffect;
2224
import org.bukkit.potion.PotionEffectType;
25+
import org.bukkit.potion.PotionType;
2326
import org.bukkit.projectiles.ProjectileSource;
2427

2528
import me.NoChance.PvPManager.Settings.Messages;
2629
import me.NoChance.PvPManager.Settings.Settings;
2730
import me.chancesd.pvpmanager.utils.ScheduleUtils;
2831
import me.chancesd.sdutils.utils.Log;
32+
import me.chancesd.sdutils.utils.ReflectionUtil;
2933

3034
public final class CombatUtils {
3135

@@ -187,6 +191,23 @@ public static boolean isWorldExcluded(final String worldName) {
187191
return Settings.getWorldsExcluded().contains(worldName);
188192
}
189193

194+
public static boolean hasHarmfulPotion(final AreaEffectCloud areaCloud) {
195+
if (isVersionAtLeast(Settings.getMinecraftVersion(), "1.20")) {
196+
final PotionType basePotionType = areaCloud.getBasePotionType();
197+
if (basePotionType == null)
198+
return false;
199+
final List<PotionEffect> potionTypes = basePotionType.getPotionEffects();
200+
return !potionTypes.isEmpty() && potionTypes.stream().anyMatch(p -> isHarmfulPotion(p.getType()));
201+
}
202+
PotionEffectType potionEffectType = null;
203+
try {
204+
potionEffectType = (PotionEffectType) ReflectionUtil.invokeMethods(areaCloud, "getBasePotionData", "getType", "getEffectType");
205+
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
206+
Log.severe("Error getting potion type of lingering potion", e);
207+
}
208+
return potionEffectType != null && isHarmfulPotion(potionEffectType);
209+
}
210+
190211
public static boolean isHarmfulPotion(final PotionEffectType type) {
191212
return Settings.getHarmfulPotions().contains(type.getName());
192213
}

pvpmanager/src/main/java/me/chancesd/pvpmanager/player/nametag/NameTag.java

-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import me.NoChance.PvPManager.PvPlayer;
44
import me.NoChance.PvPManager.Settings.Settings;
55
import me.NoChance.PvPManager.Utils.ChatUtils;
6-
import me.chancesd.sdutils.utils.Log;
76

87
public abstract class NameTag {
98

@@ -19,7 +18,6 @@ protected NameTag(final PvPlayer p) {
1918
this.combatSuffix = ChatUtils.colorize(Settings.getNameTagSuffix());
2019
this.pvpOnPrefix = Settings.getToggleColorOn().equalsIgnoreCase("none") ? "" : ChatUtils.colorize(Settings.getToggleColorOn());
2120
this.pvpOffPrefix = Settings.getToggleColorOff().equalsIgnoreCase("none") ? "" : ChatUtils.colorize(Settings.getToggleColorOff());
22-
Log.debug("Creating " + this.getClass().getSimpleName() + " for " + p);
2321
}
2422

2523
public abstract void setInCombat();

pvpmanager/src/main/resources/config.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,9 @@ Metrics:
258258
# Potions considered harmful, players will be tagged by them and protected from them
259259
# See list here https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/potion/PotionEffectType.html
260260
Harmful Potions:
261-
- SLOW
262-
- SLOW_DIGGING
263-
- CONFUSION
261+
- SLOWNESS
262+
- MINING_FATIGUE
263+
- NAUSEA
264264
- BLINDNESS
265265
- HUNGER
266266
- WEAKNESS

pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import static org.junit.jupiter.api.Assertions.assertFalse;
55
import static org.junit.jupiter.api.Assertions.assertTrue;
66
import static org.mockito.Mockito.RETURNS_MOCKS;
7-
import static org.mockito.Mockito.doReturn;
87
import static org.mockito.Mockito.mock;
98
import static org.mockito.Mockito.never;
109
import static org.mockito.Mockito.times;
@@ -209,8 +208,8 @@ final void failCancel() {
209208
ph.get(defender).setPvP(true);
210209
ph.get(attacker).setPvP(true);
211210

212-
doReturn(true).when(attacker).isFlying();
213-
doReturn(true).when(defender).isFlying();
211+
when(attacker.isFlying()).thenReturn(true);
212+
when(defender.isFlying()).thenReturn(true);
214213
assertTrue(attacker.isFlying());
215214
assertTrue(defender.isFlying());
216215
assertEquals(CancelResult.FAIL, ph.tryCancel(attacker, defender));

0 commit comments

Comments
 (0)