@skiddermaster412 said in hi I need help:
@chocopiexd so you are trying to send a packet in packet event?
idk if this works
function sendPacket(packet) {
var Class = Java.type("java.lang.Class");
Object.defineProperty(Array.prototype, "find", {
value: function (func, returnIndex) {
for (i in this) if (func(this[i], i, this)) return returnIndex ? +i : this[i];
return returnIndex ? -1 : null;
}
});
function getMethod(clazz, methodName) ((_method = Java.from((clazz instanceof Class ? clazz : clazz.class).getDeclaredMethods()).find(function (m) m.getName() == methodName)) && _method.setAccessible(true), _method);
function getField(clazz, fieldName) ((_field = getFields(clazz instanceof Class ? clazz : clazz.class).find(function (f) f.getName() == fieldName)) && _field.setAccessible(true), _field);
function getFields(clazz) {_fields = Java.from((clazz = clazz instanceof Class ? clazz : clazz.class).getDeclaredFields());while (clazz = clazz.superclass) _fields = _fields.concat(Java.from(clazz.getDeclaredFields()));return _fields;}
var networkManager = mc.getNetHandler().getNetworkManager();
var flushOutboundQueueMethod = getMethod(NetworkManager, "func_150733_h")
var dispatchPacketMethod = getMethod(NetworkManager, "func_150732_b");
var readWriteLockField = getField(NetworkManager, "field_181680_j");
var outboundPacketsQueueField = getField(NetworkManager, "field_150745_j");
if (networkManager.isChannelOpen()) {
flushOutboundQueueMethod.invoke(networkManager);
dispatchPacketMethod.invoke(networkManager, packet, null);
} else {
readWriteLockField.get(networkManager).writeLock().lock();
try {
outboundPackets = outboundPacketsQueueField.get(networkManager);
outboundPackets.add(new NetworkManager.InboundHandlerTuplePacketListener(packet, null));
outboundPacketsQueueField.set(networkManager, _outboundPackets);
} finally {
readWriteLockField.get(networkManager).writeLock().unlock();
}
}
}
skidded from core
probably it should work since it's skidded from core