Skip to content

Commit 2c63430

Browse files
author
jython234
committed
Updated to latest build.
1 parent 1d20496 commit 2c63430

6 files changed

Lines changed: 33 additions & 10 deletions

File tree

pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@
88
<artifactId>JRakLib</artifactId>
99
<version>1.0-SNAPSHOT</version>
1010

11+
<distributionManagement>
12+
<snapshotRepository>
13+
<id>snapshot-repo</id>
14+
<url>http://repo.blockserver.org/snapshots</url>
15+
</snapshotRepository>
16+
</distributionManagement>
17+
1118
<dependencies>
1219
<dependency>
1320
<groupId>org.apache.commons</groupId>

src/main/java/net/beaconpe/jraklib/protocol/DataPacket.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ All credit goes to the PocketMine Project (http://pocketmine.net)
2121
*/
2222
package net.beaconpe.jraklib.protocol;
2323

24-
import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader;
2524
import net.beaconpe.jraklib.Binary;
2625

2726
import java.util.ArrayList;

src/main/java/net/beaconpe/jraklib/protocol/EncapsulatedPacket.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ All credit goes to the PocketMine Project (http://pocketmine.net)
2424
import net.beaconpe.jraklib.Binary;
2525

2626
import java.nio.ByteBuffer;
27+
import java.util.Arrays;
2728

2829
/**
2930
* Represents an encapsulated packet inside a CustomPacket
@@ -110,7 +111,7 @@ public int getTotalLength(boolean internal){
110111

111112
public byte[] toBinary(boolean internal){
112113
int offset = 0;
113-
ByteBuffer bb = ByteBuffer.allocate(getTotalLength(internal));
114+
ByteBuffer bb = ByteBuffer.allocate(1024 * 1024 * 32);
114115
bb.put((byte) ((byte) (reliability << 5) | (hasSplit ? 0b00010000 : 0)));
115116
if(internal){
116117
bb.put(Binary.writeInt(buffer.length));
@@ -136,8 +137,9 @@ public byte[] toBinary(boolean internal){
136137
}
137138

138139
bb.put(buffer);
139-
140-
return bb.array();
140+
byte[] data = Arrays.copyOf(bb.array(), bb.position());
141+
bb = null;
142+
return data;
141143
}
142144

143145
public byte[] toBinary(){

src/main/java/net/beaconpe/jraklib/protocol/Packet.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,15 @@ protected byte[] get(int len){
5858
}
5959
}
6060

61+
public void setBuffer(byte[] buffer, int offset){
62+
this.buffer = buffer;
63+
this.offset = offset;
64+
}
65+
66+
public int getOffset(){
67+
return offset;
68+
}
69+
6170
protected byte[] get(){
6271
return Binary.subbytes(buffer, offset);
6372
}

src/main/java/net/beaconpe/jraklib/server/ServerHandler.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ All credit goes to the PocketMine Project (http://pocketmine.net)
2626
import net.beaconpe.jraklib.protocol.EncapsulatedPacket;
2727

2828
import java.nio.ByteBuffer;
29+
import java.util.Arrays;
2930

3031
/**
3132
* Handler that provides easy communication with the server.
@@ -45,9 +46,10 @@ public void sendEncapsulated(String identifier, EncapsulatedPacket packet){
4546
}
4647

4748
public void sendEncapsulated(String identifier, EncapsulatedPacket packet, byte flags){
48-
ByteBuffer bb = ByteBuffer.allocate(3+identifier.getBytes().length+packet.getTotalLength(true));
49+
ByteBuffer bb = ByteBuffer.allocate(1024*1024*2);
4950
bb.put(JRakLib.PACKET_ENCAPSULATED).put((byte) identifier.getBytes().length).put(identifier.getBytes()).put(flags).put(packet.toBinary(true));
50-
server.pushMainToThreadPacket(bb.array());
51+
server.pushMainToThreadPacket(Arrays.copyOf(bb.array(), bb.position()));
52+
bb = null;
5153
}
5254

5355
public void sendRaw(String address, short port, byte[] payload){
@@ -93,6 +95,9 @@ protected void invalidSession(String identifier){
9395

9496
public boolean handlePacket(){
9597
byte[] packet = server.readThreadToMainPacket();
98+
if(packet == null){
99+
return false;
100+
}
96101
if(packet.length > 0){
97102
byte id = packet[0];
98103
int offset = 1;

src/main/java/net/beaconpe/jraklib/server/Session.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -439,10 +439,11 @@ private void handleEncapsulatedPacketRoute(EncapsulatedPacket packet) throws IOE
439439
sendPacket.reliability = 0;
440440
sendPacket.buffer = pk.buffer;
441441
addToQueue(sendPacket);
442-
} //TODO: add PING/PONG (0x00/0x03) automatic latency measure
443-
} else if(state == STATE_CONNECTED){
444-
sessionManager.streamEncapsulated(this, packet);
445-
//TODO: stream channels
442+
//TODO: add PING/PONG (0x00/0x03) automatic latency measure
443+
} else if(state == STATE_CONNECTED) {
444+
sessionManager.streamEncapsulated(this, packet);
445+
//TODO: stream channels
446+
}
446447
} else {
447448
preJoinQueue.add(packet);
448449
}

0 commit comments

Comments
 (0)