diff options
Diffstat (limited to 'src/main/kotlin/moe/nea/potatocrime/PotatoCrime.kt')
-rw-r--r-- | src/main/kotlin/moe/nea/potatocrime/PotatoCrime.kt | 56 |
1 files changed, 47 insertions, 9 deletions
diff --git a/src/main/kotlin/moe/nea/potatocrime/PotatoCrime.kt b/src/main/kotlin/moe/nea/potatocrime/PotatoCrime.kt index 5d0cddc..b6ac78d 100644 --- a/src/main/kotlin/moe/nea/potatocrime/PotatoCrime.kt +++ b/src/main/kotlin/moe/nea/potatocrime/PotatoCrime.kt @@ -1,22 +1,60 @@ package moe.nea.potatocrime import moe.nea.potatocrime.entity.PotatoGuardEntity +import moe.nea.potatocrime.events.OnEnterPotatoWorld import moe.nea.potatocrime.registry.PotatoRegistry +import moe.nea.potatocrime.registry.PotatoTranslations import net.fabricmc.api.ModInitializer import net.fabricmc.fabric.api.`object`.builder.v1.entity.FabricDefaultAttributeRegistry +import net.minecraft.entity.SpawnReason +import net.minecraft.server.network.ServerPlayerEntity +import net.minecraft.server.world.ServerWorld +import net.minecraft.util.math.Direction +import net.minecraft.world.dimension.DimensionTypes import org.slf4j.LoggerFactory object PotatoCrime : ModInitializer { - val modId = "potato-crime" + val modId = "potato-crime" private val logger = LoggerFactory.getLogger("potato-crime") - override fun onInitialize() { - // This code runs as soon as Minecraft is in a mod-load-ready state. - // However, some things (like resources) may still be uninitialized. - // Proceed with mild caution. - logger.info("Hello Fabric world!") - PotatoRegistry.registerAll() - FabricDefaultAttributeRegistry.register(PotatoRegistry.potatoGuard, PotatoGuardEntity.createMobAttributes()) - } + override fun onInitialize() { + // This code runs as soon as Minecraft is in a mod-load-ready state. + // However, some things (like resources) may still be uninitialized. + // Proceed with mild caution. + logger.info("Hello Fabric world!") + PotatoRegistry.registerAll() + FabricDefaultAttributeRegistry.register(PotatoRegistry.potatoGuard, PotatoGuardEntity.createMobAttributes()) + OnEnterPotatoWorld.EVENT.register(OnEnterPotatoWorld { player -> + if (player is ServerPlayerEntity + && player.world.dimensionEntry.matchesKey(DimensionTypes.POTATO) + && hasContraband(player) + ) { + player.sendMessage(PotatoTranslations.youBrokeTheLaw.format()) + repeat(player.random.nextBetween(2, 4)) { + val randomOffsetPosition = + player.blockPos + .offset(Direction.Axis.X, player.random.nextBetween(-10, 10)) + .offset(Direction.Axis.Z, player.random.nextBetween(-10, 10)) + player.world.spawnEntity( + PotatoRegistry.potatoGuard.create( + player.world as ServerWorld, + null, + randomOffsetPosition, + SpawnReason.EVENT, + false, + false + ) + ) + } + } + }) + } + + fun hasContraband(entity: ServerPlayerEntity): Boolean { + return entity.inventory + .getMatchingStacks { it.isIn(PotatoRegistry.carrotIshItems) } + .isNotEmpty() + + } }
\ No newline at end of file |