@@ -5,12 +5,15 @@ import dev.enderman.minecraft.plugins.scp.SCPPlugin
5
5
import foundation.esoteric.minecraft.plugins.library.item.TexturedItem
6
6
import gg.flyte.twilight.extension.hidePlayer
7
7
import gg.flyte.twilight.extension.showPlayer
8
+ import org.bukkit.Bukkit
8
9
import org.bukkit.Material
9
10
import org.bukkit.NamespacedKey
10
11
import org.bukkit.entity.EntityType
11
12
import org.bukkit.entity.Mob
12
13
import org.bukkit.event.EventHandler
13
14
import org.bukkit.event.entity.EntityTargetLivingEntityEvent
15
+ import org.bukkit.event.player.PlayerJoinEvent
16
+ import org.bukkit.persistence.PersistentDataType
14
17
import org.bukkit.potion.PotionEffect
15
18
import org.bukkit.potion.PotionEffectType
16
19
@@ -81,6 +84,8 @@ class SCP268Item(plugin: SCPPlugin) : TexturedItem(plugin, "scp_268", Material.L
81
84
)
82
85
)
83
86
87
+ player.persistentDataContainer[timeHatPutOnKey, PersistentDataType .INTEGER ] = Bukkit .getServer().currentTick
88
+
84
89
for (entity in player.world.livingEntities) {
85
90
if (entity !is Mob ) continue
86
91
@@ -108,6 +113,16 @@ class SCP268Item(plugin: SCPPlugin) : TexturedItem(plugin, "scp_268", Material.L
108
113
player.removePotionEffect(
109
114
PotionEffectType .INVISIBILITY
110
115
)
116
+
117
+ val timePutOn = player.persistentDataContainer[timeHatPutOnKey, PersistentDataType .INTEGER ]!!
118
+ val currentTime = Bukkit .getServer().currentTick
119
+
120
+ val difference = currentTime - timePutOn
121
+
122
+ var timeWorn = player.persistentDataContainer[timeHatWornKey, PersistentDataType .INTEGER ] ? : 0
123
+ timeWorn + = difference
124
+
125
+ player.persistentDataContainer[timeHatPutOnKey, PersistentDataType .INTEGER ] = timeWorn
111
126
}
112
127
113
128
@EventHandler
@@ -128,4 +143,16 @@ class SCP268Item(plugin: SCPPlugin) : TexturedItem(plugin, "scp_268", Material.L
128
143
129
144
event.isCancelled = true
130
145
}
146
+
147
+ @EventHandler
148
+ private fun onJoinWithoutHatData (event : PlayerJoinEvent ) {
149
+ val player = event.player
150
+ val dataContainer = player.persistentDataContainer
151
+
152
+ val timePutOn = dataContainer[timeHatPutOnKey, PersistentDataType .INTEGER ]
153
+
154
+ if (timePutOn != null ) return
155
+
156
+ dataContainer[timeHatPutOnKey, PersistentDataType .INTEGER ] = Bukkit .getServer().currentTick
157
+ }
131
158
}
0 commit comments