Skip to content

Commit 22900a7

Browse files
Implement tracking for how long a player has worn SCP-268
1 parent 66b6aa9 commit 22900a7

File tree

1 file changed

+27
-0
lines changed
  • src/main/java/dev/enderman/minecraft/plugins/scp/items

1 file changed

+27
-0
lines changed

src/main/java/dev/enderman/minecraft/plugins/scp/items/SCP268Item.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@ import dev.enderman.minecraft.plugins.scp.SCPPlugin
55
import foundation.esoteric.minecraft.plugins.library.item.TexturedItem
66
import gg.flyte.twilight.extension.hidePlayer
77
import gg.flyte.twilight.extension.showPlayer
8+
import org.bukkit.Bukkit
89
import org.bukkit.Material
910
import org.bukkit.NamespacedKey
1011
import org.bukkit.entity.EntityType
1112
import org.bukkit.entity.Mob
1213
import org.bukkit.event.EventHandler
1314
import org.bukkit.event.entity.EntityTargetLivingEntityEvent
15+
import org.bukkit.event.player.PlayerJoinEvent
16+
import org.bukkit.persistence.PersistentDataType
1417
import org.bukkit.potion.PotionEffect
1518
import org.bukkit.potion.PotionEffectType
1619

@@ -81,6 +84,8 @@ class SCP268Item(plugin: SCPPlugin) : TexturedItem(plugin, "scp_268", Material.L
8184
)
8285
)
8386

87+
player.persistentDataContainer[timeHatPutOnKey, PersistentDataType.INTEGER] = Bukkit.getServer().currentTick
88+
8489
for (entity in player.world.livingEntities) {
8590
if (entity !is Mob) continue
8691

@@ -108,6 +113,16 @@ class SCP268Item(plugin: SCPPlugin) : TexturedItem(plugin, "scp_268", Material.L
108113
player.removePotionEffect(
109114
PotionEffectType.INVISIBILITY
110115
)
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
111126
}
112127

113128
@EventHandler
@@ -128,4 +143,16 @@ class SCP268Item(plugin: SCPPlugin) : TexturedItem(plugin, "scp_268", Material.L
128143

129144
event.isCancelled = true
130145
}
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+
}
131158
}

0 commit comments

Comments
 (0)