diff --git a/src/generated/main/emu/lunarcore/proto/ActivityScheduleInfoOuterClass.java b/src/generated/main/emu/lunarcore/proto/ActivityScheduleInfoOuterClass.java new file mode 100644 index 0000000..ca89a72 --- /dev/null +++ b/src/generated/main/emu/lunarcore/proto/ActivityScheduleInfoOuterClass.java @@ -0,0 +1,503 @@ +// Code generated by protocol buffer compiler. Do not edit! +package emu.lunarcore.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; + +public final class ActivityScheduleInfoOuterClass { + /** + * Protobuf type {@code ActivityScheduleInfo} + */ + public static final class ActivityScheduleInfo extends ProtoMessage implements Cloneable { + private static final long serialVersionUID = 0L; + + /** + * optional int64 begin_time = 1; + */ + private long beginTime; + + /** + * optional int64 end_time = 3; + */ + private long endTime; + + /** + * optional uint32 activity_id = 11; + */ + private int activityId; + + /** + * optional uint32 module_id = 13; + */ + private int moduleId; + + private ActivityScheduleInfo() { + } + + /** + * @return a new empty instance of {@code ActivityScheduleInfo} + */ + public static ActivityScheduleInfo newInstance() { + return new ActivityScheduleInfo(); + } + + /** + * optional int64 begin_time = 1; + * @return whether the beginTime field is set + */ + public boolean hasBeginTime() { + return (bitField0_ & 0x00000001) != 0; + } + + /** + * optional int64 begin_time = 1; + * @return this + */ + public ActivityScheduleInfo clearBeginTime() { + bitField0_ &= ~0x00000001; + beginTime = 0L; + return this; + } + + /** + * optional int64 begin_time = 1; + * @return the beginTime + */ + public long getBeginTime() { + return beginTime; + } + + /** + * optional int64 begin_time = 1; + * @param value the beginTime to set + * @return this + */ + public ActivityScheduleInfo setBeginTime(final long value) { + bitField0_ |= 0x00000001; + beginTime = value; + return this; + } + + /** + * optional int64 end_time = 3; + * @return whether the endTime field is set + */ + public boolean hasEndTime() { + return (bitField0_ & 0x00000002) != 0; + } + + /** + * optional int64 end_time = 3; + * @return this + */ + public ActivityScheduleInfo clearEndTime() { + bitField0_ &= ~0x00000002; + endTime = 0L; + return this; + } + + /** + * optional int64 end_time = 3; + * @return the endTime + */ + public long getEndTime() { + return endTime; + } + + /** + * optional int64 end_time = 3; + * @param value the endTime to set + * @return this + */ + public ActivityScheduleInfo setEndTime(final long value) { + bitField0_ |= 0x00000002; + endTime = value; + return this; + } + + /** + * optional uint32 activity_id = 11; + * @return whether the activityId field is set + */ + public boolean hasActivityId() { + return (bitField0_ & 0x00000004) != 0; + } + + /** + * optional uint32 activity_id = 11; + * @return this + */ + public ActivityScheduleInfo clearActivityId() { + bitField0_ &= ~0x00000004; + activityId = 0; + return this; + } + + /** + * optional uint32 activity_id = 11; + * @return the activityId + */ + public int getActivityId() { + return activityId; + } + + /** + * optional uint32 activity_id = 11; + * @param value the activityId to set + * @return this + */ + public ActivityScheduleInfo setActivityId(final int value) { + bitField0_ |= 0x00000004; + activityId = value; + return this; + } + + /** + * optional uint32 module_id = 13; + * @return whether the moduleId field is set + */ + public boolean hasModuleId() { + return (bitField0_ & 0x00000008) != 0; + } + + /** + * optional uint32 module_id = 13; + * @return this + */ + public ActivityScheduleInfo clearModuleId() { + bitField0_ &= ~0x00000008; + moduleId = 0; + return this; + } + + /** + * optional uint32 module_id = 13; + * @return the moduleId + */ + public int getModuleId() { + return moduleId; + } + + /** + * optional uint32 module_id = 13; + * @param value the moduleId to set + * @return this + */ + public ActivityScheduleInfo setModuleId(final int value) { + bitField0_ |= 0x00000008; + moduleId = value; + return this; + } + + @Override + public ActivityScheduleInfo copyFrom(final ActivityScheduleInfo other) { + cachedSize = other.cachedSize; + if ((bitField0_ | other.bitField0_) != 0) { + bitField0_ = other.bitField0_; + beginTime = other.beginTime; + endTime = other.endTime; + activityId = other.activityId; + moduleId = other.moduleId; + } + return this; + } + + @Override + public ActivityScheduleInfo mergeFrom(final ActivityScheduleInfo other) { + if (other.isEmpty()) { + return this; + } + cachedSize = -1; + if (other.hasBeginTime()) { + setBeginTime(other.beginTime); + } + if (other.hasEndTime()) { + setEndTime(other.endTime); + } + if (other.hasActivityId()) { + setActivityId(other.activityId); + } + if (other.hasModuleId()) { + setModuleId(other.moduleId); + } + return this; + } + + @Override + public ActivityScheduleInfo clear() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + beginTime = 0L; + endTime = 0L; + activityId = 0; + moduleId = 0; + return this; + } + + @Override + public ActivityScheduleInfo clearQuick() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + return this; + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof ActivityScheduleInfo)) { + return false; + } + ActivityScheduleInfo other = (ActivityScheduleInfo) o; + return bitField0_ == other.bitField0_ + && (!hasBeginTime() || beginTime == other.beginTime) + && (!hasEndTime() || endTime == other.endTime) + && (!hasActivityId() || activityId == other.activityId) + && (!hasModuleId() || moduleId == other.moduleId); + } + + @Override + public void writeTo(final ProtoSink output) throws IOException { + if ((bitField0_ & 0x00000001) != 0) { + output.writeRawByte((byte) 8); + output.writeInt64NoTag(beginTime); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeRawByte((byte) 24); + output.writeInt64NoTag(endTime); + } + if ((bitField0_ & 0x00000004) != 0) { + output.writeRawByte((byte) 88); + output.writeUInt32NoTag(activityId); + } + if ((bitField0_ & 0x00000008) != 0) { + output.writeRawByte((byte) 104); + output.writeUInt32NoTag(moduleId); + } + } + + @Override + protected int computeSerializedSize() { + int size = 0; + if ((bitField0_ & 0x00000001) != 0) { + size += 1 + ProtoSink.computeInt64SizeNoTag(beginTime); + } + if ((bitField0_ & 0x00000002) != 0) { + size += 1 + ProtoSink.computeInt64SizeNoTag(endTime); + } + if ((bitField0_ & 0x00000004) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(activityId); + } + if ((bitField0_ & 0x00000008) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(moduleId); + } + return size; + } + + @Override + @SuppressWarnings("fallthrough") + public ActivityScheduleInfo mergeFrom(final ProtoSource input) throws IOException { + // Enabled Fall-Through Optimization (QuickBuffers) + int tag = input.readTag(); + while (true) { + switch (tag) { + case 8: { + // beginTime + beginTime = input.readInt64(); + bitField0_ |= 0x00000001; + tag = input.readTag(); + if (tag != 24) { + break; + } + } + case 24: { + // endTime + endTime = input.readInt64(); + bitField0_ |= 0x00000002; + tag = input.readTag(); + if (tag != 88) { + break; + } + } + case 88: { + // activityId + activityId = input.readUInt32(); + bitField0_ |= 0x00000004; + tag = input.readTag(); + if (tag != 104) { + break; + } + } + case 104: { + // moduleId + moduleId = input.readUInt32(); + bitField0_ |= 0x00000008; + tag = input.readTag(); + 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.beginTime, beginTime); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeInt64(FieldNames.endTime, endTime); + } + if ((bitField0_ & 0x00000004) != 0) { + output.writeUInt32(FieldNames.activityId, activityId); + } + if ((bitField0_ & 0x00000008) != 0) { + output.writeUInt32(FieldNames.moduleId, moduleId); + } + output.endObject(); + } + + @Override + public ActivityScheduleInfo mergeFrom(final JsonSource input) throws IOException { + if (!input.beginObject()) { + return this; + } + while (!input.isAtEnd()) { + switch (input.readFieldHash()) { + case -1072839914: + case 1112183971: { + if (input.isAtField(FieldNames.beginTime)) { + if (!input.trySkipNullValue()) { + beginTime = input.readInt64(); + bitField0_ |= 0x00000001; + } + } else { + input.skipUnknownField(); + } + break; + } + case -1607243192: + case 1725551537: { + if (input.isAtField(FieldNames.endTime)) { + if (!input.trySkipNullValue()) { + endTime = input.readInt64(); + bitField0_ |= 0x00000002; + } + } else { + input.skipUnknownField(); + } + break; + } + case 2048619658: + case -917278645: { + if (input.isAtField(FieldNames.activityId)) { + if (!input.trySkipNullValue()) { + activityId = input.readUInt32(); + bitField0_ |= 0x00000004; + } + } else { + input.skipUnknownField(); + } + break; + } + case -604257113: + case -1552079922: { + if (input.isAtField(FieldNames.moduleId)) { + if (!input.trySkipNullValue()) { + moduleId = input.readUInt32(); + bitField0_ |= 0x00000008; + } + } else { + input.skipUnknownField(); + } + break; + } + default: { + input.skipUnknownField(); + break; + } + } + } + input.endObject(); + return this; + } + + @Override + public ActivityScheduleInfo clone() { + return new ActivityScheduleInfo().copyFrom(this); + } + + @Override + public boolean isEmpty() { + return ((bitField0_) == 0); + } + + public static ActivityScheduleInfo parseFrom(final byte[] data) throws + InvalidProtocolBufferException { + return ProtoMessage.mergeFrom(new ActivityScheduleInfo(), data).checkInitialized(); + } + + public static ActivityScheduleInfo parseFrom(final ProtoSource input) throws IOException { + return ProtoMessage.mergeFrom(new ActivityScheduleInfo(), input).checkInitialized(); + } + + public static ActivityScheduleInfo parseFrom(final JsonSource input) throws IOException { + return ProtoMessage.mergeFrom(new ActivityScheduleInfo(), input).checkInitialized(); + } + + /** + * @return factory for creating ActivityScheduleInfo messages + */ + public static MessageFactory getFactory() { + return ActivityScheduleInfoFactory.INSTANCE; + } + + private enum ActivityScheduleInfoFactory implements MessageFactory { + INSTANCE; + + @Override + public ActivityScheduleInfo create() { + return ActivityScheduleInfo.newInstance(); + } + } + + /** + * Contains name constants used for serializing JSON + */ + static class FieldNames { + static final FieldName beginTime = FieldName.forField("beginTime", "begin_time"); + + static final FieldName endTime = FieldName.forField("endTime", "end_time"); + + static final FieldName activityId = FieldName.forField("activityId", "activity_id"); + + static final FieldName moduleId = FieldName.forField("moduleId", "module_id"); + } + } +} diff --git a/src/generated/main/emu/lunarcore/proto/GetActivityScheduleConfigScRspOuterClass.java b/src/generated/main/emu/lunarcore/proto/GetActivityScheduleConfigScRspOuterClass.java new file mode 100644 index 0000000..254da1e --- /dev/null +++ b/src/generated/main/emu/lunarcore/proto/GetActivityScheduleConfigScRspOuterClass.java @@ -0,0 +1,380 @@ +// Code generated by protocol buffer compiler. Do not edit! +package emu.lunarcore.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.RepeatedMessage; + +public final class GetActivityScheduleConfigScRspOuterClass { + /** + * Protobuf type {@code GetActivityScheduleConfigScRsp} + */ + public static final class GetActivityScheduleConfigScRsp extends ProtoMessage implements Cloneable { + private static final long serialVersionUID = 0L; + + /** + * optional uint32 retcode = 12; + */ + private int retcode; + + /** + * repeated .ActivityScheduleInfo activity_schedule_list = 8; + */ + private final RepeatedMessage activityScheduleList = RepeatedMessage.newEmptyInstance(ActivityScheduleInfoOuterClass.ActivityScheduleInfo.getFactory()); + + private GetActivityScheduleConfigScRsp() { + } + + /** + * @return a new empty instance of {@code GetActivityScheduleConfigScRsp} + */ + public static GetActivityScheduleConfigScRsp newInstance() { + return new GetActivityScheduleConfigScRsp(); + } + + /** + * optional uint32 retcode = 12; + * @return whether the retcode field is set + */ + public boolean hasRetcode() { + return (bitField0_ & 0x00000001) != 0; + } + + /** + * optional uint32 retcode = 12; + * @return this + */ + public GetActivityScheduleConfigScRsp clearRetcode() { + bitField0_ &= ~0x00000001; + retcode = 0; + return this; + } + + /** + * optional uint32 retcode = 12; + * @return the retcode + */ + public int getRetcode() { + return retcode; + } + + /** + * optional uint32 retcode = 12; + * @param value the retcode to set + * @return this + */ + public GetActivityScheduleConfigScRsp setRetcode(final int value) { + bitField0_ |= 0x00000001; + retcode = value; + return this; + } + + /** + * repeated .ActivityScheduleInfo activity_schedule_list = 8; + * @return whether the activityScheduleList field is set + */ + public boolean hasActivityScheduleList() { + return (bitField0_ & 0x00000002) != 0; + } + + /** + * repeated .ActivityScheduleInfo activity_schedule_list = 8; + * @return this + */ + public GetActivityScheduleConfigScRsp clearActivityScheduleList() { + bitField0_ &= ~0x00000002; + activityScheduleList.clear(); + return this; + } + + /** + * repeated .ActivityScheduleInfo activity_schedule_list = 8; + * + * 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 #getMutableActivityScheduleList()} if you want to modify it. + * + * @return internal storage object for reading + */ + public RepeatedMessage getActivityScheduleList( + ) { + return activityScheduleList; + } + + /** + * repeated .ActivityScheduleInfo activity_schedule_list = 8; + * + * 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 getMutableActivityScheduleList( + ) { + bitField0_ |= 0x00000002; + return activityScheduleList; + } + + /** + * repeated .ActivityScheduleInfo activity_schedule_list = 8; + * @param value the activityScheduleList to add + * @return this + */ + public GetActivityScheduleConfigScRsp addActivityScheduleList( + final ActivityScheduleInfoOuterClass.ActivityScheduleInfo value) { + bitField0_ |= 0x00000002; + activityScheduleList.add(value); + return this; + } + + /** + * repeated .ActivityScheduleInfo activity_schedule_list = 8; + * @param values the activityScheduleList to add + * @return this + */ + public GetActivityScheduleConfigScRsp addAllActivityScheduleList( + final ActivityScheduleInfoOuterClass.ActivityScheduleInfo... values) { + bitField0_ |= 0x00000002; + activityScheduleList.addAll(values); + return this; + } + + @Override + public GetActivityScheduleConfigScRsp copyFrom(final GetActivityScheduleConfigScRsp other) { + cachedSize = other.cachedSize; + if ((bitField0_ | other.bitField0_) != 0) { + bitField0_ = other.bitField0_; + retcode = other.retcode; + activityScheduleList.copyFrom(other.activityScheduleList); + } + return this; + } + + @Override + public GetActivityScheduleConfigScRsp mergeFrom(final GetActivityScheduleConfigScRsp other) { + if (other.isEmpty()) { + return this; + } + cachedSize = -1; + if (other.hasRetcode()) { + setRetcode(other.retcode); + } + if (other.hasActivityScheduleList()) { + getMutableActivityScheduleList().addAll(other.activityScheduleList); + } + return this; + } + + @Override + public GetActivityScheduleConfigScRsp clear() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + retcode = 0; + activityScheduleList.clear(); + return this; + } + + @Override + public GetActivityScheduleConfigScRsp clearQuick() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + activityScheduleList.clearQuick(); + return this; + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof GetActivityScheduleConfigScRsp)) { + return false; + } + GetActivityScheduleConfigScRsp other = (GetActivityScheduleConfigScRsp) o; + return bitField0_ == other.bitField0_ + && (!hasRetcode() || retcode == other.retcode) + && (!hasActivityScheduleList() || activityScheduleList.equals(other.activityScheduleList)); + } + + @Override + public void writeTo(final ProtoSink output) throws IOException { + if ((bitField0_ & 0x00000001) != 0) { + output.writeRawByte((byte) 96); + output.writeUInt32NoTag(retcode); + } + if ((bitField0_ & 0x00000002) != 0) { + for (int i = 0; i < activityScheduleList.length(); i++) { + output.writeRawByte((byte) 66); + output.writeMessageNoTag(activityScheduleList.get(i)); + } + } + } + + @Override + protected int computeSerializedSize() { + int size = 0; + if ((bitField0_ & 0x00000001) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(retcode); + } + if ((bitField0_ & 0x00000002) != 0) { + size += (1 * activityScheduleList.length()) + ProtoSink.computeRepeatedMessageSizeNoTag(activityScheduleList); + } + return size; + } + + @Override + @SuppressWarnings("fallthrough") + public GetActivityScheduleConfigScRsp mergeFrom(final ProtoSource input) throws IOException { + // Enabled Fall-Through Optimization (QuickBuffers) + int tag = input.readTag(); + while (true) { + switch (tag) { + case 96: { + // retcode + retcode = input.readUInt32(); + bitField0_ |= 0x00000001; + tag = input.readTag(); + if (tag != 66) { + break; + } + } + case 66: { + // activityScheduleList + tag = input.readRepeatedMessage(activityScheduleList, tag); + bitField0_ |= 0x00000002; + 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.writeUInt32(FieldNames.retcode, retcode); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeRepeatedMessage(FieldNames.activityScheduleList, activityScheduleList); + } + output.endObject(); + } + + @Override + public GetActivityScheduleConfigScRsp mergeFrom(final JsonSource input) throws IOException { + if (!input.beginObject()) { + return this; + } + while (!input.isAtEnd()) { + switch (input.readFieldHash()) { + case 1097936398: { + if (input.isAtField(FieldNames.retcode)) { + if (!input.trySkipNullValue()) { + retcode = input.readUInt32(); + bitField0_ |= 0x00000001; + } + } else { + input.skipUnknownField(); + } + break; + } + case -1397638012: + case -1123181546: { + if (input.isAtField(FieldNames.activityScheduleList)) { + if (!input.trySkipNullValue()) { + input.readRepeatedMessage(activityScheduleList); + bitField0_ |= 0x00000002; + } + } else { + input.skipUnknownField(); + } + break; + } + default: { + input.skipUnknownField(); + break; + } + } + } + input.endObject(); + return this; + } + + @Override + public GetActivityScheduleConfigScRsp clone() { + return new GetActivityScheduleConfigScRsp().copyFrom(this); + } + + @Override + public boolean isEmpty() { + return ((bitField0_) == 0); + } + + public static GetActivityScheduleConfigScRsp parseFrom(final byte[] data) throws + InvalidProtocolBufferException { + return ProtoMessage.mergeFrom(new GetActivityScheduleConfigScRsp(), data).checkInitialized(); + } + + public static GetActivityScheduleConfigScRsp parseFrom(final ProtoSource input) throws + IOException { + return ProtoMessage.mergeFrom(new GetActivityScheduleConfigScRsp(), input).checkInitialized(); + } + + public static GetActivityScheduleConfigScRsp parseFrom(final JsonSource input) throws + IOException { + return ProtoMessage.mergeFrom(new GetActivityScheduleConfigScRsp(), input).checkInitialized(); + } + + /** + * @return factory for creating GetActivityScheduleConfigScRsp messages + */ + public static MessageFactory getFactory() { + return GetActivityScheduleConfigScRspFactory.INSTANCE; + } + + private enum GetActivityScheduleConfigScRspFactory implements MessageFactory { + INSTANCE; + + @Override + public GetActivityScheduleConfigScRsp create() { + return GetActivityScheduleConfigScRsp.newInstance(); + } + } + + /** + * Contains name constants used for serializing JSON + */ + static class FieldNames { + static final FieldName retcode = FieldName.forField("retcode"); + + static final FieldName activityScheduleList = FieldName.forField("activityScheduleList", "activity_schedule_list"); + } + } +} diff --git a/src/main/java/emu/lunarcore/data/GameData.java b/src/main/java/emu/lunarcore/data/GameData.java index 8c0070f..780d82a 100644 --- a/src/main/java/emu/lunarcore/data/GameData.java +++ b/src/main/java/emu/lunarcore/data/GameData.java @@ -30,6 +30,7 @@ public class GameData { @Getter private static Int2ObjectMap shopExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap rewardExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap itemComposeExcelMap = new Int2ObjectOpenHashMap<>(); + @Getter private static Int2ObjectMap activityPanelExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap challengeGroupExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap challengeExcelMap = new Int2ObjectOpenHashMap<>(); diff --git a/src/main/java/emu/lunarcore/data/excel/ActivityPanelExcel.java b/src/main/java/emu/lunarcore/data/excel/ActivityPanelExcel.java new file mode 100644 index 0000000..d567ed1 --- /dev/null +++ b/src/main/java/emu/lunarcore/data/excel/ActivityPanelExcel.java @@ -0,0 +1,20 @@ +package emu.lunarcore.data.excel; + +import emu.lunarcore.data.GameResource; +import emu.lunarcore.data.ResourceType; + +import lombok.Getter; + +@Getter +@ResourceType(name = {"ActivityPanel.json"}) +public class ActivityPanelExcel extends GameResource { + private int PanelID; + private int Type; + private int ActivityModuleID; + private boolean IsResidentPanel; + + @Override + public int getId() { + return PanelID; + } +} diff --git a/src/main/java/emu/lunarcore/server/packet/recv/HandlerGetActivityScheduleConfigCsReq.java b/src/main/java/emu/lunarcore/server/packet/recv/HandlerGetActivityScheduleConfigCsReq.java new file mode 100644 index 0000000..b804ae3 --- /dev/null +++ b/src/main/java/emu/lunarcore/server/packet/recv/HandlerGetActivityScheduleConfigCsReq.java @@ -0,0 +1,17 @@ +package emu.lunarcore.server.packet.recv; + +import emu.lunarcore.server.game.GameSession; +import emu.lunarcore.server.packet.CmdId; +import emu.lunarcore.server.packet.Opcodes; +import emu.lunarcore.server.packet.PacketHandler; +import emu.lunarcore.server.packet.send.PacketGetActivityScheduleConfigScRsp; + +@Opcodes(CmdId.GetActivityScheduleConfigCsReq) +public class HandlerGetActivityScheduleConfigCsReq extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] data) throws Exception { + session.send(new PacketGetActivityScheduleConfigScRsp()); + } + +} diff --git a/src/main/java/emu/lunarcore/server/packet/send/PacketGetActivityScheduleConfigScRsp.java b/src/main/java/emu/lunarcore/server/packet/send/PacketGetActivityScheduleConfigScRsp.java new file mode 100644 index 0000000..5a778f1 --- /dev/null +++ b/src/main/java/emu/lunarcore/server/packet/send/PacketGetActivityScheduleConfigScRsp.java @@ -0,0 +1,30 @@ +package emu.lunarcore.server.packet.send; + +import emu.lunarcore.data.GameData; +import emu.lunarcore.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo; +import emu.lunarcore.proto.GetActivityScheduleConfigScRspOuterClass.GetActivityScheduleConfigScRsp; +import emu.lunarcore.server.packet.BasePacket; +import emu.lunarcore.server.packet.CmdId; + +public class PacketGetActivityScheduleConfigScRsp extends BasePacket { + + public PacketGetActivityScheduleConfigScRsp() { + super(CmdId.GetActivityScheduleConfigScRsp); + + var data = GetActivityScheduleConfigScRsp.newInstance(); + + for (var activity : GameData.getActivityPanelExcelMap().values()) { + if (activity.getType() != 5) continue; + + var info = ActivityScheduleInfo.newInstance() + .setActivityId(activity.getPanelID()) + .setModuleId(activity.getActivityModuleID()) + .setBeginTime(0) + .setEndTime(Integer.MAX_VALUE); + + data.addActivityScheduleList(info); + } + + this.setData(data); + } +}