|
2 | 2 |
|
3 | 3 | import adhdmc.villagerinfo.Config.ConfigValidator; |
4 | 4 | import adhdmc.villagerinfo.VillagerInfo; |
| 5 | +import org.bukkit.Bukkit; |
5 | 6 | import org.bukkit.Location; |
6 | 7 | import org.bukkit.NamespacedKey; |
7 | 8 | import org.bukkit.entity.Shulker; |
8 | 9 | import org.bukkit.event.entity.CreatureSpawnEvent; |
9 | 10 | import org.bukkit.persistence.PersistentDataContainer; |
10 | 11 | import org.bukkit.persistence.PersistentDataType; |
11 | | -import org.bukkit.scheduler.BukkitRunnable; |
12 | 12 |
|
13 | 13 | import java.util.HashMap; |
14 | 14 | import java.util.UUID; |
15 | 15 |
|
16 | 16 | import static org.bukkit.entity.EntityType.SHULKER; |
17 | 17 |
|
18 | | -public class HighlightHandling{ |
19 | | - static NamespacedKey highlightStatus = new NamespacedKey(VillagerInfo.plugin, "highlightStatus"); |
20 | | - static String currentlyHighlighted = VillagerInfo.isCurrentlyHighlighted; |
21 | | - static String notHighlighted = VillagerInfo.isNotCurrentlyHighlighted; |
| 18 | +public class HighlightHandling { |
| 19 | + static NamespacedKey highlightStatus = new NamespacedKey(VillagerInfo.plugin, "highlighted"); |
22 | 20 | public static HashMap<UUID, Shulker> workstationShulker = new HashMap<>(); |
23 | 21 | public static HashMap<UUID, PersistentDataContainer> villagerPDC = new HashMap<>(); |
24 | 22 |
|
25 | 23 |
|
26 | | - |
27 | 24 | public static void villagerJobsiteHighlight(PersistentDataContainer villPDC, UUID villUUID, Location villPOI) { |
28 | | - if (villPDC.getOrDefault(highlightStatus, PersistentDataType.STRING, notHighlighted).equals(currentlyHighlighted)) return; |
29 | | - villPDC.set(highlightStatus, PersistentDataType.STRING, currentlyHighlighted); |
| 25 | + if (villPDC.getOrDefault(highlightStatus, PersistentDataType.BYTE, (byte)0) == 1) return; |
| 26 | + villPDC.set(highlightStatus, PersistentDataType.BYTE, (byte)1); |
| 27 | + villagerPDC.put(villUUID, villPDC); |
| 28 | + spawnShulker(villUUID, villPOI); |
| 29 | + Bukkit.getScheduler().runTaskLater(VillagerInfo.plugin, () -> { |
| 30 | + killShulker(villUUID); |
| 31 | + villPDC.set(highlightStatus, PersistentDataType.BYTE, (byte)0); |
30 | 32 | villagerPDC.put(villUUID, villPDC); |
31 | | - spawnShulker(villUUID, villPOI); |
32 | | - new BukkitRunnable() { |
33 | | - @Override |
34 | | - public void run() { |
35 | | - killShulker(villUUID); |
36 | | - villPDC.set(highlightStatus, PersistentDataType.STRING, notHighlighted); |
37 | | - villagerPDC.put(villUUID, villPDC); |
38 | | - } |
39 | | - }.runTaskLater(VillagerInfo.plugin, 20L * ConfigValidator.configTime); |
| 33 | + }, 20L * ConfigValidator.configTime); |
40 | 34 | } |
41 | 35 |
|
42 | 36 | private static void spawnShulker(UUID villUUID, Location location) { |
43 | | - Shulker spawnedShulker = (Shulker) location.getWorld().spawnEntity(location, SHULKER, CreatureSpawnEvent.SpawnReason.CUSTOM, (Entity) -> { |
44 | | - Shulker highlightbox = (Shulker) Entity; |
| 37 | + Shulker spawnedShulker = (Shulker) location.getWorld().spawnEntity(location, SHULKER, CreatureSpawnEvent.SpawnReason.CUSTOM, (entity) -> { |
| 38 | + Shulker highlightbox = (Shulker) entity; |
45 | 39 | highlightbox.setAI(false); |
46 | 40 | highlightbox.setAware(false); |
47 | 41 | highlightbox.setCollidable(false); |
|
0 commit comments