Updated Netty library.
This commit is contained in:
parent
5bcfc9ed76
commit
bcee886363
@ -8,7 +8,7 @@
|
||||
<classpathentry kind="lib" path="dist/libs/mail-1.5.2.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/mchange-commons-java-0.2.11.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/mysql-connector-java-5.1.38-bin.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/netty-all-5.0.0.Alpha2.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/netty-all-4.1.14.Final.jar"/>
|
||||
<classpathentry including="**/*.java" kind="src" path="dist/game/data/scripts"/>
|
||||
<classpathentry kind="src" path="java"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
|
BIN
L2J_Mobius_Classic/dist/libs/netty-all-4.1.14.Final.jar
vendored
Normal file
BIN
L2J_Mobius_Classic/dist/libs/netty-all-4.1.14.Final.jar
vendored
Normal file
Binary file not shown.
@ -56,7 +56,7 @@ public final class PacketReader
|
||||
*/
|
||||
public int readH()
|
||||
{
|
||||
return _buf.readUnsignedShort();
|
||||
return _buf.readUnsignedShortLE();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -66,7 +66,7 @@ public final class PacketReader
|
||||
*/
|
||||
public int readD()
|
||||
{
|
||||
return _buf.readInt();
|
||||
return _buf.readIntLE();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -76,7 +76,7 @@ public final class PacketReader
|
||||
*/
|
||||
public long readQ()
|
||||
{
|
||||
return _buf.readLong();
|
||||
return _buf.readLongLE();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -86,7 +86,7 @@ public final class PacketReader
|
||||
*/
|
||||
public float readE()
|
||||
{
|
||||
return _buf.readFloat();
|
||||
return Float.intBitsToFloat(_buf.readIntLE());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -96,7 +96,7 @@ public final class PacketReader
|
||||
*/
|
||||
public double readF()
|
||||
{
|
||||
return _buf.readDouble();
|
||||
return Double.longBitsToDouble(_buf.readLongLE());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -108,7 +108,7 @@ public final class PacketReader
|
||||
{
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
char chr;
|
||||
while ((chr = _buf.readChar()) != 0)
|
||||
while ((chr = Character.reverseBytes(_buf.readChar())) != 0)
|
||||
{
|
||||
sb.append(chr);
|
||||
}
|
||||
@ -123,7 +123,7 @@ public final class PacketReader
|
||||
public String readString()
|
||||
{
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
final int stringLength = _buf.readShort();
|
||||
final int stringLength = _buf.readShortLE();
|
||||
if ((stringLength * 2) > getReadableBytes())
|
||||
{
|
||||
throw new IndexOutOfBoundsException("readerIndex(" + _buf.readerIndex() + ") + length(" + (stringLength * 2) + ") exceeds writerIndex(" + _buf.writerIndex() + "): " + _buf);
|
||||
@ -131,7 +131,7 @@ public final class PacketReader
|
||||
|
||||
for (int i = 0; i < stringLength; i++)
|
||||
{
|
||||
sb.append(_buf.readChar());
|
||||
sb.append(Character.reverseBytes(_buf.readChar()));
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeH(int value)
|
||||
{
|
||||
_buf.writeShort(value);
|
||||
_buf.writeShortLE(value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -63,7 +63,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeD(int value)
|
||||
{
|
||||
_buf.writeInt(value);
|
||||
_buf.writeIntLE(value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -72,7 +72,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeQ(long value)
|
||||
{
|
||||
_buf.writeLong(value);
|
||||
_buf.writeLongLE(value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -81,7 +81,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeE(float value)
|
||||
{
|
||||
_buf.writeFloat(value);
|
||||
_buf.writeIntLE(Float.floatToIntBits(value));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -90,7 +90,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeF(double value)
|
||||
{
|
||||
_buf.writeDouble(value);
|
||||
_buf.writeLongLE(Double.doubleToLongBits(value));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -103,7 +103,7 @@ public final class PacketWriter
|
||||
{
|
||||
for (int i = 0; i < value.length(); i++)
|
||||
{
|
||||
_buf.writeChar(value.charAt(i));
|
||||
_buf.writeChar(Character.reverseBytes(value.charAt(i)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,10 +118,10 @@ public final class PacketWriter
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
_buf.writeShort(value.length());
|
||||
_buf.writeShortLE(value.length());
|
||||
for (int i = 0; i < value.length(); i++)
|
||||
{
|
||||
_buf.writeChar(value.charAt(i));
|
||||
_buf.writeChar(Character.reverseBytes(value.charAt(i)));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.commons.network.codecs;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.List;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@ -35,7 +34,7 @@ public class LengthFieldBasedFrameEncoder extends MessageToMessageEncoder<ByteBu
|
||||
{
|
||||
final ByteBuf buf = ctx.alloc().buffer(2);
|
||||
final short length = (short) (msg.readableBytes() + 2);
|
||||
buf.writeShort(buf.order() != ByteOrder.LITTLE_ENDIAN ? Short.reverseBytes(length) : length);
|
||||
buf.writeShortLE(length);
|
||||
out.add(buf);
|
||||
out.add(msg.retain());
|
||||
}
|
||||
|
@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.commons.network.codecs;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -37,13 +36,11 @@ public class PacketDecoder<T>extends ByteToMessageDecoder
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(PacketDecoder.class.getName());
|
||||
|
||||
private final ByteOrder _byteOrder;
|
||||
private final IIncomingPackets<T>[] _incomingPackets;
|
||||
private final T _client;
|
||||
|
||||
public PacketDecoder(ByteOrder byteOrder, IIncomingPackets<T>[] incomingPackets, T client)
|
||||
public PacketDecoder(IIncomingPackets<T>[] incomingPackets, T client)
|
||||
{
|
||||
_byteOrder = byteOrder;
|
||||
_incomingPackets = incomingPackets;
|
||||
_client = client;
|
||||
}
|
||||
@ -56,11 +53,6 @@ public class PacketDecoder<T>extends ByteToMessageDecoder
|
||||
return;
|
||||
}
|
||||
|
||||
if (in.order() != _byteOrder)
|
||||
{
|
||||
in = in.order(_byteOrder);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
final short packetId = in.readUnsignedByte();
|
||||
|
@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.commons.network.codecs;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -36,24 +35,17 @@ public class PacketEncoder extends MessageToByteEncoder<IOutgoingPacket>
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(PacketEncoder.class.getName());
|
||||
|
||||
private final ByteOrder _byteOrder;
|
||||
private final int _maxPacketSize;
|
||||
|
||||
public PacketEncoder(ByteOrder byteOrder, int maxPacketSize)
|
||||
public PacketEncoder(int maxPacketSize)
|
||||
{
|
||||
super();
|
||||
_byteOrder = byteOrder;
|
||||
_maxPacketSize = maxPacketSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void encode(ChannelHandlerContext ctx, IOutgoingPacket packet, ByteBuf out)
|
||||
{
|
||||
if (out.order() != _byteOrder)
|
||||
{
|
||||
out = out.order(_byteOrder);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (packet.write(new PacketWriter(out)))
|
||||
|
@ -33,7 +33,7 @@ import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
|
||||
public class ClientInitializer extends ChannelInitializer<SocketChannel>
|
||||
{
|
||||
private static final LengthFieldBasedFrameEncoder LENGTH_ENCODER = new LengthFieldBasedFrameEncoder();
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(ByteOrder.LITTLE_ENDIAN, 0x8000 - 2);
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(0x8000 - 2);
|
||||
|
||||
@Override
|
||||
protected void initChannel(SocketChannel ch)
|
||||
@ -43,7 +43,7 @@ public class ClientInitializer extends ChannelInitializer<SocketChannel>
|
||||
ch.pipeline().addLast("length-encoder", LENGTH_ENCODER);
|
||||
ch.pipeline().addLast("crypt-codec", new CryptCodec(client.getCrypt()));
|
||||
// ch.pipeline().addLast(new LoggingHandler(LogLevel.INFO));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(ByteOrder.LITTLE_ENDIAN, IncomingPackets.PACKET_ARRAY, client));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(IncomingPackets.PACKET_ARRAY, client));
|
||||
ch.pipeline().addLast("packet-encoder", PACKET_ENCODER);
|
||||
ch.pipeline().addLast(client);
|
||||
}
|
||||
|
@ -155,7 +155,7 @@ public final class L2GameClient extends ChannelInboundHandler<L2GameClient>
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, IIncomingPacket<L2GameClient> packet)
|
||||
protected void channelRead0(ChannelHandlerContext ctx, IIncomingPacket<L2GameClient> packet)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -27,7 +27,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
public class LoginServerHandler extends ChannelInboundHandler<LoginServerHandler>
|
||||
{
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, IIncomingPacket<LoginServerHandler> msg) throws Exception
|
||||
protected void channelRead0(ChannelHandlerContext ctx, IIncomingPacket<LoginServerHandler> msg) throws Exception
|
||||
{
|
||||
msg.run(this);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
|
||||
public class LoginServerInitializer extends ChannelInitializer<SocketChannel>
|
||||
{
|
||||
private static final LengthFieldBasedFrameEncoder LENGTH_ENCODER = new LengthFieldBasedFrameEncoder();
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(ByteOrder.LITTLE_ENDIAN, 0x8000 - 2);
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(0x8000 - 2);
|
||||
|
||||
@Override
|
||||
protected void initChannel(SocketChannel ch)
|
||||
@ -41,7 +41,7 @@ public class LoginServerInitializer extends ChannelInitializer<SocketChannel>
|
||||
ch.pipeline().addLast("length-decoder", new LengthFieldBasedFrameDecoder(ByteOrder.LITTLE_ENDIAN, 0x8000 - 2, 0, 2, -2, 2, false));
|
||||
ch.pipeline().addLast("length-encoder", LENGTH_ENCODER);
|
||||
// ch.pipeline().addLast(new LoggingHandler(LogLevel.INFO));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(ByteOrder.LITTLE_ENDIAN, IncomingPackets.PACKET_ARRAY, loginServerHandler));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(IncomingPackets.PACKET_ARRAY, loginServerHandler));
|
||||
ch.pipeline().addLast("packet-encoder", PACKET_ENCODER);
|
||||
ch.pipeline().addLast(loginServerHandler);
|
||||
}
|
||||
|
@ -27,15 +27,15 @@ import com.l2jmobius.Config;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerAdapter;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||
import io.netty.util.AttributeKey;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
*/
|
||||
@Sharable
|
||||
public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
public class TelnetServerHandler extends ChannelInboundHandlerAdapter
|
||||
{
|
||||
private static final Pattern COMMAND_ARGS_PATTERN = Pattern.compile("\"([^\"]*)\"|([^\\s]+)");
|
||||
private static final AttributeKey<Boolean> AUTHORIZED = AttributeKey.valueOf(TelnetServerHandler.class, "AUTHORIZED");
|
||||
@ -58,7 +58,7 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
}
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx)
|
||||
public void handlerAdded(ChannelHandlerContext ctx)
|
||||
{
|
||||
String ip = ctx.channel().remoteAddress().toString();
|
||||
ip = ip.substring(1, ip.lastIndexOf(':')); // Trim out /127.0.0.1:14013
|
||||
@ -79,12 +79,12 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
{
|
||||
// Ask password
|
||||
ctx.write("Password:");
|
||||
ctx.attr(AUTHORIZED).set(Boolean.FALSE);
|
||||
ctx.channel().attr(AUTHORIZED).set(Boolean.FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ctx.write("Type 'help' to see all available commands." + Config.EOL);
|
||||
ctx.attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
ctx.channel().attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
}
|
||||
ctx.flush();
|
||||
}
|
||||
@ -100,11 +100,11 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
String response = null;
|
||||
boolean close = false;
|
||||
|
||||
if (Boolean.FALSE.equals(ctx.attr(AUTHORIZED).get()))
|
||||
if (Boolean.FALSE.equals(ctx.channel().attr(AUTHORIZED).get()))
|
||||
{
|
||||
if (Config.TELNET_PASSWORD.equals(request))
|
||||
{
|
||||
ctx.attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
ctx.channel().attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
request = "";
|
||||
}
|
||||
else
|
||||
@ -114,7 +114,7 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
}
|
||||
}
|
||||
|
||||
if (Boolean.TRUE.equals(ctx.attr(AUTHORIZED).get()))
|
||||
if (Boolean.TRUE.equals(ctx.channel().attr(AUTHORIZED).get()))
|
||||
{
|
||||
if (request.isEmpty())
|
||||
{
|
||||
|
@ -7,7 +7,7 @@
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/netty-all-4.1.14.Final.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
</listAttribute>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/netty-all-4.1.14.Final.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
</listAttribute>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<classpathentry kind="lib" path="dist/libs/mail-1.5.2.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/mchange-commons-java-0.2.11.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/mysql-connector-java-5.1.38-bin.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/netty-all-5.0.0.Alpha2.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/netty-all-4.1.14.Final.jar"/>
|
||||
<classpathentry including="**/*.java" kind="src" path="dist/game/data/scripts"/>
|
||||
<classpathentry kind="src" path="java"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
|
BIN
L2J_Mobius_Helios/dist/libs/netty-all-4.1.14.Final.jar
vendored
Normal file
BIN
L2J_Mobius_Helios/dist/libs/netty-all-4.1.14.Final.jar
vendored
Normal file
Binary file not shown.
Binary file not shown.
@ -56,7 +56,7 @@ public final class PacketReader
|
||||
*/
|
||||
public int readH()
|
||||
{
|
||||
return _buf.readUnsignedShort();
|
||||
return _buf.readUnsignedShortLE();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -66,7 +66,7 @@ public final class PacketReader
|
||||
*/
|
||||
public int readD()
|
||||
{
|
||||
return _buf.readInt();
|
||||
return _buf.readIntLE();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -76,7 +76,7 @@ public final class PacketReader
|
||||
*/
|
||||
public long readQ()
|
||||
{
|
||||
return _buf.readLong();
|
||||
return _buf.readLongLE();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -86,7 +86,7 @@ public final class PacketReader
|
||||
*/
|
||||
public float readE()
|
||||
{
|
||||
return _buf.readFloat();
|
||||
return Float.intBitsToFloat(_buf.readIntLE());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -96,7 +96,7 @@ public final class PacketReader
|
||||
*/
|
||||
public double readF()
|
||||
{
|
||||
return _buf.readDouble();
|
||||
return Double.longBitsToDouble(_buf.readLongLE());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -108,7 +108,7 @@ public final class PacketReader
|
||||
{
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
char chr;
|
||||
while ((chr = _buf.readChar()) != 0)
|
||||
while ((chr = Character.reverseBytes(_buf.readChar())) != 0)
|
||||
{
|
||||
sb.append(chr);
|
||||
}
|
||||
@ -123,7 +123,7 @@ public final class PacketReader
|
||||
public String readString()
|
||||
{
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
final int stringLength = _buf.readShort();
|
||||
final int stringLength = _buf.readShortLE();
|
||||
if ((stringLength * 2) > getReadableBytes())
|
||||
{
|
||||
throw new IndexOutOfBoundsException("readerIndex(" + _buf.readerIndex() + ") + length(" + (stringLength * 2) + ") exceeds writerIndex(" + _buf.writerIndex() + "): " + _buf);
|
||||
@ -131,7 +131,7 @@ public final class PacketReader
|
||||
|
||||
for (int i = 0; i < stringLength; i++)
|
||||
{
|
||||
sb.append(_buf.readChar());
|
||||
sb.append(Character.reverseBytes(_buf.readChar()));
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeH(int value)
|
||||
{
|
||||
_buf.writeShort(value);
|
||||
_buf.writeShortLE(value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -63,7 +63,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeD(int value)
|
||||
{
|
||||
_buf.writeInt(value);
|
||||
_buf.writeIntLE(value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -72,7 +72,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeQ(long value)
|
||||
{
|
||||
_buf.writeLong(value);
|
||||
_buf.writeLongLE(value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -81,7 +81,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeE(float value)
|
||||
{
|
||||
_buf.writeFloat(value);
|
||||
_buf.writeIntLE(Float.floatToIntBits(value));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -90,7 +90,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeF(double value)
|
||||
{
|
||||
_buf.writeDouble(value);
|
||||
_buf.writeLongLE(Double.doubleToLongBits(value));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -103,7 +103,7 @@ public final class PacketWriter
|
||||
{
|
||||
for (int i = 0; i < value.length(); i++)
|
||||
{
|
||||
_buf.writeChar(value.charAt(i));
|
||||
_buf.writeChar(Character.reverseBytes(value.charAt(i)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,10 +118,10 @@ public final class PacketWriter
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
_buf.writeShort(value.length());
|
||||
_buf.writeShortLE(value.length());
|
||||
for (int i = 0; i < value.length(); i++)
|
||||
{
|
||||
_buf.writeChar(value.charAt(i));
|
||||
_buf.writeChar(Character.reverseBytes(value.charAt(i)));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.commons.network.codecs;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.List;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@ -35,7 +34,7 @@ public class LengthFieldBasedFrameEncoder extends MessageToMessageEncoder<ByteBu
|
||||
{
|
||||
final ByteBuf buf = ctx.alloc().buffer(2);
|
||||
final short length = (short) (msg.readableBytes() + 2);
|
||||
buf.writeShort(buf.order() != ByteOrder.LITTLE_ENDIAN ? Short.reverseBytes(length) : length);
|
||||
buf.writeShortLE(length);
|
||||
out.add(buf);
|
||||
out.add(msg.retain());
|
||||
}
|
||||
|
@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.commons.network.codecs;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -37,13 +36,11 @@ public class PacketDecoder<T>extends ByteToMessageDecoder
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(PacketDecoder.class.getName());
|
||||
|
||||
private final ByteOrder _byteOrder;
|
||||
private final IIncomingPackets<T>[] _incomingPackets;
|
||||
private final T _client;
|
||||
|
||||
public PacketDecoder(ByteOrder byteOrder, IIncomingPackets<T>[] incomingPackets, T client)
|
||||
public PacketDecoder(IIncomingPackets<T>[] incomingPackets, T client)
|
||||
{
|
||||
_byteOrder = byteOrder;
|
||||
_incomingPackets = incomingPackets;
|
||||
_client = client;
|
||||
}
|
||||
@ -56,11 +53,6 @@ public class PacketDecoder<T>extends ByteToMessageDecoder
|
||||
return;
|
||||
}
|
||||
|
||||
if (in.order() != _byteOrder)
|
||||
{
|
||||
in = in.order(_byteOrder);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
final short packetId = in.readUnsignedByte();
|
||||
|
@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.commons.network.codecs;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -36,24 +35,17 @@ public class PacketEncoder extends MessageToByteEncoder<IOutgoingPacket>
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(PacketEncoder.class.getName());
|
||||
|
||||
private final ByteOrder _byteOrder;
|
||||
private final int _maxPacketSize;
|
||||
|
||||
public PacketEncoder(ByteOrder byteOrder, int maxPacketSize)
|
||||
public PacketEncoder(int maxPacketSize)
|
||||
{
|
||||
super();
|
||||
_byteOrder = byteOrder;
|
||||
_maxPacketSize = maxPacketSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void encode(ChannelHandlerContext ctx, IOutgoingPacket packet, ByteBuf out)
|
||||
{
|
||||
if (out.order() != _byteOrder)
|
||||
{
|
||||
out = out.order(_byteOrder);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (packet.write(new PacketWriter(out)))
|
||||
|
@ -33,7 +33,7 @@ import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
|
||||
public class ClientInitializer extends ChannelInitializer<SocketChannel>
|
||||
{
|
||||
private static final LengthFieldBasedFrameEncoder LENGTH_ENCODER = new LengthFieldBasedFrameEncoder();
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(ByteOrder.LITTLE_ENDIAN, 0x8000 - 2);
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(0x8000 - 2);
|
||||
|
||||
@Override
|
||||
protected void initChannel(SocketChannel ch)
|
||||
@ -43,7 +43,7 @@ public class ClientInitializer extends ChannelInitializer<SocketChannel>
|
||||
ch.pipeline().addLast("length-encoder", LENGTH_ENCODER);
|
||||
ch.pipeline().addLast("crypt-codec", new CryptCodec(client.getCrypt()));
|
||||
// ch.pipeline().addLast(new LoggingHandler(LogLevel.INFO));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(ByteOrder.LITTLE_ENDIAN, IncomingPackets.PACKET_ARRAY, client));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(IncomingPackets.PACKET_ARRAY, client));
|
||||
ch.pipeline().addLast("packet-encoder", PACKET_ENCODER);
|
||||
ch.pipeline().addLast(client);
|
||||
}
|
||||
|
@ -155,7 +155,7 @@ public final class L2GameClient extends ChannelInboundHandler<L2GameClient>
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, IIncomingPacket<L2GameClient> packet)
|
||||
protected void channelRead0(ChannelHandlerContext ctx, IIncomingPacket<L2GameClient> packet)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -27,7 +27,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
public class LoginServerHandler extends ChannelInboundHandler<LoginServerHandler>
|
||||
{
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, IIncomingPacket<LoginServerHandler> msg) throws Exception
|
||||
protected void channelRead0(ChannelHandlerContext ctx, IIncomingPacket<LoginServerHandler> msg) throws Exception
|
||||
{
|
||||
msg.run(this);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
|
||||
public class LoginServerInitializer extends ChannelInitializer<SocketChannel>
|
||||
{
|
||||
private static final LengthFieldBasedFrameEncoder LENGTH_ENCODER = new LengthFieldBasedFrameEncoder();
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(ByteOrder.LITTLE_ENDIAN, 0x8000 - 2);
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(0x8000 - 2);
|
||||
|
||||
@Override
|
||||
protected void initChannel(SocketChannel ch)
|
||||
@ -41,7 +41,7 @@ public class LoginServerInitializer extends ChannelInitializer<SocketChannel>
|
||||
ch.pipeline().addLast("length-decoder", new LengthFieldBasedFrameDecoder(ByteOrder.LITTLE_ENDIAN, 0x8000 - 2, 0, 2, -2, 2, false));
|
||||
ch.pipeline().addLast("length-encoder", LENGTH_ENCODER);
|
||||
// ch.pipeline().addLast(new LoggingHandler(LogLevel.INFO));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(ByteOrder.LITTLE_ENDIAN, IncomingPackets.PACKET_ARRAY, loginServerHandler));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(IncomingPackets.PACKET_ARRAY, loginServerHandler));
|
||||
ch.pipeline().addLast("packet-encoder", PACKET_ENCODER);
|
||||
ch.pipeline().addLast(loginServerHandler);
|
||||
}
|
||||
|
@ -27,15 +27,15 @@ import com.l2jmobius.Config;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerAdapter;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||
import io.netty.util.AttributeKey;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
*/
|
||||
@Sharable
|
||||
public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
public class TelnetServerHandler extends ChannelInboundHandlerAdapter
|
||||
{
|
||||
private static final Pattern COMMAND_ARGS_PATTERN = Pattern.compile("\"([^\"]*)\"|([^\\s]+)");
|
||||
private static final AttributeKey<Boolean> AUTHORIZED = AttributeKey.valueOf(TelnetServerHandler.class, "AUTHORIZED");
|
||||
@ -58,7 +58,7 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
}
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx)
|
||||
public void handlerAdded(ChannelHandlerContext ctx)
|
||||
{
|
||||
String ip = ctx.channel().remoteAddress().toString();
|
||||
ip = ip.substring(1, ip.lastIndexOf(':')); // Trim out /127.0.0.1:14013
|
||||
@ -79,12 +79,12 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
{
|
||||
// Ask password
|
||||
ctx.write("Password:");
|
||||
ctx.attr(AUTHORIZED).set(Boolean.FALSE);
|
||||
ctx.channel().attr(AUTHORIZED).set(Boolean.FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ctx.write("Type 'help' to see all available commands." + Config.EOL);
|
||||
ctx.attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
ctx.channel().attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
}
|
||||
ctx.flush();
|
||||
}
|
||||
@ -100,11 +100,11 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
String response = null;
|
||||
boolean close = false;
|
||||
|
||||
if (Boolean.FALSE.equals(ctx.attr(AUTHORIZED).get()))
|
||||
if (Boolean.FALSE.equals(ctx.channel().attr(AUTHORIZED).get()))
|
||||
{
|
||||
if (Config.TELNET_PASSWORD.equals(request))
|
||||
{
|
||||
ctx.attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
ctx.channel().attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
request = "";
|
||||
}
|
||||
else
|
||||
@ -114,7 +114,7 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
}
|
||||
}
|
||||
|
||||
if (Boolean.TRUE.equals(ctx.attr(AUTHORIZED).get()))
|
||||
if (Boolean.TRUE.equals(ctx.channel().attr(AUTHORIZED).get()))
|
||||
{
|
||||
if (request.isEmpty())
|
||||
{
|
||||
|
@ -7,7 +7,7 @@
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/netty-all-4.1.14.Final.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
</listAttribute>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/netty-all-4.1.14.Final.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
</listAttribute>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<classpathentry kind="lib" path="dist/libs/mail-1.5.2.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/mchange-commons-java-0.2.11.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/mysql-connector-java-5.1.38-bin.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/netty-all-5.0.0.Alpha2.jar"/>
|
||||
<classpathentry kind="lib" path="dist/libs/netty-all-4.1.14.Final.jar"/>
|
||||
<classpathentry including="**/*.java" kind="src" path="dist/game/data/scripts"/>
|
||||
<classpathentry kind="src" path="java"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
|
BIN
L2J_Mobius_Underground/dist/libs/netty-all-4.1.14.Final.jar
vendored
Normal file
BIN
L2J_Mobius_Underground/dist/libs/netty-all-4.1.14.Final.jar
vendored
Normal file
Binary file not shown.
Binary file not shown.
@ -56,7 +56,7 @@ public final class PacketReader
|
||||
*/
|
||||
public int readH()
|
||||
{
|
||||
return _buf.readUnsignedShort();
|
||||
return _buf.readUnsignedShortLE();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -66,7 +66,7 @@ public final class PacketReader
|
||||
*/
|
||||
public int readD()
|
||||
{
|
||||
return _buf.readInt();
|
||||
return _buf.readIntLE();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -76,7 +76,7 @@ public final class PacketReader
|
||||
*/
|
||||
public long readQ()
|
||||
{
|
||||
return _buf.readLong();
|
||||
return _buf.readLongLE();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -86,7 +86,7 @@ public final class PacketReader
|
||||
*/
|
||||
public float readE()
|
||||
{
|
||||
return _buf.readFloat();
|
||||
return Float.intBitsToFloat(_buf.readIntLE());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -96,7 +96,7 @@ public final class PacketReader
|
||||
*/
|
||||
public double readF()
|
||||
{
|
||||
return _buf.readDouble();
|
||||
return Double.longBitsToDouble(_buf.readLongLE());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -108,7 +108,7 @@ public final class PacketReader
|
||||
{
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
char chr;
|
||||
while ((chr = _buf.readChar()) != 0)
|
||||
while ((chr = Character.reverseBytes(_buf.readChar())) != 0)
|
||||
{
|
||||
sb.append(chr);
|
||||
}
|
||||
@ -123,7 +123,7 @@ public final class PacketReader
|
||||
public String readString()
|
||||
{
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
final int stringLength = _buf.readShort();
|
||||
final int stringLength = _buf.readShortLE();
|
||||
if ((stringLength * 2) > getReadableBytes())
|
||||
{
|
||||
throw new IndexOutOfBoundsException("readerIndex(" + _buf.readerIndex() + ") + length(" + (stringLength * 2) + ") exceeds writerIndex(" + _buf.writerIndex() + "): " + _buf);
|
||||
@ -131,7 +131,7 @@ public final class PacketReader
|
||||
|
||||
for (int i = 0; i < stringLength; i++)
|
||||
{
|
||||
sb.append(_buf.readChar());
|
||||
sb.append(Character.reverseBytes(_buf.readChar()));
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeH(int value)
|
||||
{
|
||||
_buf.writeShort(value);
|
||||
_buf.writeShortLE(value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -63,7 +63,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeD(int value)
|
||||
{
|
||||
_buf.writeInt(value);
|
||||
_buf.writeIntLE(value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -72,7 +72,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeQ(long value)
|
||||
{
|
||||
_buf.writeLong(value);
|
||||
_buf.writeLongLE(value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -81,7 +81,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeE(float value)
|
||||
{
|
||||
_buf.writeFloat(value);
|
||||
_buf.writeIntLE(Float.floatToIntBits(value));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -90,7 +90,7 @@ public final class PacketWriter
|
||||
*/
|
||||
public void writeF(double value)
|
||||
{
|
||||
_buf.writeDouble(value);
|
||||
_buf.writeLongLE(Double.doubleToLongBits(value));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -103,7 +103,7 @@ public final class PacketWriter
|
||||
{
|
||||
for (int i = 0; i < value.length(); i++)
|
||||
{
|
||||
_buf.writeChar(value.charAt(i));
|
||||
_buf.writeChar(Character.reverseBytes(value.charAt(i)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,10 +118,10 @@ public final class PacketWriter
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
_buf.writeShort(value.length());
|
||||
_buf.writeShortLE(value.length());
|
||||
for (int i = 0; i < value.length(); i++)
|
||||
{
|
||||
_buf.writeChar(value.charAt(i));
|
||||
_buf.writeChar(Character.reverseBytes(value.charAt(i)));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.commons.network.codecs;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.List;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@ -35,7 +34,7 @@ public class LengthFieldBasedFrameEncoder extends MessageToMessageEncoder<ByteBu
|
||||
{
|
||||
final ByteBuf buf = ctx.alloc().buffer(2);
|
||||
final short length = (short) (msg.readableBytes() + 2);
|
||||
buf.writeShort(buf.order() != ByteOrder.LITTLE_ENDIAN ? Short.reverseBytes(length) : length);
|
||||
buf.writeShortLE(length);
|
||||
out.add(buf);
|
||||
out.add(msg.retain());
|
||||
}
|
||||
|
@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.commons.network.codecs;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -37,13 +36,11 @@ public class PacketDecoder<T>extends ByteToMessageDecoder
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(PacketDecoder.class.getName());
|
||||
|
||||
private final ByteOrder _byteOrder;
|
||||
private final IIncomingPackets<T>[] _incomingPackets;
|
||||
private final T _client;
|
||||
|
||||
public PacketDecoder(ByteOrder byteOrder, IIncomingPackets<T>[] incomingPackets, T client)
|
||||
public PacketDecoder(IIncomingPackets<T>[] incomingPackets, T client)
|
||||
{
|
||||
_byteOrder = byteOrder;
|
||||
_incomingPackets = incomingPackets;
|
||||
_client = client;
|
||||
}
|
||||
@ -56,11 +53,6 @@ public class PacketDecoder<T>extends ByteToMessageDecoder
|
||||
return;
|
||||
}
|
||||
|
||||
if (in.order() != _byteOrder)
|
||||
{
|
||||
in = in.order(_byteOrder);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
final short packetId = in.readUnsignedByte();
|
||||
|
@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.commons.network.codecs;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -36,24 +35,17 @@ public class PacketEncoder extends MessageToByteEncoder<IOutgoingPacket>
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(PacketEncoder.class.getName());
|
||||
|
||||
private final ByteOrder _byteOrder;
|
||||
private final int _maxPacketSize;
|
||||
|
||||
public PacketEncoder(ByteOrder byteOrder, int maxPacketSize)
|
||||
public PacketEncoder(int maxPacketSize)
|
||||
{
|
||||
super();
|
||||
_byteOrder = byteOrder;
|
||||
_maxPacketSize = maxPacketSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void encode(ChannelHandlerContext ctx, IOutgoingPacket packet, ByteBuf out)
|
||||
{
|
||||
if (out.order() != _byteOrder)
|
||||
{
|
||||
out = out.order(_byteOrder);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (packet.write(new PacketWriter(out)))
|
||||
|
@ -33,7 +33,7 @@ import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
|
||||
public class ClientInitializer extends ChannelInitializer<SocketChannel>
|
||||
{
|
||||
private static final LengthFieldBasedFrameEncoder LENGTH_ENCODER = new LengthFieldBasedFrameEncoder();
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(ByteOrder.LITTLE_ENDIAN, 0x8000 - 2);
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(0x8000 - 2);
|
||||
|
||||
@Override
|
||||
protected void initChannel(SocketChannel ch)
|
||||
@ -43,7 +43,7 @@ public class ClientInitializer extends ChannelInitializer<SocketChannel>
|
||||
ch.pipeline().addLast("length-encoder", LENGTH_ENCODER);
|
||||
ch.pipeline().addLast("crypt-codec", new CryptCodec(client.getCrypt()));
|
||||
// ch.pipeline().addLast(new LoggingHandler(LogLevel.INFO));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(ByteOrder.LITTLE_ENDIAN, IncomingPackets.PACKET_ARRAY, client));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(IncomingPackets.PACKET_ARRAY, client));
|
||||
ch.pipeline().addLast("packet-encoder", PACKET_ENCODER);
|
||||
ch.pipeline().addLast(client);
|
||||
}
|
||||
|
@ -155,7 +155,7 @@ public final class L2GameClient extends ChannelInboundHandler<L2GameClient>
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, IIncomingPacket<L2GameClient> packet)
|
||||
protected void channelRead0(ChannelHandlerContext ctx, IIncomingPacket<L2GameClient> packet)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -27,7 +27,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
public class LoginServerHandler extends ChannelInboundHandler<LoginServerHandler>
|
||||
{
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, IIncomingPacket<LoginServerHandler> msg) throws Exception
|
||||
protected void channelRead0(ChannelHandlerContext ctx, IIncomingPacket<LoginServerHandler> msg) throws Exception
|
||||
{
|
||||
msg.run(this);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
|
||||
public class LoginServerInitializer extends ChannelInitializer<SocketChannel>
|
||||
{
|
||||
private static final LengthFieldBasedFrameEncoder LENGTH_ENCODER = new LengthFieldBasedFrameEncoder();
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(ByteOrder.LITTLE_ENDIAN, 0x8000 - 2);
|
||||
private static final PacketEncoder PACKET_ENCODER = new PacketEncoder(0x8000 - 2);
|
||||
|
||||
@Override
|
||||
protected void initChannel(SocketChannel ch)
|
||||
@ -41,7 +41,7 @@ public class LoginServerInitializer extends ChannelInitializer<SocketChannel>
|
||||
ch.pipeline().addLast("length-decoder", new LengthFieldBasedFrameDecoder(ByteOrder.LITTLE_ENDIAN, 0x8000 - 2, 0, 2, -2, 2, false));
|
||||
ch.pipeline().addLast("length-encoder", LENGTH_ENCODER);
|
||||
// ch.pipeline().addLast(new LoggingHandler(LogLevel.INFO));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(ByteOrder.LITTLE_ENDIAN, IncomingPackets.PACKET_ARRAY, loginServerHandler));
|
||||
ch.pipeline().addLast("packet-decoder", new PacketDecoder<>(IncomingPackets.PACKET_ARRAY, loginServerHandler));
|
||||
ch.pipeline().addLast("packet-encoder", PACKET_ENCODER);
|
||||
ch.pipeline().addLast(loginServerHandler);
|
||||
}
|
||||
|
@ -27,15 +27,15 @@ import com.l2jmobius.Config;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerAdapter;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||
import io.netty.util.AttributeKey;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
*/
|
||||
@Sharable
|
||||
public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
public class TelnetServerHandler extends ChannelInboundHandlerAdapter
|
||||
{
|
||||
private static final Pattern COMMAND_ARGS_PATTERN = Pattern.compile("\"([^\"]*)\"|([^\\s]+)");
|
||||
private static final AttributeKey<Boolean> AUTHORIZED = AttributeKey.valueOf(TelnetServerHandler.class, "AUTHORIZED");
|
||||
@ -58,7 +58,7 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
}
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx)
|
||||
public void handlerAdded(ChannelHandlerContext ctx)
|
||||
{
|
||||
String ip = ctx.channel().remoteAddress().toString();
|
||||
ip = ip.substring(1, ip.lastIndexOf(':')); // Trim out /127.0.0.1:14013
|
||||
@ -79,12 +79,12 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
{
|
||||
// Ask password
|
||||
ctx.write("Password:");
|
||||
ctx.attr(AUTHORIZED).set(Boolean.FALSE);
|
||||
ctx.channel().attr(AUTHORIZED).set(Boolean.FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ctx.write("Type 'help' to see all available commands." + Config.EOL);
|
||||
ctx.attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
ctx.channel().attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
}
|
||||
ctx.flush();
|
||||
}
|
||||
@ -100,11 +100,11 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
String response = null;
|
||||
boolean close = false;
|
||||
|
||||
if (Boolean.FALSE.equals(ctx.attr(AUTHORIZED).get()))
|
||||
if (Boolean.FALSE.equals(ctx.channel().attr(AUTHORIZED).get()))
|
||||
{
|
||||
if (Config.TELNET_PASSWORD.equals(request))
|
||||
{
|
||||
ctx.attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
ctx.channel().attr(AUTHORIZED).set(Boolean.TRUE);
|
||||
request = "";
|
||||
}
|
||||
else
|
||||
@ -114,7 +114,7 @@ public class TelnetServerHandler extends ChannelHandlerAdapter
|
||||
}
|
||||
}
|
||||
|
||||
if (Boolean.TRUE.equals(ctx.attr(AUTHORIZED).get()))
|
||||
if (Boolean.TRUE.equals(ctx.channel().attr(AUTHORIZED).get()))
|
||||
{
|
||||
if (request.isEmpty())
|
||||
{
|
||||
|
@ -7,7 +7,7 @@
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/netty-all-4.1.14.Final.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
</listAttribute>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/netty-all-4.1.14.Final.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
</listAttribute>
|
||||
|
Loading…
Reference in New Issue
Block a user