diff --git a/src/generated/main/emu/lunarcore/proto/PlayerLoginScRspOuterClass.java b/src/generated/main/emu/lunarcore/proto/PlayerLoginScRspOuterClass.java
index 6c0df87..31a0cc5 100644
--- a/src/generated/main/emu/lunarcore/proto/PlayerLoginScRspOuterClass.java
+++ b/src/generated/main/emu/lunarcore/proto/PlayerLoginScRspOuterClass.java
@@ -29,11 +29,6 @@ public final class PlayerLoginScRspOuterClass {
*/
private long serverTimestampMs;
- /**
- * optional int32 cur_timezone = 4;
- */
- private int curTimezone;
-
/**
* optional uint32 stamina = 8;
*/
@@ -44,6 +39,11 @@ public final class PlayerLoginScRspOuterClass {
*/
private int retcode;
+ /**
+ * optional sint32 cur_timezone = 4;
+ */
+ private int curTimezone;
+
/**
* optional bool GIALIFNNOPN = 7;
*/
@@ -153,49 +153,12 @@ public final class PlayerLoginScRspOuterClass {
return this;
}
- /**
- * optional int32 cur_timezone = 4;
- * @return whether the curTimezone field is set
- */
- public boolean hasCurTimezone() {
- return (bitField0_ & 0x00000004) != 0;
- }
-
- /**
- * optional int32 cur_timezone = 4;
- * @return this
- */
- public PlayerLoginScRsp clearCurTimezone() {
- bitField0_ &= ~0x00000004;
- curTimezone = 0;
- return this;
- }
-
- /**
- * optional int32 cur_timezone = 4;
- * @return the curTimezone
- */
- public int getCurTimezone() {
- return curTimezone;
- }
-
- /**
- * optional int32 cur_timezone = 4;
- * @param value the curTimezone to set
- * @return this
- */
- public PlayerLoginScRsp setCurTimezone(final int value) {
- bitField0_ |= 0x00000004;
- curTimezone = value;
- return this;
- }
-
/**
* optional uint32 stamina = 8;
* @return whether the stamina field is set
*/
public boolean hasStamina() {
- return (bitField0_ & 0x00000008) != 0;
+ return (bitField0_ & 0x00000004) != 0;
}
/**
@@ -203,7 +166,7 @@ public final class PlayerLoginScRspOuterClass {
* @return this
*/
public PlayerLoginScRsp clearStamina() {
- bitField0_ &= ~0x00000008;
+ bitField0_ &= ~0x00000004;
stamina = 0;
return this;
}
@@ -222,7 +185,7 @@ public final class PlayerLoginScRspOuterClass {
* @return this
*/
public PlayerLoginScRsp setStamina(final int value) {
- bitField0_ |= 0x00000008;
+ bitField0_ |= 0x00000004;
stamina = value;
return this;
}
@@ -232,7 +195,7 @@ public final class PlayerLoginScRspOuterClass {
* @return whether the retcode field is set
*/
public boolean hasRetcode() {
- return (bitField0_ & 0x00000010) != 0;
+ return (bitField0_ & 0x00000008) != 0;
}
/**
@@ -240,7 +203,7 @@ public final class PlayerLoginScRspOuterClass {
* @return this
*/
public PlayerLoginScRsp clearRetcode() {
- bitField0_ &= ~0x00000010;
+ bitField0_ &= ~0x00000008;
retcode = 0;
return this;
}
@@ -259,11 +222,48 @@ public final class PlayerLoginScRspOuterClass {
* @return this
*/
public PlayerLoginScRsp setRetcode(final int value) {
- bitField0_ |= 0x00000010;
+ bitField0_ |= 0x00000008;
retcode = value;
return this;
}
+ /**
+ * optional sint32 cur_timezone = 4;
+ * @return whether the curTimezone field is set
+ */
+ public boolean hasCurTimezone() {
+ return (bitField0_ & 0x00000010) != 0;
+ }
+
+ /**
+ * optional sint32 cur_timezone = 4;
+ * @return this
+ */
+ public PlayerLoginScRsp clearCurTimezone() {
+ bitField0_ &= ~0x00000010;
+ curTimezone = 0;
+ return this;
+ }
+
+ /**
+ * optional sint32 cur_timezone = 4;
+ * @return the curTimezone
+ */
+ public int getCurTimezone() {
+ return curTimezone;
+ }
+
+ /**
+ * optional sint32 cur_timezone = 4;
+ * @param value the curTimezone to set
+ * @return this
+ */
+ public PlayerLoginScRsp setCurTimezone(final int value) {
+ bitField0_ |= 0x00000010;
+ curTimezone = value;
+ return this;
+ }
+
/**
* optional bool GIALIFNNOPN = 7;
* @return whether the gIALIFNNOPN field is set
@@ -532,9 +532,9 @@ public final class PlayerLoginScRspOuterClass {
bitField0_ = other.bitField0_;
loginRandom = other.loginRandom;
serverTimestampMs = other.serverTimestampMs;
- curTimezone = other.curTimezone;
stamina = other.stamina;
retcode = other.retcode;
+ curTimezone = other.curTimezone;
gIALIFNNOPN = other.gIALIFNNOPN;
hNAGOHGGJDH = other.hNAGOHGGJDH;
basicInfo.copyFrom(other.basicInfo);
@@ -556,15 +556,15 @@ public final class PlayerLoginScRspOuterClass {
if (other.hasServerTimestampMs()) {
setServerTimestampMs(other.serverTimestampMs);
}
- if (other.hasCurTimezone()) {
- setCurTimezone(other.curTimezone);
- }
if (other.hasStamina()) {
setStamina(other.stamina);
}
if (other.hasRetcode()) {
setRetcode(other.retcode);
}
+ if (other.hasCurTimezone()) {
+ setCurTimezone(other.curTimezone);
+ }
if (other.hasGIALIFNNOPN()) {
setGIALIFNNOPN(other.gIALIFNNOPN);
}
@@ -592,9 +592,9 @@ public final class PlayerLoginScRspOuterClass {
bitField0_ = 0;
loginRandom = 0L;
serverTimestampMs = 0L;
- curTimezone = 0;
stamina = 0;
retcode = 0;
+ curTimezone = 0;
gIALIFNNOPN = false;
hNAGOHGGJDH = false;
basicInfo.clear();
@@ -628,9 +628,9 @@ public final class PlayerLoginScRspOuterClass {
return bitField0_ == other.bitField0_
&& (!hasLoginRandom() || loginRandom == other.loginRandom)
&& (!hasServerTimestampMs() || serverTimestampMs == other.serverTimestampMs)
- && (!hasCurTimezone() || curTimezone == other.curTimezone)
&& (!hasStamina() || stamina == other.stamina)
&& (!hasRetcode() || retcode == other.retcode)
+ && (!hasCurTimezone() || curTimezone == other.curTimezone)
&& (!hasGIALIFNNOPN() || gIALIFNNOPN == other.gIALIFNNOPN)
&& (!hasHNAGOHGGJDH() || hNAGOHGGJDH == other.hNAGOHGGJDH)
&& (!hasBasicInfo() || basicInfo.equals(other.basicInfo))
@@ -649,17 +649,17 @@ public final class PlayerLoginScRspOuterClass {
output.writeUInt64NoTag(serverTimestampMs);
}
if ((bitField0_ & 0x00000004) != 0) {
- output.writeRawByte((byte) 32);
- output.writeInt32NoTag(curTimezone);
- }
- if ((bitField0_ & 0x00000008) != 0) {
output.writeRawByte((byte) 64);
output.writeUInt32NoTag(stamina);
}
- if ((bitField0_ & 0x00000010) != 0) {
+ if ((bitField0_ & 0x00000008) != 0) {
output.writeRawByte((byte) 120);
output.writeUInt32NoTag(retcode);
}
+ if ((bitField0_ & 0x00000010) != 0) {
+ output.writeRawByte((byte) 32);
+ output.writeSInt32NoTag(curTimezone);
+ }
if ((bitField0_ & 0x00000020) != 0) {
output.writeRawByte((byte) 56);
output.writeBoolNoTag(gIALIFNNOPN);
@@ -692,14 +692,14 @@ public final class PlayerLoginScRspOuterClass {
size += 1 + ProtoSink.computeUInt64SizeNoTag(serverTimestampMs);
}
if ((bitField0_ & 0x00000004) != 0) {
- size += 1 + ProtoSink.computeInt32SizeNoTag(curTimezone);
- }
- if ((bitField0_ & 0x00000008) != 0) {
size += 1 + ProtoSink.computeUInt32SizeNoTag(stamina);
}
- if ((bitField0_ & 0x00000010) != 0) {
+ if ((bitField0_ & 0x00000008) != 0) {
size += 1 + ProtoSink.computeUInt32SizeNoTag(retcode);
}
+ if ((bitField0_ & 0x00000010) != 0) {
+ size += 1 + ProtoSink.computeSInt32SizeNoTag(curTimezone);
+ }
if ((bitField0_ & 0x00000020) != 0) {
size += 2;
}
@@ -739,15 +739,6 @@ public final class PlayerLoginScRspOuterClass {
serverTimestampMs = input.readUInt64();
bitField0_ |= 0x00000002;
tag = input.readTag();
- if (tag != 32) {
- break;
- }
- }
- case 32: {
- // curTimezone
- curTimezone = input.readInt32();
- bitField0_ |= 0x00000004;
- tag = input.readTag();
if (tag != 64) {
break;
}
@@ -755,7 +746,7 @@ public final class PlayerLoginScRspOuterClass {
case 64: {
// stamina
stamina = input.readUInt32();
- bitField0_ |= 0x00000008;
+ bitField0_ |= 0x00000004;
tag = input.readTag();
if (tag != 120) {
break;
@@ -764,6 +755,15 @@ public final class PlayerLoginScRspOuterClass {
case 120: {
// retcode
retcode = input.readUInt32();
+ bitField0_ |= 0x00000008;
+ tag = input.readTag();
+ if (tag != 32) {
+ break;
+ }
+ }
+ case 32: {
+ // curTimezone
+ curTimezone = input.readSInt32();
bitField0_ |= 0x00000010;
tag = input.readTag();
if (tag != 56) {
@@ -839,14 +839,14 @@ public final class PlayerLoginScRspOuterClass {
output.writeUInt64(FieldNames.serverTimestampMs, serverTimestampMs);
}
if ((bitField0_ & 0x00000004) != 0) {
- output.writeInt32(FieldNames.curTimezone, curTimezone);
- }
- if ((bitField0_ & 0x00000008) != 0) {
output.writeUInt32(FieldNames.stamina, stamina);
}
- if ((bitField0_ & 0x00000010) != 0) {
+ if ((bitField0_ & 0x00000008) != 0) {
output.writeUInt32(FieldNames.retcode, retcode);
}
+ if ((bitField0_ & 0x00000010) != 0) {
+ output.writeSInt32(FieldNames.curTimezone, curTimezone);
+ }
if ((bitField0_ & 0x00000020) != 0) {
output.writeBool(FieldNames.gIALIFNNOPN, gIALIFNNOPN);
}
@@ -896,23 +896,11 @@ public final class PlayerLoginScRspOuterClass {
}
break;
}
- case -929763751:
- case 1485930264: {
- if (input.isAtField(FieldNames.curTimezone)) {
- if (!input.trySkipNullValue()) {
- curTimezone = input.readInt32();
- bitField0_ |= 0x00000004;
- }
- } else {
- input.skipUnknownField();
- }
- break;
- }
case -1897344401: {
if (input.isAtField(FieldNames.stamina)) {
if (!input.trySkipNullValue()) {
stamina = input.readUInt32();
- bitField0_ |= 0x00000008;
+ bitField0_ |= 0x00000004;
}
} else {
input.skipUnknownField();
@@ -923,6 +911,18 @@ public final class PlayerLoginScRspOuterClass {
if (input.isAtField(FieldNames.retcode)) {
if (!input.trySkipNullValue()) {
retcode = input.readUInt32();
+ bitField0_ |= 0x00000008;
+ }
+ } else {
+ input.skipUnknownField();
+ }
+ break;
+ }
+ case -929763751:
+ case 1485930264: {
+ if (input.isAtField(FieldNames.curTimezone)) {
+ if (!input.trySkipNullValue()) {
+ curTimezone = input.readSInt32();
bitField0_ |= 0x00000010;
}
} else {
@@ -1043,12 +1043,12 @@ public final class PlayerLoginScRspOuterClass {
static final FieldName serverTimestampMs = FieldName.forField("serverTimestampMs", "server_timestamp_ms");
- static final FieldName curTimezone = FieldName.forField("curTimezone", "cur_timezone");
-
static final FieldName stamina = FieldName.forField("stamina");
static final FieldName retcode = FieldName.forField("retcode");
+ static final FieldName curTimezone = FieldName.forField("curTimezone", "cur_timezone");
+
static final FieldName gIALIFNNOPN = FieldName.forField("GIALIFNNOPN");
static final FieldName hNAGOHGGJDH = FieldName.forField("HNAGOHGGJDH");
diff --git a/src/main/java/emu/lunarcore/GameConstants.java b/src/main/java/emu/lunarcore/GameConstants.java
index b10a9cc..eec9d9e 100644
--- a/src/main/java/emu/lunarcore/GameConstants.java
+++ b/src/main/java/emu/lunarcore/GameConstants.java
@@ -9,7 +9,7 @@ public class GameConstants {
public static String VERSION = "1.4.0";
public static String MDK_VERSION = "";
- public static final ZoneOffset CURRENT_OFFSET = ZoneOffset.systemDefault().getRules().getOffset(Instant.now());
+ public static final int CURRENT_TIMEZONE = ZoneOffset.systemDefault().getRules().getOffset(Instant.now()).getTotalSeconds() / 3600;
// Game
public static final String DEFAULT_NAME = "Trailblazer";
diff --git a/src/main/java/emu/lunarcore/server/packet/send/PacketPlayerLoginScRsp.java b/src/main/java/emu/lunarcore/server/packet/send/PacketPlayerLoginScRsp.java
index ad9cda3..d327ebe 100644
--- a/src/main/java/emu/lunarcore/server/packet/send/PacketPlayerLoginScRsp.java
+++ b/src/main/java/emu/lunarcore/server/packet/send/PacketPlayerLoginScRsp.java
@@ -13,7 +13,7 @@ public class PacketPlayerLoginScRsp extends BasePacket {
var data = PlayerLoginScRsp.newInstance()
.setBasicInfo(session.getPlayer().toProto())
- .setCurTimezone(GameConstants.CURRENT_OFFSET.getTotalSeconds() / 60)
+ .setCurTimezone(GameConstants.CURRENT_TIMEZONE)
.setServerTimestampMs(System.currentTimeMillis())
.setStamina(session.getPlayer().getStamina());