Compare commits

...

2 Commits

Author SHA1 Message Date
dbdc575c6c
epic remap fail 2024-09-05 02:36:52 +03:00
bf37573f35
вы больше не кормод 2024-09-05 02:32:02 +03:00
4 changed files with 7 additions and 32 deletions

View File

@ -191,6 +191,7 @@ public final class OverdriveThatMatters {
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayer.Companion::onPlayerChangeDimensionEvent);
EVENT_BUS.addListener(EventPriority.LOWEST, MatteryPlayer.Companion::onPlayerDeath);
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayer.Companion::onPlayerCloneEvent);
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayer.Companion::onPlayerSpawnPhantoms);
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayer.Companion::onStartTracking);
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayer.Companion::onStopTracking);
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayer.Companion::addCommands);

View File

@ -51,6 +51,7 @@ import net.neoforged.neoforge.event.entity.living.LivingDeathEvent
import net.neoforged.neoforge.event.entity.living.LivingIncomingDamageEvent
import net.neoforged.neoforge.event.entity.living.MobEffectEvent
import net.neoforged.neoforge.event.entity.player.PlayerEvent
import net.neoforged.neoforge.event.entity.player.PlayerSpawnPhantomsEvent
import net.neoforged.neoforge.event.tick.PlayerTickEvent
import net.neoforged.neoforge.network.PacketDistributor
import net.neoforged.neoforge.server.command.EnumArgument
@ -1573,12 +1574,10 @@ class MatteryPlayer(val ply: Player) {
private val LOGGER = LogManager.getLogger()
/**
* hooked into PhantomSpawner through coremod script
*/
@JvmStatic
fun phantomSpawnHook(iterator: Iterator<Player>): Iterator<Player> {
return iterator.filter { it.matteryPlayer.isAndroid != true }
fun onPlayerSpawnPhantoms(event: PlayerSpawnPhantomsEvent) {
if (event.entity.matteryPlayer.isAndroid) {
event.result = PlayerSpawnPhantomsEvent.Result.DENY
}
}
/**

View File

@ -1,5 +1,4 @@
var ASMAPI = Java.type('net.neoforged.coremod.api.ASMAPI')
var Opcodes = Java.type('org.objectweb.asm.Opcodes')
var MethodNode = Java.type('org.objectweb.asm.tree.MethodNode')
var VarInsnNode = Java.type('org.objectweb.asm.tree.VarInsnNode')

View File

@ -1,5 +1,4 @@
var ASMAPI = Java.type('net.neoforged.coremod.api.ASMAPI')
var AbstractInsnNode = Java.type('org.objectweb.asm.tree.AbstractInsnNode')
var Opcodes = Java.type('org.objectweb.asm.Opcodes')
var FieldInsnNode = Java.type('org.objectweb.asm.tree.FieldInsnNode')
@ -474,7 +473,7 @@ function method(path, transform) {
'target': {
'type': 'METHOD',
'class': classname,
'methodName': ASMAPI.mapMethod(methodName.substring(0, indexOf)),
'methodName': methodName.substring(0, indexOf),
'methodDesc': methodName.substring(indexOf)
},
@ -577,29 +576,6 @@ function backtrack(instructions, from, opcode, skipAmount) {
function initializeCoreMod() {
return {
'PhantomSpawner block spawns as android': method('net.minecraft.world.level.levelgen.PhantomSpawner.m_7995_(Lnet/minecraft/server/level/ServerLevel;ZZ)I', function(node) {
var players = ASMAPI.mapMethod('m_6907_')
for (var i = 0; i < node.instructions.size(); i++) {
var instr = node.instructions.get(i)
if (instr.getOpcode() == opcodesRemapped.invokevirtual && instr.name == players) {
putInstructions(node, node.instructions.get(i + 1), [
new MethodInsnNode(
opcodesRemapped.invokestatic,
'ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability',
'phantomSpawnHook',
'(Ljava/util/Iterator;)Ljava/util/Iterator;'
),
])
return node
}
}
return node
}),
'LivingEntity#addEatEffect patch for androids': method('net.minecraft.world.entity.LivingEntity.m_21063_(Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/LivingEntity;)V', function(node) {
for (var i = 0; i < node.instructions.size(); i++) {
var instr = node.instructions.get(i)