Remove "phantom not spawned" achievement

This commit is contained in:
DBotThePony 2023-03-18 16:24:22 +07:00
parent ce224d6fe7
commit 9f78291b79
Signed by: DBot
GPG Key ID: DCC23B5715498507
4 changed files with 1 additions and 85 deletions

View File

@ -4,24 +4,17 @@ import net.minecraft.advancements.Advancement
import net.minecraft.advancements.AdvancementRewards
import net.minecraft.advancements.FrameType
import net.minecraft.advancements.RequirementsStrategy
import net.minecraft.advancements.critereon.DamagePredicate
import net.minecraft.advancements.critereon.DamageSourcePredicate
import net.minecraft.advancements.critereon.EntityPredicate
import net.minecraft.advancements.critereon.InventoryChangeTrigger
import net.minecraft.advancements.critereon.ItemPredicate
import net.minecraft.advancements.critereon.MinMaxBounds.Doubles
import net.minecraft.advancements.critereon.PlayerHurtEntityTrigger
import net.minecraft.resources.ResourceLocation
import net.minecraft.world.entity.EntityType
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Items
import net.minecraftforge.common.data.ExistingFileHelper
import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.datagen.DataGen
import ru.dbotthepony.mc.otm.datagen.lang.MatteryLanguageProvider
import ru.dbotthepony.mc.otm.datagen.modLocation
import ru.dbotthepony.mc.otm.registry.AndroidFeatures
import ru.dbotthepony.mc.otm.registry.MItemTags
import ru.dbotthepony.mc.otm.registry.MItems
import ru.dbotthepony.mc.otm.registry.MNames
import ru.dbotthepony.mc.otm.triggers.AndroidBatteryTrigger
@ -35,7 +28,6 @@ import ru.dbotthepony.mc.otm.triggers.EnderTeleporterFallDeathTrigger
import ru.dbotthepony.mc.otm.triggers.FallDampenersSaveTrigger
import ru.dbotthepony.mc.otm.triggers.KillAsAndroidTrigger
import ru.dbotthepony.mc.otm.triggers.NanobotsArmorTrigger
import ru.dbotthepony.mc.otm.triggers.PhantomSpawnDeniedTrigger
import ru.dbotthepony.mc.otm.triggers.ShockwaveDamageMobTrigger
import ru.dbotthepony.mc.otm.triggers.ShockwaveTrigger
import java.util.function.Consumer
@ -139,23 +131,8 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.addCriterion("become_humane", BecomeHumaneTrigger.Instance)
.save(serializer, modLocation("android/become_humane"), existingFileHelper)
val phantoms = AdvancementBuilder()
.parent(root)
.display(
itemStack = ItemStack(Items.PHANTOM_MEMBRANE),
title = translation.add("phantom_spawn_denied", "Insomnia Immune") {
russian("Пере-бессоница")
},
description = translation.add("phantom_spawn_denied.desc", "Have Phantoms not come after you because you are not someone who needs to sleep") {
russian("Не привлеките внимание Фантомов, так как вы не тот, кому надо спать")
},
hidden = true
)
.addCriterion("phantom_spawn_denied", PhantomSpawnDeniedTrigger.Instance)
.save(serializer, modLocation("android/phantom_spawn_denied"), existingFileHelper)
val attractor = AdvancementBuilder()
.parent(phantoms)
.parent(root)
.display(
itemStack = ItemStack(MItems.PHANTOM_ATTRACTOR),
title = translation.add("phantom_attractor", "Eversleeping Decoy") {

View File

@ -78,9 +78,7 @@ import ru.dbotthepony.mc.otm.triggers.BecomeAndroidDeathTrigger
import ru.dbotthepony.mc.otm.triggers.BecomeAndroidSleepTrigger
import ru.dbotthepony.mc.otm.triggers.BecomeAndroidTrigger
import ru.dbotthepony.mc.otm.triggers.BecomeHumaneTrigger
import ru.dbotthepony.mc.otm.triggers.PhantomSpawnDeniedTrigger
import java.util.*
import java.util.function.Predicate
import java.util.stream.Stream
import kotlin.collections.ArrayDeque
import kotlin.collections.ArrayList
@ -1261,32 +1259,6 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
}
}
fun canEntitySpawn(event: LivingSpawnEvent.CheckSpawn) {
if (event.spawnReason == MobSpawnType.NATURAL && event.entity is Phantom) {
for (ply in event.entity.level.players()) {
if (!ply.isSpectator && ply.matteryPlayer?.isAndroid == true) {
val feature = (ply.matteryPlayer?.getFeature(AndroidFeatures.PHANTOM_ATTRACTOR) as AndroidSwitchableFeature?)
if (feature?.isActive != 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
if (feature == null && ply is ServerPlayer) {
PhantomSpawnDeniedTrigger.trigger(ply)
}
return
}
}
}
}
}
}
/**
* this method is hooked through coremod transformer
*/

View File

@ -45,7 +45,6 @@ import ru.dbotthepony.mc.otm.triggers.BlackHoleTrigger
import ru.dbotthepony.mc.otm.triggers.EnderTeleporterFallDeathTrigger
import ru.dbotthepony.mc.otm.triggers.FallDampenersSaveTrigger
import ru.dbotthepony.mc.otm.triggers.NanobotsArmorTrigger
import ru.dbotthepony.mc.otm.triggers.PhantomSpawnDeniedTrigger
import ru.dbotthepony.mc.otm.triggers.ShockwaveDamageMobTrigger
import ru.dbotthepony.mc.otm.triggers.ShockwaveTrigger

View File

@ -1,32 +0,0 @@
package ru.dbotthepony.mc.otm.triggers
import com.google.gson.JsonObject
import net.minecraft.advancements.critereon.AbstractCriterionTriggerInstance
import net.minecraft.advancements.critereon.DeserializationContext
import net.minecraft.advancements.critereon.EntityPredicate.Composite
import net.minecraft.advancements.critereon.SimpleCriterionTrigger
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerPlayer
import ru.dbotthepony.mc.otm.OverdriveThatMatters
object PhantomSpawnDeniedTrigger : SimpleCriterionTrigger<PhantomSpawnDeniedTrigger.Instance>() {
val ID = ResourceLocation(OverdriveThatMatters.MOD_ID, "phantom_spawn_denied")
override fun getId(): ResourceLocation {
return ID
}
override fun createInstance(
p_66248_: JsonObject,
p_66249_: Composite,
p_66250_: DeserializationContext
): Instance {
return Instance
}
fun trigger(player: ServerPlayer) {
trigger(player) { true }
}
object Instance : AbstractCriterionTriggerInstance(ID, Composite.ANY)
}