Prevent phantoms spawn by androids

This commit is contained in:
DBotThePony 2022-09-15 22:29:27 +07:00
parent e858807fd2
commit 86347f3373
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 23 additions and 0 deletions

View File

@ -109,6 +109,7 @@ public final class OverdriveThatMatters {
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayerCapability.Companion::onPlayerCloneEvent);
EVENT_BUS.addListener(EventPriority.LOW, MatteryPlayerCapability.Companion::onPickupEvent);
EVENT_BUS.addListener(EventPriority.HIGHEST, MatteryPlayerCapability.Companion::onLivingDrops);
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayerCapability.Companion::canEntitySpawn);
EVENT_BUS.addListener(EventPriority.LOW, MatterDataKt::serverStartData);
EVENT_BUS.addListener(EventPriority.NORMAL, MatterRegistryKt::onPlayerJoin);

View File

@ -14,7 +14,9 @@ import net.minecraft.world.effect.MobEffect
import net.minecraft.world.effect.MobEffects
import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.MobSpawnType
import net.minecraft.world.entity.item.ItemEntity
import net.minecraft.world.entity.monster.Phantom
import net.minecraft.world.entity.player.Player
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.enchantment.EnchantmentHelper.hasVanishingCurse
@ -28,9 +30,12 @@ import net.minecraftforge.event.TickEvent
import net.minecraftforge.event.TickEvent.PlayerTickEvent
import net.minecraftforge.event.entity.living.LivingDeathEvent
import net.minecraftforge.event.entity.living.LivingDropsEvent
import net.minecraftforge.event.entity.living.LivingEvent
import net.minecraftforge.event.entity.living.LivingHurtEvent
import net.minecraftforge.event.entity.living.LivingSpawnEvent
import net.minecraftforge.event.entity.player.EntityItemPickupEvent
import net.minecraftforge.event.entity.player.PlayerEvent
import net.minecraftforge.eventbus.api.Event
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent
import org.apache.commons.lang3.mutable.MutableInt
import org.apache.logging.log4j.LogManager
@ -809,6 +814,23 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
event.item.item.count = leftover.count
}
fun canEntitySpawn(event: LivingSpawnEvent.CheckSpawn) {
if (event.spawnReason == MobSpawnType.NATURAL && event.entity is Phantom) {
for (ply in event.entity.level.players()) {
if (ply.matteryPlayer?.isAndroid == true) {
if (
ply.position.y in event.y - 36.0 .. event.y - 19.0 &&
ply.position.x in event.x - 12.0 .. event.x + 12.0 &&
ply.position.z in event.z - 12.0 .. event.z + 12.0
) {
event.result = Event.Result.DENY
return
}
}
}
}
}
val DEFAULT_MAX_ANDROID_POWER = ImpreciseFraction(60000)
}
}