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.NORMAL, MatteryPlayer.Companion::onPlayerChangeDimensionEvent);
|
||||||
EVENT_BUS.addListener(EventPriority.LOWEST, MatteryPlayer.Companion::onPlayerDeath);
|
EVENT_BUS.addListener(EventPriority.LOWEST, MatteryPlayer.Companion::onPlayerDeath);
|
||||||
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayer.Companion::onPlayerCloneEvent);
|
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::onStartTracking);
|
||||||
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayer.Companion::onStopTracking);
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayer.Companion::onStopTracking);
|
||||||
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayer.Companion::addCommands);
|
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.LivingIncomingDamageEvent
|
||||||
import net.neoforged.neoforge.event.entity.living.MobEffectEvent
|
import net.neoforged.neoforge.event.entity.living.MobEffectEvent
|
||||||
import net.neoforged.neoforge.event.entity.player.PlayerEvent
|
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.event.tick.PlayerTickEvent
|
||||||
import net.neoforged.neoforge.network.PacketDistributor
|
import net.neoforged.neoforge.network.PacketDistributor
|
||||||
import net.neoforged.neoforge.server.command.EnumArgument
|
import net.neoforged.neoforge.server.command.EnumArgument
|
||||||
@ -1573,12 +1574,10 @@ class MatteryPlayer(val ply: Player) {
|
|||||||
|
|
||||||
private val LOGGER = LogManager.getLogger()
|
private val LOGGER = LogManager.getLogger()
|
||||||
|
|
||||||
/**
|
fun onPlayerSpawnPhantoms(event: PlayerSpawnPhantomsEvent) {
|
||||||
* hooked into PhantomSpawner through coremod script
|
if (event.entity.matteryPlayer.isAndroid) {
|
||||||
*/
|
event.result = PlayerSpawnPhantomsEvent.Result.DENY
|
||||||
@JvmStatic
|
}
|
||||||
fun phantomSpawnHook(iterator: Iterator<Player>): Iterator<Player> {
|
|
||||||
return iterator.filter { it.matteryPlayer.isAndroid != true }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
var ASMAPI = Java.type('net.neoforged.coremod.api.ASMAPI')
|
|
||||||
var Opcodes = Java.type('org.objectweb.asm.Opcodes')
|
var Opcodes = Java.type('org.objectweb.asm.Opcodes')
|
||||||
var MethodNode = Java.type('org.objectweb.asm.tree.MethodNode')
|
var MethodNode = Java.type('org.objectweb.asm.tree.MethodNode')
|
||||||
var VarInsnNode = Java.type('org.objectweb.asm.tree.VarInsnNode')
|
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 AbstractInsnNode = Java.type('org.objectweb.asm.tree.AbstractInsnNode')
|
||||||
var Opcodes = Java.type('org.objectweb.asm.Opcodes')
|
var Opcodes = Java.type('org.objectweb.asm.Opcodes')
|
||||||
var FieldInsnNode = Java.type('org.objectweb.asm.tree.FieldInsnNode')
|
var FieldInsnNode = Java.type('org.objectweb.asm.tree.FieldInsnNode')
|
||||||
@ -474,7 +473,7 @@ function method(path, transform) {
|
|||||||
'target': {
|
'target': {
|
||||||
'type': 'METHOD',
|
'type': 'METHOD',
|
||||||
'class': classname,
|
'class': classname,
|
||||||
'methodName': ASMAPI.mapMethod(methodName.substring(0, indexOf)),
|
'methodName': methodName.substring(0, indexOf),
|
||||||
'methodDesc': methodName.substring(indexOf)
|
'methodDesc': methodName.substring(indexOf)
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -577,29 +576,6 @@ function backtrack(instructions, from, opcode, skipAmount) {
|
|||||||
|
|
||||||
function initializeCoreMod() {
|
function initializeCoreMod() {
|
||||||
return {
|
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) {
|
'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++) {
|
for (var i = 0; i < node.instructions.size(); i++) {
|
||||||
var instr = node.instructions.get(i)
|
var instr = node.instructions.get(i)
|
||||||
|
Loading…
Reference in New Issue
Block a user