Update to support game version 1.8.0.*

This commit is contained in:
Melledy
2026-03-16 21:18:44 -07:00
parent f007b6624f
commit 4744618ce9
11 changed files with 4782 additions and 285 deletions
@@ -0,0 +1,5 @@
// Code generated by protocol buffer compiler. Do not edit!
package emu.nebula.proto;
public final class ActivityTrekkerVersusIdleRefresh {
}
@@ -0,0 +1,605 @@
// Code generated by protocol buffer compiler. Do not edit!
package emu.nebula.proto;
import java.io.IOException;
import us.hebi.quickbuf.FieldName;
import us.hebi.quickbuf.InvalidProtocolBufferException;
import us.hebi.quickbuf.JsonSink;
import us.hebi.quickbuf.JsonSource;
import us.hebi.quickbuf.MessageFactory;
import us.hebi.quickbuf.ProtoMessage;
import us.hebi.quickbuf.ProtoSink;
import us.hebi.quickbuf.ProtoSource;
import us.hebi.quickbuf.RepeatedByte;
import us.hebi.quickbuf.RepeatedMessage;
public final class ActivityTrekkerVersusIdleRewardReceive {
/**
* Protobuf type {@code ActivityTrekkerVersusIdleRewardReceiveResp}
*/
public static final class ActivityTrekkerVersusIdleRewardReceiveResp extends ProtoMessage<ActivityTrekkerVersusIdleRewardReceiveResp> implements Cloneable {
private static final long serialVersionUID = 0L;
/**
* <code>optional int64 IdleTime = 3;</code>
*/
private long idleTime;
/**
* <code>optional .ChangeInfo Change = 1;</code>
*/
private final Public.ChangeInfo change = Public.ChangeInfo.newInstance();
/**
* <code>optional bytes NextPackage = 2047;</code>
*/
private final RepeatedByte nextPackage = RepeatedByte.newEmptyInstance();
/**
* <code>repeated .ItemTpl AwardItems = 2;</code>
*/
private final RepeatedMessage<Public.ItemTpl> awardItems = RepeatedMessage.newEmptyInstance(Public.ItemTpl.getFactory());
private ActivityTrekkerVersusIdleRewardReceiveResp() {
}
/**
* @return a new empty instance of {@code ActivityTrekkerVersusIdleRewardReceiveResp}
*/
public static ActivityTrekkerVersusIdleRewardReceiveResp newInstance() {
return new ActivityTrekkerVersusIdleRewardReceiveResp();
}
/**
* <code>optional int64 IdleTime = 3;</code>
* @return whether the idleTime field is set
*/
public boolean hasIdleTime() {
return (bitField0_ & 0x00000001) != 0;
}
/**
* <code>optional int64 IdleTime = 3;</code>
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp clearIdleTime() {
bitField0_ &= ~0x00000001;
idleTime = 0L;
return this;
}
/**
* <code>optional int64 IdleTime = 3;</code>
* @return the idleTime
*/
public long getIdleTime() {
return idleTime;
}
/**
* <code>optional int64 IdleTime = 3;</code>
* @param value the idleTime to set
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp setIdleTime(final long value) {
bitField0_ |= 0x00000001;
idleTime = value;
return this;
}
/**
* <code>optional .ChangeInfo Change = 1;</code>
* @return whether the change field is set
*/
public boolean hasChange() {
return (bitField0_ & 0x00000002) != 0;
}
/**
* <code>optional .ChangeInfo Change = 1;</code>
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp clearChange() {
bitField0_ &= ~0x00000002;
change.clear();
return this;
}
/**
* <code>optional .ChangeInfo Change = 1;</code>
*
* This method returns the internal storage object without modifying any has state.
* The returned object should not be modified and be treated as read-only.
*
* Use {@link #getMutableChange()} if you want to modify it.
*
* @return internal storage object for reading
*/
public Public.ChangeInfo getChange() {
return change;
}
/**
* <code>optional .ChangeInfo Change = 1;</code>
*
* This method returns the internal storage object and sets the corresponding
* has state. The returned object will become part of this message and its
* contents may be modified as long as the has state is not cleared.
*
* @return internal storage object for modifications
*/
public Public.ChangeInfo getMutableChange() {
bitField0_ |= 0x00000002;
return change;
}
/**
* <code>optional .ChangeInfo Change = 1;</code>
* @param value the change to set
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp setChange(final Public.ChangeInfo value) {
bitField0_ |= 0x00000002;
change.copyFrom(value);
return this;
}
/**
* <code>optional bytes NextPackage = 2047;</code>
* @return whether the nextPackage field is set
*/
public boolean hasNextPackage() {
return (bitField0_ & 0x00000004) != 0;
}
/**
* <code>optional bytes NextPackage = 2047;</code>
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp clearNextPackage() {
bitField0_ &= ~0x00000004;
nextPackage.clear();
return this;
}
/**
* <code>optional bytes NextPackage = 2047;</code>
*
* This method returns the internal storage object without modifying any has state.
* The returned object should not be modified and be treated as read-only.
*
* Use {@link #getMutableNextPackage()} if you want to modify it.
*
* @return internal storage object for reading
*/
public RepeatedByte getNextPackage() {
return nextPackage;
}
/**
* <code>optional bytes NextPackage = 2047;</code>
*
* This method returns the internal storage object and sets the corresponding
* has state. The returned object will become part of this message and its
* contents may be modified as long as the has state is not cleared.
*
* @return internal storage object for modifications
*/
public RepeatedByte getMutableNextPackage() {
bitField0_ |= 0x00000004;
return nextPackage;
}
/**
* <code>optional bytes NextPackage = 2047;</code>
* @param value the nextPackage to add
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp addNextPackage(final byte value) {
bitField0_ |= 0x00000004;
nextPackage.add(value);
return this;
}
/**
* <code>optional bytes NextPackage = 2047;</code>
* @param values the nextPackage to add
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp addAllNextPackage(final byte... values) {
bitField0_ |= 0x00000004;
nextPackage.addAll(values);
return this;
}
/**
* <code>optional bytes NextPackage = 2047;</code>
* @param values the nextPackage to set
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp setNextPackage(final byte... values) {
bitField0_ |= 0x00000004;
nextPackage.copyFrom(values);
return this;
}
/**
* <code>repeated .ItemTpl AwardItems = 2;</code>
* @return whether the awardItems field is set
*/
public boolean hasAwardItems() {
return (bitField0_ & 0x00000008) != 0;
}
/**
* <code>repeated .ItemTpl AwardItems = 2;</code>
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp clearAwardItems() {
bitField0_ &= ~0x00000008;
awardItems.clear();
return this;
}
/**
* <code>repeated .ItemTpl AwardItems = 2;</code>
*
* This method returns the internal storage object without modifying any has state.
* The returned object should not be modified and be treated as read-only.
*
* Use {@link #getMutableAwardItems()} if you want to modify it.
*
* @return internal storage object for reading
*/
public RepeatedMessage<Public.ItemTpl> getAwardItems() {
return awardItems;
}
/**
* <code>repeated .ItemTpl AwardItems = 2;</code>
*
* This method returns the internal storage object and sets the corresponding
* has state. The returned object will become part of this message and its
* contents may be modified as long as the has state is not cleared.
*
* @return internal storage object for modifications
*/
public RepeatedMessage<Public.ItemTpl> getMutableAwardItems() {
bitField0_ |= 0x00000008;
return awardItems;
}
/**
* <code>repeated .ItemTpl AwardItems = 2;</code>
* @param value the awardItems to add
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp addAwardItems(final Public.ItemTpl value) {
bitField0_ |= 0x00000008;
awardItems.add(value);
return this;
}
/**
* <code>repeated .ItemTpl AwardItems = 2;</code>
* @param values the awardItems to add
* @return this
*/
public ActivityTrekkerVersusIdleRewardReceiveResp addAllAwardItems(
final Public.ItemTpl... values) {
bitField0_ |= 0x00000008;
awardItems.addAll(values);
return this;
}
@Override
public ActivityTrekkerVersusIdleRewardReceiveResp copyFrom(
final ActivityTrekkerVersusIdleRewardReceiveResp other) {
cachedSize = other.cachedSize;
if ((bitField0_ | other.bitField0_) != 0) {
bitField0_ = other.bitField0_;
idleTime = other.idleTime;
change.copyFrom(other.change);
nextPackage.copyFrom(other.nextPackage);
awardItems.copyFrom(other.awardItems);
}
return this;
}
@Override
public ActivityTrekkerVersusIdleRewardReceiveResp mergeFrom(
final ActivityTrekkerVersusIdleRewardReceiveResp other) {
if (other.isEmpty()) {
return this;
}
cachedSize = -1;
if (other.hasIdleTime()) {
setIdleTime(other.idleTime);
}
if (other.hasChange()) {
getMutableChange().mergeFrom(other.change);
}
if (other.hasNextPackage()) {
getMutableNextPackage().copyFrom(other.nextPackage);
}
if (other.hasAwardItems()) {
getMutableAwardItems().addAll(other.awardItems);
}
return this;
}
@Override
public ActivityTrekkerVersusIdleRewardReceiveResp clear() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
idleTime = 0L;
change.clear();
nextPackage.clear();
awardItems.clear();
return this;
}
@Override
public ActivityTrekkerVersusIdleRewardReceiveResp clearQuick() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
change.clearQuick();
nextPackage.clear();
awardItems.clearQuick();
return this;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof ActivityTrekkerVersusIdleRewardReceiveResp)) {
return false;
}
ActivityTrekkerVersusIdleRewardReceiveResp other = (ActivityTrekkerVersusIdleRewardReceiveResp) o;
return bitField0_ == other.bitField0_
&& (!hasIdleTime() || idleTime == other.idleTime)
&& (!hasChange() || change.equals(other.change))
&& (!hasNextPackage() || nextPackage.equals(other.nextPackage))
&& (!hasAwardItems() || awardItems.equals(other.awardItems));
}
@Override
public void writeTo(final ProtoSink output) throws IOException {
if ((bitField0_ & 0x00000001) != 0) {
output.writeRawByte((byte) 24);
output.writeInt64NoTag(idleTime);
}
if ((bitField0_ & 0x00000002) != 0) {
output.writeRawByte((byte) 10);
output.writeMessageNoTag(change);
}
if ((bitField0_ & 0x00000004) != 0) {
output.writeRawLittleEndian16((short) 32762);
output.writeBytesNoTag(nextPackage);
}
if ((bitField0_ & 0x00000008) != 0) {
for (int i = 0; i < awardItems.length(); i++) {
output.writeRawByte((byte) 18);
output.writeMessageNoTag(awardItems.get(i));
}
}
}
@Override
protected int computeSerializedSize() {
int size = 0;
if ((bitField0_ & 0x00000001) != 0) {
size += 1 + ProtoSink.computeInt64SizeNoTag(idleTime);
}
if ((bitField0_ & 0x00000002) != 0) {
size += 1 + ProtoSink.computeMessageSizeNoTag(change);
}
if ((bitField0_ & 0x00000004) != 0) {
size += 2 + ProtoSink.computeBytesSizeNoTag(nextPackage);
}
if ((bitField0_ & 0x00000008) != 0) {
size += (1 * awardItems.length()) + ProtoSink.computeRepeatedMessageSizeNoTag(awardItems);
}
return size;
}
@Override
@SuppressWarnings("fallthrough")
public ActivityTrekkerVersusIdleRewardReceiveResp mergeFrom(final ProtoSource input) throws
IOException {
// Enabled Fall-Through Optimization (QuickBuffers)
int tag = input.readTag();
while (true) {
switch (tag) {
case 24: {
// idleTime
idleTime = input.readInt64();
bitField0_ |= 0x00000001;
tag = input.readTag();
if (tag != 10) {
break;
}
}
case 10: {
// change
input.readMessage(change);
bitField0_ |= 0x00000002;
tag = input.readTag();
if (tag != 16378) {
break;
}
}
case 16378: {
// nextPackage
input.readBytes(nextPackage);
bitField0_ |= 0x00000004;
tag = input.readTag();
if (tag != 18) {
break;
}
}
case 18: {
// awardItems
tag = input.readRepeatedMessage(awardItems, tag);
bitField0_ |= 0x00000008;
if (tag != 0) {
break;
}
}
case 0: {
return this;
}
default: {
if (!input.skipField(tag)) {
return this;
}
tag = input.readTag();
break;
}
}
}
}
@Override
public void writeTo(final JsonSink output) throws IOException {
output.beginObject();
if ((bitField0_ & 0x00000001) != 0) {
output.writeInt64(FieldNames.idleTime, idleTime);
}
if ((bitField0_ & 0x00000002) != 0) {
output.writeMessage(FieldNames.change, change);
}
if ((bitField0_ & 0x00000004) != 0) {
output.writeBytes(FieldNames.nextPackage, nextPackage);
}
if ((bitField0_ & 0x00000008) != 0) {
output.writeRepeatedMessage(FieldNames.awardItems, awardItems);
}
output.endObject();
}
@Override
public ActivityTrekkerVersusIdleRewardReceiveResp mergeFrom(final JsonSource input) throws
IOException {
if (!input.beginObject()) {
return this;
}
while (!input.isAtEnd()) {
switch (input.readFieldHash()) {
case 120021217: {
if (input.isAtField(FieldNames.idleTime)) {
if (!input.trySkipNullValue()) {
idleTime = input.readInt64();
bitField0_ |= 0x00000001;
}
} else {
input.skipUnknownField();
}
break;
}
case 2017198032: {
if (input.isAtField(FieldNames.change)) {
if (!input.trySkipNullValue()) {
input.readMessage(change);
bitField0_ |= 0x00000002;
}
} else {
input.skipUnknownField();
}
break;
}
case -2082324045: {
if (input.isAtField(FieldNames.nextPackage)) {
if (!input.trySkipNullValue()) {
input.readBytes(nextPackage);
bitField0_ |= 0x00000004;
}
} else {
input.skipUnknownField();
}
break;
}
case -1943188605: {
if (input.isAtField(FieldNames.awardItems)) {
if (!input.trySkipNullValue()) {
input.readRepeatedMessage(awardItems);
bitField0_ |= 0x00000008;
}
} else {
input.skipUnknownField();
}
break;
}
default: {
input.skipUnknownField();
break;
}
}
}
input.endObject();
return this;
}
@Override
public ActivityTrekkerVersusIdleRewardReceiveResp clone() {
return new ActivityTrekkerVersusIdleRewardReceiveResp().copyFrom(this);
}
@Override
public boolean isEmpty() {
return ((bitField0_) == 0);
}
public static ActivityTrekkerVersusIdleRewardReceiveResp parseFrom(final byte[] data) throws
InvalidProtocolBufferException {
return ProtoMessage.mergeFrom(new ActivityTrekkerVersusIdleRewardReceiveResp(), data).checkInitialized();
}
public static ActivityTrekkerVersusIdleRewardReceiveResp parseFrom(final ProtoSource input)
throws IOException {
return ProtoMessage.mergeFrom(new ActivityTrekkerVersusIdleRewardReceiveResp(), input).checkInitialized();
}
public static ActivityTrekkerVersusIdleRewardReceiveResp parseFrom(final JsonSource input)
throws IOException {
return ProtoMessage.mergeFrom(new ActivityTrekkerVersusIdleRewardReceiveResp(), input).checkInitialized();
}
/**
* @return factory for creating ActivityTrekkerVersusIdleRewardReceiveResp messages
*/
public static MessageFactory<ActivityTrekkerVersusIdleRewardReceiveResp> getFactory() {
return ActivityTrekkerVersusIdleRewardReceiveRespFactory.INSTANCE;
}
private enum ActivityTrekkerVersusIdleRewardReceiveRespFactory implements MessageFactory<ActivityTrekkerVersusIdleRewardReceiveResp> {
INSTANCE;
@Override
public ActivityTrekkerVersusIdleRewardReceiveResp create() {
return ActivityTrekkerVersusIdleRewardReceiveResp.newInstance();
}
}
/**
* Contains name constants used for serializing JSON
*/
static class FieldNames {
static final FieldName idleTime = FieldName.forField("IdleTime");
static final FieldName change = FieldName.forField("Change");
static final FieldName nextPackage = FieldName.forField("NextPackage");
static final FieldName awardItems = FieldName.forField("AwardItems");
}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -6,7 +6,7 @@ import emu.nebula.game.inventory.ItemParam;
import emu.nebula.util.WeightedList; import emu.nebula.util.WeightedList;
public class GameConstants { public class GameConstants {
public static final String VERSION = "1.7.0"; public static final String VERSION = "1.8.0";
public static int DATA_VERSION = 0; public static int DATA_VERSION = 0;
public static final ZoneId UTC_ZONE = ZoneId.of("UTC"); public static final ZoneId UTC_ZONE = ZoneId.of("UTC");
@@ -40,9 +40,14 @@ public class ActivityModule extends GameContextModule {
//this.activities.add(1010404); //this.activities.add(1010404);
// Winter Requiem and the Trigger of Dawn // Winter Requiem and the Trigger of Dawn
this.activities.add(1010501); //this.activities.add(1010501);
this.activities.add(1010503); //this.activities.add(1010503);
this.activities.add(1010504); //this.activities.add(1010504);
// To My Dearest You
this.activities.add(1010601);
this.activities.add(1010603);
this.activities.add(1010604);
// ===== Joint Drills (Finale Echoing) ===== // ===== Joint Drills (Finale Echoing) =====
this.activities.add(510003); this.activities.add(510003);
@@ -60,8 +65,8 @@ public class ActivityModule extends GameContextModule {
this.activities.add(301011); this.activities.add(301011);
this.activities.add(301012); this.activities.add(301012);
// Trekker versus // Trekker versus (broken)
this.activities.add(600001); //this.activities.add(600001);
} }
} }
@@ -81,6 +81,9 @@ public class TrekkerVersusActivity extends GameActivity {
public TrekkerVersusShow getShowProto() { public TrekkerVersusShow getShowProto() {
var show = TrekkerVersusShow.newInstance(); var show = TrekkerVersusShow.newInstance();
// TODO update
/*
if (this.getCharIds() != null) { if (this.getCharIds() != null) {
show.addAllCharIds(this.getCharIds()); show.addAllCharIds(this.getCharIds());
show.setBuildScore(this.getBuildScore()); show.setBuildScore(this.getBuildScore());
@@ -89,6 +92,7 @@ public class TrekkerVersusActivity extends GameActivity {
if (this.getAffixIds() != null) { if (this.getAffixIds() != null) {
show.addAllAffixIds(this.getAffixIds()); show.addAllAffixIds(this.getAffixIds());
} }
*/
return show; return show;
} }
@@ -711,6 +711,18 @@ public class NetMsgId {
public static final int activity_trekker_versus_reward_receive_req = 9131; public static final int activity_trekker_versus_reward_receive_req = 9131;
public static final int activity_trekker_versus_reward_receive_succeed_ack = 9132; public static final int activity_trekker_versus_reward_receive_succeed_ack = 9132;
public static final int activity_trekker_versus_reward_receive_failed_ack = 9133; public static final int activity_trekker_versus_reward_receive_failed_ack = 9133;
public static final int activity_trekker_versus_idle_refresh_req = 9134;
public static final int activity_trekker_versus_idle_refresh_succeed_ack = 9135;
public static final int activity_trekker_versus_idle_refresh_failed_ack = 9136;
public static final int activity_trekker_versus_idle_reward_receive_req = 9137;
public static final int activity_trekker_versus_idle_reward_receive_succeed_ack = 9138;
public static final int activity_trekker_versus_idle_reward_receive_failed_ack = 9139;
public static final int activity_trekker_versus_rank_boost_req = 9140;
public static final int activity_trekker_versus_rank_boost_succeed_ack = 9141;
public static final int activity_trekker_versus_rank_boost_failed_ack = 9142;
public static final int activity_trekker_versus_schedule_reward_receive_req = 9143;
public static final int activity_trekker_versus_schedule_reward_receive_succeed_ack = 9144;
public static final int activity_trekker_versus_schedule_reward_receive_failed_ack = 9145;
public static final int phone_contacts_info_req = 9201; public static final int phone_contacts_info_req = 9201;
public static final int phone_contacts_info_succeed_ack = 9202; public static final int phone_contacts_info_succeed_ack = 9202;
public static final int phone_contacts_info_failed_ack = 9203; public static final int phone_contacts_info_failed_ack = 9203;
+4 -2
View File
@@ -60,9 +60,11 @@ public class Handbook {
var itemLanguageKey = loadLanguageKey(ItemDef.class); var itemLanguageKey = loadLanguageKey(ItemDef.class);
for (int id : list) { for (int id : list) {
ItemDef data = GameData.getItemDataTable().get(id); ItemDef data = GameData.getItemDataTable().get(id);
String name = itemLanguageKey.getOrDefault(data.getTitle(), data.getTitle());
writer.print(data.getId()); writer.print(data.getId());
writer.print(" : "); writer.print(" : ");
writer.print(itemLanguageKey.getOrDefault(data.getTitle(), data.getTitle())); writer.print(name);
writer.print(" ["); writer.print(" [");
writer.print(data.getItemType()); writer.print(data.getItemType());
@@ -80,7 +82,7 @@ public class Handbook {
// Hacky way of checking if a skin is released or not // Hacky way of checking if a skin is released or not
if (data.getItemType() == ItemType.CharacterSkin) { if (data.getItemType() == ItemType.CharacterSkin) {
var skinData = GameData.getCharacterSkinDataTable().get(id); var skinData = GameData.getCharacterSkinDataTable().get(id);
if (skinData != null) { if (skinData != null && !name.equals("???")) {
skinData.setReleased(itemLanguageKey.containsKey(data.getTitle())); skinData.setReleased(itemLanguageKey.containsKey(data.getTitle()));
} }
} }
+5 -5
View File
@@ -1,7 +1,7 @@
{ {
"global": 93, "global": 95,
"kr": 99, "kr": 100,
"jp": 96, "jp": 97,
"tw": 102, "tw": 104,
"cn": 95 "cn": 96
} }