Skip to content

Commit 0d8a821

Browse files
committed
�Prevent snowman trails; remove pets on shutdown
1 parent 0adb2e0 commit 0d8a821

3 files changed

Lines changed: 18 additions & 0 deletions

File tree

core/src/main/java/be/isach/ultracosmetics/UltraCosmetics.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,11 @@ public void onDisable() {
288288
}
289289

290290
if (playerManager != null) {
291+
// make sure pets are properly removed on server shutdown
292+
for (UltraPlayer player : playerManager.getUltraPlayers()) {
293+
player.clear();
294+
}
295+
291296
playerManager.dispose();
292297
}
293298

core/src/main/java/be/isach/ultracosmetics/cosmetics/pets/PetSnowman.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import be.isach.ultracosmetics.cosmetics.type.PetType;
66
import be.isach.ultracosmetics.player.UltraPlayer;
77
import be.isach.ultracosmetics.util.ItemFactory;
8+
import be.isach.ultracosmetics.util.ServerVersion;
89
import be.isach.ultracosmetics.util.UCMaterial;
910
import org.bukkit.Bukkit;
1011
import org.bukkit.entity.Snowman;
@@ -18,6 +19,8 @@
1819
public class PetSnowman extends Pet {
1920
public PetSnowman(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
2021
super(owner, ultraCosmetics, PetType.getByName("snowman"), ItemFactory.create(UCMaterial.SNOWBALL, UltraCosmeticsData.get().getItemNoPickupString()));
22+
// setDerp was added in 1.9, so skip the task if we're on 1.8
23+
if (UltraCosmeticsData.get().getServerVersion() == ServerVersion.v1_8_R3) return;
2124
Bukkit.getScheduler().runTaskLater(getUltraCosmetics(), () -> {
2225
if (getOwner() != null && getEntity() != null) {
2326
Snowman snowman = (Snowman) getEntity();

core/src/main/java/be/isach/ultracosmetics/listeners/MainListener.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package be.isach.ultracosmetics.listeners;
22

33
import be.isach.ultracosmetics.UltraCosmeticsData;
4+
5+
import org.bukkit.entity.EntityType;
46
import org.bukkit.event.EventHandler;
57
import org.bukkit.event.Listener;
8+
import org.bukkit.event.block.EntityBlockFormEvent;
69
import org.bukkit.event.inventory.InventoryPickupItemEvent;
710
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
811
import org.bukkit.event.player.PlayerPickupItemEvent;
@@ -41,4 +44,11 @@ public void onPlayerPickup(PlayerPickupItemEvent event) {
4144
event.setCancelled(true);
4245
}
4346
}
47+
48+
@EventHandler
49+
public void onSnowmanTrail(EntityBlockFormEvent event) {
50+
if (event.getEntity().getType() != EntityType.SNOWMAN) return;
51+
if (!event.getEntity().hasMetadata("Pet")) return;
52+
event.setCancelled(true);
53+
}
4454
}

0 commit comments

Comments
 (0)