Compare commits
2 Commits
5b1540df07
...
dbdc575c6c
Author | SHA1 | Date | |
---|---|---|---|
dbdc575c6c | |||
bf37573f35 |
@ -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);
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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')
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user