diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SkipPlayerGameTimeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SkipPlayerGameTimeReqOuterClass.java
new file mode 100644
index 000000000..6eef4556a
--- /dev/null
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SkipPlayerGameTimeReqOuterClass.java
@@ -0,0 +1,820 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: SkipPlayerGameTimeReq.proto
+
+package emu.grasscutter.net.proto;
+
+public final class SkipPlayerGameTimeReqOuterClass {
+ private SkipPlayerGameTimeReqOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface SkipPlayerGameTimeReqOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:SkipPlayerGameTimeReq)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * bool isForceSet = 3;
+ * @return The isForceSet.
+ */
+ boolean getIsForceSet();
+
+ /**
+ * uint32 clientGameTime = 1;
+ * @return The clientGameTime.
+ */
+ int getClientGameTime();
+
+ /**
+ * uint32 gameTime = 15;
+ * @return The gameTime.
+ */
+ int getGameTime();
+ }
+ /**
+ * Protobuf type {@code SkipPlayerGameTimeReq}
+ */
+ public static final class SkipPlayerGameTimeReq extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:SkipPlayerGameTimeReq)
+ SkipPlayerGameTimeReqOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use SkipPlayerGameTimeReq.newBuilder() to construct.
+ private SkipPlayerGameTimeReq(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+ private SkipPlayerGameTimeReq() {
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new SkipPlayerGameTimeReq();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private SkipPlayerGameTimeReq(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 8: {
+
+ clientGameTime_ = input.readUInt32();
+ break;
+ }
+ case 24: {
+
+ isForceSet_ = input.readBool();
+ break;
+ }
+ case 120: {
+
+ gameTime_ = input.readUInt32();
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.internal_static_SkipPlayerGameTimeReq_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.internal_static_SkipPlayerGameTimeReq_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq.class, emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq.Builder.class);
+ }
+
+ /**
+ * Protobuf enum {@code SkipPlayerGameTimeReq.PPJDKEJDOGN}
+ */
+ public enum PPJDKEJDOGN
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * NONE = 0;
+ */
+ NONE(0, 0),
+ /**
+ * PEPPOHPHJOJ = 108;
+ */
+ PEPPOHPHJOJ(1, 108),
+ /**
+ * NNBKOLMPOEA = 1;
+ */
+ NNBKOLMPOEA(3, 1),
+ UNRECOGNIZED(-1, -1),
+ ;
+
+ /**
+ * DCDNILFDFLB = 0;
+ */
+ public static final PPJDKEJDOGN DCDNILFDFLB = NONE;
+ /**
+ * EAJIABGAOCI = 1;
+ */
+ public static final PPJDKEJDOGN EAJIABGAOCI = NNBKOLMPOEA;
+ /**
+ * NONE = 0;
+ */
+ public static final int NONE_VALUE = 0;
+ /**
+ * PEPPOHPHJOJ = 108;
+ */
+ public static final int PEPPOHPHJOJ_VALUE = 108;
+ /**
+ * DCDNILFDFLB = 0;
+ */
+ public static final int DCDNILFDFLB_VALUE = 0;
+ /**
+ * NNBKOLMPOEA = 1;
+ */
+ public static final int NNBKOLMPOEA_VALUE = 1;
+ /**
+ * EAJIABGAOCI = 1;
+ */
+ public static final int EAJIABGAOCI_VALUE = 1;
+
+
+ public final int getNumber() {
+ if (index == -1) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static PPJDKEJDOGN valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static PPJDKEJDOGN forNumber(int value) {
+ switch (value) {
+ case 0: return NONE;
+ case 108: return PEPPOHPHJOJ;
+ case 1: return NNBKOLMPOEA;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static final com.google.protobuf.Internal.EnumLiteMap<
+ PPJDKEJDOGN> internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap() {
+ public PPJDKEJDOGN findValueByNumber(int number) {
+ return PPJDKEJDOGN.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ if (index == -1) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final PPJDKEJDOGN[] VALUES = getStaticValuesArray();
+ private static PPJDKEJDOGN[] getStaticValuesArray() {
+ return new PPJDKEJDOGN[] {
+ NONE, PEPPOHPHJOJ, DCDNILFDFLB, NNBKOLMPOEA, EAJIABGAOCI,
+ };
+ }
+ public static PPJDKEJDOGN valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private PPJDKEJDOGN(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:SkipPlayerGameTimeReq.PPJDKEJDOGN)
+ }
+
+ public static final int ISFORCESET_FIELD_NUMBER = 3;
+ private boolean isForceSet_;
+ /**
+ * bool isForceSet = 3;
+ * @return The isForceSet.
+ */
+ @java.lang.Override
+ public boolean getIsForceSet() {
+ return isForceSet_;
+ }
+
+ public static final int CLIENTGAMETIME_FIELD_NUMBER = 1;
+ private int clientGameTime_;
+ /**
+ * uint32 clientGameTime = 1;
+ * @return The clientGameTime.
+ */
+ @java.lang.Override
+ public int getClientGameTime() {
+ return clientGameTime_;
+ }
+
+ public static final int GAMETIME_FIELD_NUMBER = 15;
+ private int gameTime_;
+ /**
+ * uint32 gameTime = 15;
+ * @return The gameTime.
+ */
+ @java.lang.Override
+ public int getGameTime() {
+ return gameTime_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (clientGameTime_ != 0) {
+ output.writeUInt32(1, clientGameTime_);
+ }
+ if (isForceSet_ != false) {
+ output.writeBool(3, isForceSet_);
+ }
+ if (gameTime_ != 0) {
+ output.writeUInt32(15, gameTime_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (clientGameTime_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, clientGameTime_);
+ }
+ if (isForceSet_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(3, isForceSet_);
+ }
+ if (gameTime_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(15, gameTime_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq)) {
+ return super.equals(obj);
+ }
+ emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq other = (emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq) obj;
+
+ if (getIsForceSet()
+ != other.getIsForceSet()) return false;
+ if (getClientGameTime()
+ != other.getClientGameTime()) return false;
+ if (getGameTime()
+ != other.getGameTime()) return false;
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + ISFORCESET_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getIsForceSet());
+ hash = (37 * hash) + CLIENTGAMETIME_FIELD_NUMBER;
+ hash = (53 * hash) + getClientGameTime();
+ hash = (37 * hash) + GAMETIME_FIELD_NUMBER;
+ hash = (53 * hash) + getGameTime();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code SkipPlayerGameTimeReq}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder implements
+ // @@protoc_insertion_point(builder_implements:SkipPlayerGameTimeReq)
+ emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReqOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.internal_static_SkipPlayerGameTimeReq_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.internal_static_SkipPlayerGameTimeReq_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq.class, emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq.Builder.class);
+ }
+
+ // Construct using emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ isForceSet_ = false;
+
+ clientGameTime_ = 0;
+
+ gameTime_ = 0;
+
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.internal_static_SkipPlayerGameTimeReq_descriptor;
+ }
+
+ @java.lang.Override
+ public emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq getDefaultInstanceForType() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq build() {
+ emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq buildPartial() {
+ emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq result = new emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq(this);
+ result.isForceSet_ = isForceSet_;
+ result.clientGameTime_ = clientGameTime_;
+ result.gameTime_ = gameTime_;
+ onBuilt();
+ return result;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.setField(field, value);
+ }
+ @java.lang.Override
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+ @java.lang.Override
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq) {
+ return mergeFrom((emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq other) {
+ if (other == emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq.getDefaultInstance()) return this;
+ if (other.getIsForceSet() != false) {
+ setIsForceSet(other.getIsForceSet());
+ }
+ if (other.getClientGameTime() != 0) {
+ setClientGameTime(other.getClientGameTime());
+ }
+ if (other.getGameTime() != 0) {
+ setGameTime(other.getGameTime());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private boolean isForceSet_ ;
+ /**
+ * bool isForceSet = 3;
+ * @return The isForceSet.
+ */
+ @java.lang.Override
+ public boolean getIsForceSet() {
+ return isForceSet_;
+ }
+ /**
+ * bool isForceSet = 3;
+ * @param value The isForceSet to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIsForceSet(boolean value) {
+
+ isForceSet_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * bool isForceSet = 3;
+ * @return This builder for chaining.
+ */
+ public Builder clearIsForceSet() {
+
+ isForceSet_ = false;
+ onChanged();
+ return this;
+ }
+
+ private int clientGameTime_ ;
+ /**
+ * uint32 clientGameTime = 1;
+ * @return The clientGameTime.
+ */
+ @java.lang.Override
+ public int getClientGameTime() {
+ return clientGameTime_;
+ }
+ /**
+ * uint32 clientGameTime = 1;
+ * @param value The clientGameTime to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClientGameTime(int value) {
+
+ clientGameTime_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * uint32 clientGameTime = 1;
+ * @return This builder for chaining.
+ */
+ public Builder clearClientGameTime() {
+
+ clientGameTime_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int gameTime_ ;
+ /**
+ * uint32 gameTime = 15;
+ * @return The gameTime.
+ */
+ @java.lang.Override
+ public int getGameTime() {
+ return gameTime_;
+ }
+ /**
+ * uint32 gameTime = 15;
+ * @param value The gameTime to set.
+ * @return This builder for chaining.
+ */
+ public Builder setGameTime(int value) {
+
+ gameTime_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * uint32 gameTime = 15;
+ * @return This builder for chaining.
+ */
+ public Builder clearGameTime() {
+
+ gameTime_ = 0;
+ onChanged();
+ return this;
+ }
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:SkipPlayerGameTimeReq)
+ }
+
+ // @@protoc_insertion_point(class_scope:SkipPlayerGameTimeReq)
+ private static final emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq();
+ }
+
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public SkipPlayerGameTimeReq parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new SkipPlayerGameTimeReq(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_SkipPlayerGameTimeReq_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_SkipPlayerGameTimeReq_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\033SkipPlayerGameTimeReq.proto\"\266\001\n\025SkipPl" +
+ "ayerGameTimeReq\022\022\n\nisForceSet\030\003 \001(\010\022\026\n\016c" +
+ "lientGameTime\030\001 \001(\r\022\020\n\010gameTime\030\017 \001(\r\"_\n" +
+ "\013PPJDKEJDOGN\022\010\n\004NONE\020\000\022\017\n\013PEPPOHPHJOJ\020l\022" +
+ "\017\n\013DCDNILFDFLB\020\000\022\017\n\013NNBKOLMPOEA\020\001\022\017\n\013EAJ" +
+ "IABGAOCI\020\001\032\002\020\001B\033\n\031emu.grasscutter.net.pr" +
+ "otob\006proto3"
+ };
+ descriptor = com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ });
+ internal_static_SkipPlayerGameTimeReq_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_SkipPlayerGameTimeReq_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_SkipPlayerGameTimeReq_descriptor,
+ new java.lang.String[] { "IsForceSet", "ClientGameTime", "GameTime", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SkipPlayerGameTimeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SkipPlayerGameTimeRspOuterClass.java
new file mode 100644
index 000000000..b29b2b3e1
--- /dev/null
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SkipPlayerGameTimeRspOuterClass.java
@@ -0,0 +1,810 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: SkipPlayerGameTimeRsp.proto
+
+package emu.grasscutter.net.proto;
+
+public final class SkipPlayerGameTimeRspOuterClass {
+ private SkipPlayerGameTimeRspOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface SkipPlayerGameTimeRspOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:SkipPlayerGameTimeRsp)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * uint32 clientGameTime = 14;
+ * @return The clientGameTime.
+ */
+ int getClientGameTime();
+
+ /**
+ * uint32 gameTime = 15;
+ * @return The gameTime.
+ */
+ int getGameTime();
+
+ /**
+ * int32 retcode = 12;
+ * @return The retcode.
+ */
+ int getRetcode();
+ }
+ /**
+ * Protobuf type {@code SkipPlayerGameTimeRsp}
+ */
+ public static final class SkipPlayerGameTimeRsp extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:SkipPlayerGameTimeRsp)
+ SkipPlayerGameTimeRspOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use SkipPlayerGameTimeRsp.newBuilder() to construct.
+ private SkipPlayerGameTimeRsp(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+ private SkipPlayerGameTimeRsp() {
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new SkipPlayerGameTimeRsp();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private SkipPlayerGameTimeRsp(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 96: {
+
+ retcode_ = input.readInt32();
+ break;
+ }
+ case 112: {
+
+ clientGameTime_ = input.readUInt32();
+ break;
+ }
+ case 120: {
+
+ gameTime_ = input.readUInt32();
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.internal_static_SkipPlayerGameTimeRsp_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.internal_static_SkipPlayerGameTimeRsp_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp.class, emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp.Builder.class);
+ }
+
+ /**
+ * Protobuf enum {@code SkipPlayerGameTimeRsp.HGNBEDAOKOC}
+ */
+ public enum HGNBEDAOKOC
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * NONE = 0;
+ */
+ NONE(0, 0),
+ /**
+ * PEPPOHPHJOJ = 166;
+ */
+ PEPPOHPHJOJ(1, 166),
+ /**
+ * NNBKOLMPOEA = 1;
+ */
+ NNBKOLMPOEA(3, 1),
+ UNRECOGNIZED(-1, -1),
+ ;
+
+ /**
+ * DCDNILFDFLB = 0;
+ */
+ public static final HGNBEDAOKOC DCDNILFDFLB = NONE;
+ /**
+ * NONE = 0;
+ */
+ public static final int NONE_VALUE = 0;
+ /**
+ * PEPPOHPHJOJ = 166;
+ */
+ public static final int PEPPOHPHJOJ_VALUE = 166;
+ /**
+ * DCDNILFDFLB = 0;
+ */
+ public static final int DCDNILFDFLB_VALUE = 0;
+ /**
+ * NNBKOLMPOEA = 1;
+ */
+ public static final int NNBKOLMPOEA_VALUE = 1;
+
+
+ public final int getNumber() {
+ if (index == -1) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static HGNBEDAOKOC valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static HGNBEDAOKOC forNumber(int value) {
+ switch (value) {
+ case 0: return NONE;
+ case 166: return PEPPOHPHJOJ;
+ case 1: return NNBKOLMPOEA;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static final com.google.protobuf.Internal.EnumLiteMap<
+ HGNBEDAOKOC> internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap() {
+ public HGNBEDAOKOC findValueByNumber(int number) {
+ return HGNBEDAOKOC.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ if (index == -1) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final HGNBEDAOKOC[] VALUES = getStaticValuesArray();
+ private static HGNBEDAOKOC[] getStaticValuesArray() {
+ return new HGNBEDAOKOC[] {
+ NONE, PEPPOHPHJOJ, DCDNILFDFLB, NNBKOLMPOEA,
+ };
+ }
+ public static HGNBEDAOKOC valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private HGNBEDAOKOC(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:SkipPlayerGameTimeRsp.HGNBEDAOKOC)
+ }
+
+ public static final int CLIENTGAMETIME_FIELD_NUMBER = 14;
+ private int clientGameTime_;
+ /**
+ * uint32 clientGameTime = 14;
+ * @return The clientGameTime.
+ */
+ @java.lang.Override
+ public int getClientGameTime() {
+ return clientGameTime_;
+ }
+
+ public static final int GAMETIME_FIELD_NUMBER = 15;
+ private int gameTime_;
+ /**
+ * uint32 gameTime = 15;
+ * @return The gameTime.
+ */
+ @java.lang.Override
+ public int getGameTime() {
+ return gameTime_;
+ }
+
+ public static final int RETCODE_FIELD_NUMBER = 12;
+ private int retcode_;
+ /**
+ * int32 retcode = 12;
+ * @return The retcode.
+ */
+ @java.lang.Override
+ public int getRetcode() {
+ return retcode_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (retcode_ != 0) {
+ output.writeInt32(12, retcode_);
+ }
+ if (clientGameTime_ != 0) {
+ output.writeUInt32(14, clientGameTime_);
+ }
+ if (gameTime_ != 0) {
+ output.writeUInt32(15, gameTime_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (retcode_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(12, retcode_);
+ }
+ if (clientGameTime_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(14, clientGameTime_);
+ }
+ if (gameTime_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(15, gameTime_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp)) {
+ return super.equals(obj);
+ }
+ emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp other = (emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp) obj;
+
+ if (getClientGameTime()
+ != other.getClientGameTime()) return false;
+ if (getGameTime()
+ != other.getGameTime()) return false;
+ if (getRetcode()
+ != other.getRetcode()) return false;
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + CLIENTGAMETIME_FIELD_NUMBER;
+ hash = (53 * hash) + getClientGameTime();
+ hash = (37 * hash) + GAMETIME_FIELD_NUMBER;
+ hash = (53 * hash) + getGameTime();
+ hash = (37 * hash) + RETCODE_FIELD_NUMBER;
+ hash = (53 * hash) + getRetcode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code SkipPlayerGameTimeRsp}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder implements
+ // @@protoc_insertion_point(builder_implements:SkipPlayerGameTimeRsp)
+ emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRspOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.internal_static_SkipPlayerGameTimeRsp_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.internal_static_SkipPlayerGameTimeRsp_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp.class, emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp.Builder.class);
+ }
+
+ // Construct using emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ clientGameTime_ = 0;
+
+ gameTime_ = 0;
+
+ retcode_ = 0;
+
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.internal_static_SkipPlayerGameTimeRsp_descriptor;
+ }
+
+ @java.lang.Override
+ public emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp getDefaultInstanceForType() {
+ return emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp build() {
+ emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp buildPartial() {
+ emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp result = new emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp(this);
+ result.clientGameTime_ = clientGameTime_;
+ result.gameTime_ = gameTime_;
+ result.retcode_ = retcode_;
+ onBuilt();
+ return result;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.setField(field, value);
+ }
+ @java.lang.Override
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+ @java.lang.Override
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp) {
+ return mergeFrom((emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp other) {
+ if (other == emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp.getDefaultInstance()) return this;
+ if (other.getClientGameTime() != 0) {
+ setClientGameTime(other.getClientGameTime());
+ }
+ if (other.getGameTime() != 0) {
+ setGameTime(other.getGameTime());
+ }
+ if (other.getRetcode() != 0) {
+ setRetcode(other.getRetcode());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private int clientGameTime_ ;
+ /**
+ * uint32 clientGameTime = 14;
+ * @return The clientGameTime.
+ */
+ @java.lang.Override
+ public int getClientGameTime() {
+ return clientGameTime_;
+ }
+ /**
+ * uint32 clientGameTime = 14;
+ * @param value The clientGameTime to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClientGameTime(int value) {
+
+ clientGameTime_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * uint32 clientGameTime = 14;
+ * @return This builder for chaining.
+ */
+ public Builder clearClientGameTime() {
+
+ clientGameTime_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int gameTime_ ;
+ /**
+ * uint32 gameTime = 15;
+ * @return The gameTime.
+ */
+ @java.lang.Override
+ public int getGameTime() {
+ return gameTime_;
+ }
+ /**
+ * uint32 gameTime = 15;
+ * @param value The gameTime to set.
+ * @return This builder for chaining.
+ */
+ public Builder setGameTime(int value) {
+
+ gameTime_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * uint32 gameTime = 15;
+ * @return This builder for chaining.
+ */
+ public Builder clearGameTime() {
+
+ gameTime_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int retcode_ ;
+ /**
+ * int32 retcode = 12;
+ * @return The retcode.
+ */
+ @java.lang.Override
+ public int getRetcode() {
+ return retcode_;
+ }
+ /**
+ * int32 retcode = 12;
+ * @param value The retcode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRetcode(int value) {
+
+ retcode_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * int32 retcode = 12;
+ * @return This builder for chaining.
+ */
+ public Builder clearRetcode() {
+
+ retcode_ = 0;
+ onChanged();
+ return this;
+ }
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:SkipPlayerGameTimeRsp)
+ }
+
+ // @@protoc_insertion_point(class_scope:SkipPlayerGameTimeRsp)
+ private static final emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp();
+ }
+
+ public static emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public SkipPlayerGameTimeRsp parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new SkipPlayerGameTimeRsp(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_SkipPlayerGameTimeRsp_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_SkipPlayerGameTimeRsp_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\033SkipPlayerGameTimeRsp.proto\"\243\001\n\025SkipPl" +
+ "ayerGameTimeRsp\022\026\n\016clientGameTime\030\016 \001(\r\022" +
+ "\020\n\010gameTime\030\017 \001(\r\022\017\n\007retcode\030\014 \001(\005\"O\n\013HG" +
+ "NBEDAOKOC\022\010\n\004NONE\020\000\022\020\n\013PEPPOHPHJOJ\020\246\001\022\017\n" +
+ "\013DCDNILFDFLB\020\000\022\017\n\013NNBKOLMPOEA\020\001\032\002\020\001B\033\n\031e" +
+ "mu.grasscutter.net.protob\006proto3"
+ };
+ descriptor = com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ });
+ internal_static_SkipPlayerGameTimeRsp_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_SkipPlayerGameTimeRsp_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_SkipPlayerGameTimeRsp_descriptor,
+ new java.lang.String[] { "ClientGameTime", "GameTime", "Retcode", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/src/main/java/emu/grasscutter/game/world/Scene.java b/src/main/java/emu/grasscutter/game/world/Scene.java
index 7ca42ce4c..b389318a2 100644
--- a/src/main/java/emu/grasscutter/game/world/Scene.java
+++ b/src/main/java/emu/grasscutter/game/world/Scene.java
@@ -49,7 +49,7 @@ public class Scene {
@Getter @Setter private boolean dontDestroyWhenEmpty;
@Getter @Setter private int autoCloseTime;
- @Getter private int time;
+ @Getter @Setter private int time;
private long startTime;
@Getter private SceneScriptManager scriptManager;
diff --git a/src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java b/src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java
index 9d8260ba7..555e18e9a 100644
--- a/src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java
+++ b/src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java
@@ -1,7 +1,5 @@
package emu.grasscutter.net.packet;
-import java.util.HashSet;
-
public class PacketOpcodes {
public static final int NONE = 0;
@@ -414,7 +412,6 @@ public class PacketOpcodes {
public static final int DigActivityChangeGadgetStateRsp = 8810;
public static final int DigActivityMarkPointChangeNotify = 8508;
public static final int DisableRoguelikeTrapNotify = 8726;
- public static final int DKMDNEAEGDF = 166;
public static final int DoGachaReq = 1587;
public static final int DoGachaRsp = 1598;
public static final int DoRoguelikeDungeonCardGachaReq = 8752;
@@ -1456,7 +1453,6 @@ public class PacketOpcodes {
public static final int PlayerInvestigationAllInfoNotify = 1917;
public static final int PlayerInvestigationNotify = 1911;
public static final int PlayerInvestigationTargetNotify = 1930;
- public static final int PlayerIpRegionNotify = 108;
public static final int PlayerLevelRewardUpdateNotify = 154;
public static final int PlayerLoginReq = 187;
public static final int PlayerLoginRsp = 198;
@@ -1835,6 +1831,8 @@ public class PacketOpcodes {
public static final int SingleRestartBrickBreakerRsp = 22641;
public static final int SingleStartBrickBreakerReq = 23861;
public static final int SingleStartBrickBreakerRsp = 23349;
+ public static final int SkipPlayerGameTimeReq = 108;
+ public static final int SkipPlayerGameTimeRsp = 166;
public static final int SkyCrystalDetectorDataUpdateNotify = 4265;
public static final int SocialDataNotify = 4050;
public static final int SpiceActivityFinishMakeSpiceReq = 8744;
diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerSetPauseReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerSetPauseReq.java
index 7c1680d20..4ec394da4 100644
--- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerSetPauseReq.java
+++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerSetPauseReq.java
@@ -7,17 +7,22 @@ import emu.grasscutter.net.proto.PlayerSetPauseReqOuterClass.PlayerSetPauseReq;
import emu.grasscutter.net.packet.PacketHandler;
import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketPlayerSetPauseRsp;
+import emu.grasscutter.server.packet.send.PacketPlayerTimeNotify;
+import emu.grasscutter.server.packet.send.PacketSceneTimeNotify;
@Opcodes(PacketOpcodes.PlayerSetPauseReq)
public class HandlerPlayerSetPauseReq extends PacketHandler {
-
+
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
PacketHead head = PacketHead.parseFrom(header);
PlayerSetPauseReq req = PlayerSetPauseReq.parseFrom(payload);
-
+
session.send(new PacketPlayerSetPauseRsp(head.getClientSequenceId()));
session.getPlayer().setPaused(req.getIsPaused());
+
+ session.send(new PacketPlayerTimeNotify(session.getPlayer()));
+ session.send(new PacketSceneTimeNotify(session.getPlayer()));
}
}
diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSkipPlayerGameTimeReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSkipPlayerGameTimeReq.java
new file mode 100644
index 000000000..437261df1
--- /dev/null
+++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSkipPlayerGameTimeReq.java
@@ -0,0 +1,21 @@
+package emu.grasscutter.server.packet.recv;
+
+import emu.grasscutter.net.packet.Opcodes;
+import emu.grasscutter.net.packet.PacketHandler;
+import emu.grasscutter.net.packet.PacketOpcodes;
+import emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass;
+import emu.grasscutter.server.game.GameSession;
+import emu.grasscutter.server.packet.send.PacketPlayerGameTimeNotify;
+import emu.grasscutter.server.packet.send.PacketSkipPlayerGameTimeRsp;
+
+@Opcodes(PacketOpcodes.SkipPlayerGameTimeReq)
+public class HandlerSkipPlayerGameTimeReq extends PacketHandler {
+ @Override
+ public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
+ var req = SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq.parseFrom(payload);
+ var player = session.getPlayer();
+ player.getScene().setTime(req.getGameTime());
+ player.getScene().broadcastPacket(new PacketPlayerGameTimeNotify(player));
+ player.sendPacket(new PacketSkipPlayerGameTimeRsp(req));
+ }
+}
diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java
index b227d6c99..9f9a02a26 100644
--- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java
+++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java
@@ -11,6 +11,7 @@ public class PacketSceneTimeNotify extends BasePacket {
super(PacketOpcodes.SceneTimeNotify);
SceneTimeNotify proto = SceneTimeNotify.newBuilder()
+ .setIsPaused(player.isPaused())
.setSceneId(player.getSceneId())
.setSceneTime(player.getScene().getSceneTime())
.build();
diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSkipPlayerGameTimeRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSkipPlayerGameTimeRsp.java
new file mode 100644
index 000000000..db22a1687
--- /dev/null
+++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSkipPlayerGameTimeRsp.java
@@ -0,0 +1,19 @@
+package emu.grasscutter.server.packet.send;
+
+import emu.grasscutter.net.packet.BasePacket;
+import emu.grasscutter.net.packet.PacketOpcodes;
+import emu.grasscutter.net.proto.SkipPlayerGameTimeReqOuterClass;
+import emu.grasscutter.net.proto.SkipPlayerGameTimeRspOuterClass;
+
+public class PacketSkipPlayerGameTimeRsp extends BasePacket {
+ public PacketSkipPlayerGameTimeRsp(SkipPlayerGameTimeReqOuterClass.SkipPlayerGameTimeReq req) {
+ super(PacketOpcodes.SkipPlayerGameTimeRsp);
+
+ var proto = SkipPlayerGameTimeRspOuterClass.SkipPlayerGameTimeRsp.newBuilder()
+ .setClientGameTime(req.getClientGameTime())
+ .setGameTime(req.getGameTime())
+ .build();
+
+ this.setData(proto);
+ }
+}