From caf9521013c0fa590d4eca8a381a1a6b841befc0 Mon Sep 17 00:00:00 2001 From: hamusuke Date: Mon, 10 Apr 2023 09:20:12 +0900 Subject: [PATCH 1/3] feat: add ability to buy resin with primogems (#2104) * feat: add ability to buy resin with primogems * ResinManager#buy returns RetCode value --- .../net/proto/BuyResinReqOuterClass.java | 475 ++++++++++++++ .../net/proto/BuyResinRspOuterClass.java | 616 ++++++++++++++++++ .../proto/ResinChangeNotifyOuterClass.java | 172 +++-- .../game/managers/ResinManager.java | 30 +- .../emu/grasscutter/game/player/Player.java | 30 +- .../props/ItemUseAction/ItemUseAddItem.java | 3 +- .../packet/recv/HandlerBuyResinReq.java | 16 + .../server/packet/send/PacketBuyResinRsp.java | 18 + .../packet/send/PacketResinChangeNotify.java | 23 +- 9 files changed, 1265 insertions(+), 118 deletions(-) create mode 100644 src/generated/main/java/emu/grasscutter/net/proto/BuyResinReqOuterClass.java create mode 100644 src/generated/main/java/emu/grasscutter/net/proto/BuyResinRspOuterClass.java create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerBuyResinReq.java create mode 100644 src/main/java/emu/grasscutter/server/packet/send/PacketBuyResinRsp.java diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BuyResinReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BuyResinReqOuterClass.java new file mode 100644 index 000000000..69be718d5 --- /dev/null +++ b/src/generated/main/java/emu/grasscutter/net/proto/BuyResinReqOuterClass.java @@ -0,0 +1,475 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: BuyResinReq.proto + +package emu.grasscutter.net.proto; + +public final class BuyResinReqOuterClass { + private BuyResinReqOuterClass() {} + 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 BuyResinReqOrBuilder extends + // @@protoc_insertion_point(interface_extends:BuyResinReq) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Name: NIBFJEFHMIM
+   * CmdId: 630
+   * 
+ * + * Protobuf type {@code BuyResinReq} + */ + public static final class BuyResinReq extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:BuyResinReq) + BuyResinReqOrBuilder { + private static final long serialVersionUID = 0L; + // Use BuyResinReq.newBuilder() to construct. + private BuyResinReq(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private BuyResinReq() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new BuyResinReq(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private BuyResinReq( + 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; + 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.BuyResinReqOuterClass.internal_static_BuyResinReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.BuyResinReqOuterClass.internal_static_BuyResinReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq.class, emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq.Builder.class); + } + + 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 { + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.BuyResinReqOuterClass.BuyResinReq)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq other = (emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq) obj; + + 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 = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq 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.BuyResinReqOuterClass.BuyResinReq parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq 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.BuyResinReqOuterClass.BuyResinReq parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq 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.BuyResinReqOuterClass.BuyResinReq parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq 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.BuyResinReqOuterClass.BuyResinReq parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq 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.BuyResinReqOuterClass.BuyResinReq 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; + } + /** + *
+     * Name: NIBFJEFHMIM
+     * CmdId: 630
+     * 
+ * + * Protobuf type {@code BuyResinReq} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:BuyResinReq) + emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReqOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.BuyResinReqOuterClass.internal_static_BuyResinReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.BuyResinReqOuterClass.internal_static_BuyResinReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq.class, emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq.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(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.BuyResinReqOuterClass.internal_static_BuyResinReq_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq getDefaultInstanceForType() { + return emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq build() { + emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq buildPartial() { + emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq result = new emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq(this); + 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.BuyResinReqOuterClass.BuyResinReq) { + return mergeFrom((emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq other) { + if (other == emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq.getDefaultInstance()) return this; + 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.BuyResinReqOuterClass.BuyResinReq parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + 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:BuyResinReq) + } + + // @@protoc_insertion_point(class_scope:BuyResinReq) + private static final emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq(); + } + + public static emu.grasscutter.net.proto.BuyResinReqOuterClass.BuyResinReq getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BuyResinReq parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new BuyResinReq(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.BuyResinReqOuterClass.BuyResinReq getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_BuyResinReq_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_BuyResinReq_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\021BuyResinReq.proto\"\r\n\013BuyResinReqB\033\n\031em" + + "u.grasscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_BuyResinReq_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_BuyResinReq_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_BuyResinReq_descriptor, + new java.lang.String[] { }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BuyResinRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BuyResinRspOuterClass.java new file mode 100644 index 000000000..c1f287c2b --- /dev/null +++ b/src/generated/main/java/emu/grasscutter/net/proto/BuyResinRspOuterClass.java @@ -0,0 +1,616 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: BuyResinRsp.proto + +package emu.grasscutter.net.proto; + +public final class BuyResinRspOuterClass { + private BuyResinRspOuterClass() {} + 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 BuyResinRspOrBuilder extends + // @@protoc_insertion_point(interface_extends:BuyResinRsp) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 retcode = 9; + * @return The retcode. + */ + int getRetcode(); + + /** + * uint32 cur_value = 3; + * @return The curValue. + */ + int getCurValue(); + } + /** + *
+   * Name: PFLBPGOHFKJ
+   * CmdId: 687
+   * 
+ * + * Protobuf type {@code BuyResinRsp} + */ + public static final class BuyResinRsp extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:BuyResinRsp) + BuyResinRspOrBuilder { + private static final long serialVersionUID = 0L; + // Use BuyResinRsp.newBuilder() to construct. + private BuyResinRsp(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private BuyResinRsp() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new BuyResinRsp(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private BuyResinRsp( + 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 24: { + + curValue_ = input.readUInt32(); + break; + } + case 72: { + + retcode_ = input.readInt32(); + 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.BuyResinRspOuterClass.internal_static_BuyResinRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.BuyResinRspOuterClass.internal_static_BuyResinRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp.class, emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp.Builder.class); + } + + public static final int RETCODE_FIELD_NUMBER = 9; + private int retcode_; + /** + * int32 retcode = 9; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + + public static final int CUR_VALUE_FIELD_NUMBER = 3; + private int curValue_; + /** + * uint32 cur_value = 3; + * @return The curValue. + */ + @java.lang.Override + public int getCurValue() { + return curValue_; + } + + 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 (curValue_ != 0) { + output.writeUInt32(3, curValue_); + } + if (retcode_ != 0) { + output.writeInt32(9, retcode_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (curValue_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(3, curValue_); + } + if (retcode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(9, retcode_); + } + 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.BuyResinRspOuterClass.BuyResinRsp)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp other = (emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp) obj; + + if (getRetcode() + != other.getRetcode()) return false; + if (getCurValue() + != other.getCurValue()) 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) + RETCODE_FIELD_NUMBER; + hash = (53 * hash) + getRetcode(); + hash = (37 * hash) + CUR_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getCurValue(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp 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.BuyResinRspOuterClass.BuyResinRsp parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp 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.BuyResinRspOuterClass.BuyResinRsp parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp 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.BuyResinRspOuterClass.BuyResinRsp parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp 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.BuyResinRspOuterClass.BuyResinRsp parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp 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.BuyResinRspOuterClass.BuyResinRsp 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; + } + /** + *
+     * Name: PFLBPGOHFKJ
+     * CmdId: 687
+     * 
+ * + * Protobuf type {@code BuyResinRsp} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:BuyResinRsp) + emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRspOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.BuyResinRspOuterClass.internal_static_BuyResinRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.BuyResinRspOuterClass.internal_static_BuyResinRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp.class, emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp.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(); + retcode_ = 0; + + curValue_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.BuyResinRspOuterClass.internal_static_BuyResinRsp_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp getDefaultInstanceForType() { + return emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp build() { + emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp buildPartial() { + emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp result = new emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp(this); + result.retcode_ = retcode_; + result.curValue_ = curValue_; + 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.BuyResinRspOuterClass.BuyResinRsp) { + return mergeFrom((emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp other) { + if (other == emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp.getDefaultInstance()) return this; + if (other.getRetcode() != 0) { + setRetcode(other.getRetcode()); + } + if (other.getCurValue() != 0) { + setCurValue(other.getCurValue()); + } + 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.BuyResinRspOuterClass.BuyResinRsp parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int retcode_ ; + /** + * int32 retcode = 9; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + /** + * int32 retcode = 9; + * @param value The retcode to set. + * @return This builder for chaining. + */ + public Builder setRetcode(int value) { + + retcode_ = value; + onChanged(); + return this; + } + /** + * int32 retcode = 9; + * @return This builder for chaining. + */ + public Builder clearRetcode() { + + retcode_ = 0; + onChanged(); + return this; + } + + private int curValue_ ; + /** + * uint32 cur_value = 3; + * @return The curValue. + */ + @java.lang.Override + public int getCurValue() { + return curValue_; + } + /** + * uint32 cur_value = 3; + * @param value The curValue to set. + * @return This builder for chaining. + */ + public Builder setCurValue(int value) { + + curValue_ = value; + onChanged(); + return this; + } + /** + * uint32 cur_value = 3; + * @return This builder for chaining. + */ + public Builder clearCurValue() { + + curValue_ = 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:BuyResinRsp) + } + + // @@protoc_insertion_point(class_scope:BuyResinRsp) + private static final emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp(); + } + + public static emu.grasscutter.net.proto.BuyResinRspOuterClass.BuyResinRsp getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BuyResinRsp parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new BuyResinRsp(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.BuyResinRspOuterClass.BuyResinRsp getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_BuyResinRsp_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_BuyResinRsp_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\021BuyResinRsp.proto\"1\n\013BuyResinRsp\022\017\n\007re" + + "tcode\030\t \001(\005\022\021\n\tcur_value\030\003 \001(\rB\033\n\031emu.gr" + + "asscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_BuyResinRsp_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_BuyResinRsp_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_BuyResinRsp_descriptor, + new java.lang.String[] { "Retcode", "CurValue", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java index 0b21cec5f..f76117abb 100644 --- a/src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java +++ b/src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java @@ -25,23 +25,18 @@ public final class ResinChangeNotifyOuterClass { int getCurValue(); /** - * uint32 curBuyCount = 13; - * @return The curBuyCount. - */ - int getCurBuyCount(); - - /** - * uint32 nextAddTimestamp = 12; + * uint32 next_add_timestamp = 13; * @return The nextAddTimestamp. */ int getNextAddTimestamp(); + + /** + * uint32 cur_buy_count = 12; + * @return The curBuyCount. + */ + int getCurBuyCount(); } /** - *
-   * Name: IBIMGHOHNDK
-   * CmdId: 649
-   * 
- * * Protobuf type {@code ResinChangeNotify} */ public static final class ResinChangeNotify extends @@ -88,12 +83,12 @@ public final class ResinChangeNotifyOuterClass { break; case 96: { - nextAddTimestamp_ = input.readUInt32(); + curBuyCount_ = input.readUInt32(); break; } case 104: { - curBuyCount_ = input.readUInt32(); + nextAddTimestamp_ = input.readUInt32(); break; } case 112: { @@ -144,21 +139,10 @@ public final class ResinChangeNotifyOuterClass { return curValue_; } - public static final int CURBUYCOUNT_FIELD_NUMBER = 13; - private int curBuyCount_; - /** - * uint32 curBuyCount = 13; - * @return The curBuyCount. - */ - @java.lang.Override - public int getCurBuyCount() { - return curBuyCount_; - } - - public static final int NEXTADDTIMESTAMP_FIELD_NUMBER = 12; + public static final int NEXT_ADD_TIMESTAMP_FIELD_NUMBER = 13; private int nextAddTimestamp_; /** - * uint32 nextAddTimestamp = 12; + * uint32 next_add_timestamp = 13; * @return The nextAddTimestamp. */ @java.lang.Override @@ -166,6 +150,17 @@ public final class ResinChangeNotifyOuterClass { return nextAddTimestamp_; } + public static final int CUR_BUY_COUNT_FIELD_NUMBER = 12; + private int curBuyCount_; + /** + * uint32 cur_buy_count = 12; + * @return The curBuyCount. + */ + @java.lang.Override + public int getCurBuyCount() { + return curBuyCount_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -180,11 +175,11 @@ public final class ResinChangeNotifyOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (nextAddTimestamp_ != 0) { - output.writeUInt32(12, nextAddTimestamp_); - } if (curBuyCount_ != 0) { - output.writeUInt32(13, curBuyCount_); + output.writeUInt32(12, curBuyCount_); + } + if (nextAddTimestamp_ != 0) { + output.writeUInt32(13, nextAddTimestamp_); } if (curValue_ != 0) { output.writeUInt32(14, curValue_); @@ -198,13 +193,13 @@ public final class ResinChangeNotifyOuterClass { if (size != -1) return size; size = 0; - if (nextAddTimestamp_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(12, nextAddTimestamp_); - } if (curBuyCount_ != 0) { size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(13, curBuyCount_); + .computeUInt32Size(12, curBuyCount_); + } + if (nextAddTimestamp_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(13, nextAddTimestamp_); } if (curValue_ != 0) { size += com.google.protobuf.CodedOutputStream @@ -227,10 +222,10 @@ public final class ResinChangeNotifyOuterClass { if (getCurValue() != other.getCurValue()) return false; - if (getCurBuyCount() - != other.getCurBuyCount()) return false; if (getNextAddTimestamp() != other.getNextAddTimestamp()) return false; + if (getCurBuyCount() + != other.getCurBuyCount()) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -244,10 +239,10 @@ public final class ResinChangeNotifyOuterClass { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + CUR_VALUE_FIELD_NUMBER; hash = (53 * hash) + getCurValue(); - hash = (37 * hash) + CURBUYCOUNT_FIELD_NUMBER; - hash = (53 * hash) + getCurBuyCount(); - hash = (37 * hash) + NEXTADDTIMESTAMP_FIELD_NUMBER; + hash = (37 * hash) + NEXT_ADD_TIMESTAMP_FIELD_NUMBER; hash = (53 * hash) + getNextAddTimestamp(); + hash = (37 * hash) + CUR_BUY_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getCurBuyCount(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -344,11 +339,6 @@ public final class ResinChangeNotifyOuterClass { return builder; } /** - *
-     * Name: IBIMGHOHNDK
-     * CmdId: 649
-     * 
- * * Protobuf type {@code ResinChangeNotify} */ public static final class Builder extends @@ -388,10 +378,10 @@ public final class ResinChangeNotifyOuterClass { super.clear(); curValue_ = 0; - curBuyCount_ = 0; - nextAddTimestamp_ = 0; + curBuyCount_ = 0; + return this; } @@ -419,8 +409,8 @@ public final class ResinChangeNotifyOuterClass { public emu.grasscutter.net.proto.ResinChangeNotifyOuterClass.ResinChangeNotify buildPartial() { emu.grasscutter.net.proto.ResinChangeNotifyOuterClass.ResinChangeNotify result = new emu.grasscutter.net.proto.ResinChangeNotifyOuterClass.ResinChangeNotify(this); result.curValue_ = curValue_; - result.curBuyCount_ = curBuyCount_; result.nextAddTimestamp_ = nextAddTimestamp_; + result.curBuyCount_ = curBuyCount_; onBuilt(); return result; } @@ -472,12 +462,12 @@ public final class ResinChangeNotifyOuterClass { if (other.getCurValue() != 0) { setCurValue(other.getCurValue()); } - if (other.getCurBuyCount() != 0) { - setCurBuyCount(other.getCurBuyCount()); - } if (other.getNextAddTimestamp() != 0) { setNextAddTimestamp(other.getNextAddTimestamp()); } + if (other.getCurBuyCount() != 0) { + setCurBuyCount(other.getCurBuyCount()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -538,40 +528,9 @@ public final class ResinChangeNotifyOuterClass { return this; } - private int curBuyCount_ ; - /** - * uint32 curBuyCount = 13; - * @return The curBuyCount. - */ - @java.lang.Override - public int getCurBuyCount() { - return curBuyCount_; - } - /** - * uint32 curBuyCount = 13; - * @param value The curBuyCount to set. - * @return This builder for chaining. - */ - public Builder setCurBuyCount(int value) { - - curBuyCount_ = value; - onChanged(); - return this; - } - /** - * uint32 curBuyCount = 13; - * @return This builder for chaining. - */ - public Builder clearCurBuyCount() { - - curBuyCount_ = 0; - onChanged(); - return this; - } - private int nextAddTimestamp_ ; /** - * uint32 nextAddTimestamp = 12; + * uint32 next_add_timestamp = 13; * @return The nextAddTimestamp. */ @java.lang.Override @@ -579,7 +538,7 @@ public final class ResinChangeNotifyOuterClass { return nextAddTimestamp_; } /** - * uint32 nextAddTimestamp = 12; + * uint32 next_add_timestamp = 13; * @param value The nextAddTimestamp to set. * @return This builder for chaining. */ @@ -590,7 +549,7 @@ public final class ResinChangeNotifyOuterClass { return this; } /** - * uint32 nextAddTimestamp = 12; + * uint32 next_add_timestamp = 13; * @return This builder for chaining. */ public Builder clearNextAddTimestamp() { @@ -599,6 +558,37 @@ public final class ResinChangeNotifyOuterClass { onChanged(); return this; } + + private int curBuyCount_ ; + /** + * uint32 cur_buy_count = 12; + * @return The curBuyCount. + */ + @java.lang.Override + public int getCurBuyCount() { + return curBuyCount_; + } + /** + * uint32 cur_buy_count = 12; + * @param value The curBuyCount to set. + * @return This builder for chaining. + */ + public Builder setCurBuyCount(int value) { + + curBuyCount_ = value; + onChanged(); + return this; + } + /** + * uint32 cur_buy_count = 12; + * @return This builder for chaining. + */ + public Builder clearCurBuyCount() { + + curBuyCount_ = 0; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -666,10 +656,10 @@ public final class ResinChangeNotifyOuterClass { descriptor; static { java.lang.String[] descriptorData = { - "\n\027ResinChangeNotify.proto\"U\n\021ResinChange" + - "Notify\022\021\n\tcur_value\030\016 \001(\r\022\023\n\013curBuyCount" + - "\030\r \001(\r\022\030\n\020nextAddTimestamp\030\014 \001(\rB\033\n\031emu." + - "grasscutter.net.protob\006proto3" + "\n\027ResinChangeNotify.proto\"Y\n\021ResinChange" + + "Notify\022\021\n\tcur_value\030\016 \001(\r\022\032\n\022next_add_ti" + + "mestamp\030\r \001(\r\022\025\n\rcur_buy_count\030\014 \001(\rB\033\n\031" + + "emu.grasscutter.net.protob\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -680,7 +670,7 @@ public final class ResinChangeNotifyOuterClass { internal_static_ResinChangeNotify_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_ResinChangeNotify_descriptor, - new java.lang.String[] { "CurValue", "CurBuyCount", "NextAddTimestamp", }); + new java.lang.String[] { "CurValue", "NextAddTimestamp", "CurBuyCount", }); } // @@protoc_insertion_point(outer_class_scope) diff --git a/src/main/java/emu/grasscutter/game/managers/ResinManager.java b/src/main/java/emu/grasscutter/game/managers/ResinManager.java index d6056571e..6e865b525 100644 --- a/src/main/java/emu/grasscutter/game/managers/ResinManager.java +++ b/src/main/java/emu/grasscutter/game/managers/ResinManager.java @@ -1,16 +1,22 @@ package emu.grasscutter.game.managers; -import static emu.grasscutter.config.Configuration.GAME_OPTIONS; - +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.player.BasePlayerManager; import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.game.props.WatcherTriggerType; -import emu.grasscutter.server.packet.send.PacketPlayerPropNotify; +import emu.grasscutter.net.proto.RetcodeOuterClass; +import emu.grasscutter.server.packet.send.PacketItemAddHintNotify; import emu.grasscutter.server.packet.send.PacketResinChangeNotify; import emu.grasscutter.utils.Utils; +import static emu.grasscutter.config.Configuration.GAME_OPTIONS; + public class ResinManager extends BasePlayerManager { + public static final int MAX_RESIN_BUYING_COUNT = 6; + public static final int AMOUNT_TO_ADD = 60; + public static final int[] HCOIN_NUM_TO_BUY_RESIN = new int[]{50, 100, 100, 150, 200, 200}; public ResinManager(Player player) { super(player); @@ -146,4 +152,22 @@ public class ResinManager extends BasePlayerManager { // Send initial notifications on logon. this.player.sendPacket(new PacketResinChangeNotify(this.player)); } + + public int buy() { + if (this.player.getResinBuyCount() >= MAX_RESIN_BUYING_COUNT) { + return RetcodeOuterClass.Retcode.RET_RESIN_BOUGHT_COUNT_EXCEEDED_VALUE; + } + + var res = this.player.getInventory().payItem(201, HCOIN_NUM_TO_BUY_RESIN[this.player.getResinBuyCount()]); + if (!res) { + return RetcodeOuterClass.Retcode.RET_HCOIN_NOT_ENOUGH_VALUE; + } + + this.player.setResinBuyCount(this.player.getResinBuyCount() + 1); + this.player.setProperty(PlayerProperty.PROP_PLAYER_WAIT_SUB_HCOIN, 0); + this.addResin(AMOUNT_TO_ADD); + this.player.sendPacket(new PacketItemAddHintNotify(new GameItem(106, AMOUNT_TO_ADD), ActionReason.BuyResin)); + + return 0; + } } diff --git a/src/main/java/emu/grasscutter/game/player/Player.java b/src/main/java/emu/grasscutter/game/player/Player.java index 1e504dd2d..0c7d91815 100644 --- a/src/main/java/emu/grasscutter/game/player/Player.java +++ b/src/main/java/emu/grasscutter/game/player/Player.java @@ -15,29 +15,30 @@ import emu.grasscutter.game.activity.ActivityManager; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.avatar.AvatarStorage; import emu.grasscutter.game.battlepass.BattlePassManager; -import emu.grasscutter.game.entity.*; -import emu.grasscutter.game.home.GameHome; +import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.game.expedition.ExpeditionInfo; import emu.grasscutter.game.friends.FriendsList; import emu.grasscutter.game.friends.PlayerProfile; import emu.grasscutter.game.gacha.PlayerGachaInfo; +import emu.grasscutter.game.home.GameHome; import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.inventory.Inventory; import emu.grasscutter.game.mail.Mail; import emu.grasscutter.game.mail.MailHandler; -import emu.grasscutter.game.managers.cooking.ActiveCookCompoundData; -import emu.grasscutter.game.managers.cooking.CookingCompoundManager; -import emu.grasscutter.game.managers.cooking.CookingManager; import emu.grasscutter.game.managers.FurnitureManager; import emu.grasscutter.game.managers.ResinManager; import emu.grasscutter.game.managers.SatiationManager; +import emu.grasscutter.game.managers.SotSManager; +import emu.grasscutter.game.managers.cooking.ActiveCookCompoundData; +import emu.grasscutter.game.managers.cooking.CookingCompoundManager; +import emu.grasscutter.game.managers.cooking.CookingManager; import emu.grasscutter.game.managers.deforestation.DeforestationManager; import emu.grasscutter.game.managers.energy.EnergyManager; import emu.grasscutter.game.managers.forging.ActiveForgeData; import emu.grasscutter.game.managers.forging.ForgingManager; -import emu.grasscutter.game.managers.mapmark.*; +import emu.grasscutter.game.managers.mapmark.MapMark; +import emu.grasscutter.game.managers.mapmark.MapMarksManager; import emu.grasscutter.game.managers.stamina.StaminaManager; -import emu.grasscutter.game.managers.SotSManager; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.ClimateType; import emu.grasscutter.game.props.PlayerProperty; @@ -50,17 +51,20 @@ import emu.grasscutter.game.tower.TowerManager; import emu.grasscutter.game.world.Scene; import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; -import emu.grasscutter.net.proto.*; import emu.grasscutter.net.proto.AbilityInvokeEntryOuterClass.AbilityInvokeEntry; import emu.grasscutter.net.proto.AttackResultOuterClass.AttackResult; import emu.grasscutter.net.proto.CombatInvokeEntryOuterClass.CombatInvokeEntry; import emu.grasscutter.net.proto.GadgetInteractReqOuterClass.GadgetInteractReq; import emu.grasscutter.net.proto.MpSettingTypeOuterClass.MpSettingType; import emu.grasscutter.net.proto.OnlinePlayerInfoOuterClass.OnlinePlayerInfo; +import emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass; import emu.grasscutter.net.proto.PlayerLocationInfoOuterClass.PlayerLocationInfo; +import emu.grasscutter.net.proto.PlayerWorldLocationInfoOuterClass; import emu.grasscutter.net.proto.ProfilePictureOuterClass.ProfilePicture; import emu.grasscutter.net.proto.PropChangeReasonOuterClass.PropChangeReason; +import emu.grasscutter.net.proto.ShowAvatarInfoOuterClass; import emu.grasscutter.net.proto.SocialDetailOuterClass.SocialDetail; +import emu.grasscutter.net.proto.SocialShowAvatarInfoOuterClass; import emu.grasscutter.scripts.data.SceneRegion; import emu.grasscutter.server.event.player.PlayerJoinEvent; import emu.grasscutter.server.event.player.PlayerQuitEvent; @@ -69,16 +73,14 @@ import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.game.GameSession.SessionState; import emu.grasscutter.server.packet.send.*; import emu.grasscutter.utils.DateHelper; -import emu.grasscutter.utils.Position; import emu.grasscutter.utils.MessageHandler; +import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Utils; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import lombok.Getter; import lombok.Setter; -import static emu.grasscutter.config.Configuration.*; - import java.time.DayOfWeek; import java.time.Instant; import java.time.LocalDate; @@ -87,6 +89,8 @@ import java.util.*; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.LinkedBlockingQueue; +import static emu.grasscutter.config.Configuration.GAME_OPTIONS; + @Entity(value = "players", useDiscriminator = false) public class Player { @Id private int id; @@ -199,6 +203,7 @@ public class Player { @Getter @Setter private long springLastUsed; private HashMap mapMarks; // Getter makes an empty hashmap - maybe do this elsewhere? @Getter @Setter private int nextResinRefresh; + @Getter @Setter private int resinBuyCount; @Getter @Setter private int lastDailyReset; @Getter private transient MpSettingType mpSetting = MpSettingType.MP_SETTING_TYPE_ENTER_AFTER_APPLY; // TODO @@ -1145,6 +1150,9 @@ public class Player { this.getBattlePassManager().resetWeeklyMissions(); } + // Reset resin-buying count. + this.setResinBuyCount(0); + // Done. Update last reset time. this.setLastDailyReset(currentTime); } diff --git a/src/main/java/emu/grasscutter/game/props/ItemUseAction/ItemUseAddItem.java b/src/main/java/emu/grasscutter/game/props/ItemUseAction/ItemUseAddItem.java index 9f5c7ad39..0d36d486f 100644 --- a/src/main/java/emu/grasscutter/game/props/ItemUseAction/ItemUseAddItem.java +++ b/src/main/java/emu/grasscutter/game/props/ItemUseAction/ItemUseAddItem.java @@ -1,5 +1,6 @@ package emu.grasscutter.game.props.ItemUseAction; +import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.ItemUseOp; public class ItemUseAddItem extends ItemUseInt { @@ -19,6 +20,6 @@ public class ItemUseAddItem extends ItemUseInt { @Override public boolean useItem(UseItemParams params) { - return params.player.getInventory().addItem(this.i, this.count * params.count); + return params.player.getInventory().addItem(this.i, this.count * params.count, ActionReason.PlayerUseItem); } } diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerBuyResinReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerBuyResinReq.java new file mode 100644 index 000000000..13ada5de7 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerBuyResinReq.java @@ -0,0 +1,16 @@ +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.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketBuyResinRsp; + +@Opcodes(PacketOpcodes.BuyResinReq) +public class HandlerBuyResinReq extends PacketHandler { + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + var player = session.getPlayer(); + session.send(new PacketBuyResinRsp(player, player.getResinManager().buy())); + } +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketBuyResinRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketBuyResinRsp.java new file mode 100644 index 000000000..07f8bba01 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketBuyResinRsp.java @@ -0,0 +1,18 @@ +package emu.grasscutter.server.packet.send; + +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.props.PlayerProperty; +import emu.grasscutter.net.packet.BasePacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.BuyResinRspOuterClass; + +public class PacketBuyResinRsp extends BasePacket { + public PacketBuyResinRsp(Player player, int ret) { + super(PacketOpcodes.BuyResinRsp); + + this.setData(BuyResinRspOuterClass.BuyResinRsp.newBuilder() + .setCurValue(player.getProperty(PlayerProperty.PROP_PLAYER_RESIN)) + .setRetcode(ret) + .build()); + } +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketResinChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketResinChangeNotify.java index b61c1ab0a..5f9b8bd92 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketResinChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketResinChangeNotify.java @@ -7,17 +7,16 @@ import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ResinChangeNotifyOuterClass.ResinChangeNotify; public class PacketResinChangeNotify extends BasePacket { - - public PacketResinChangeNotify(Player player) { - super(PacketOpcodes.ResinChangeNotify); - - ResinChangeNotify proto = ResinChangeNotify.newBuilder() - .setCurValue(player.getProperty(PlayerProperty.PROP_PLAYER_RESIN)) - .setNextAddTimestamp(player.getNextResinRefresh()) - .build(); - // ToDo: Add ability to buy resin with primogems, has to be included here. - - this.setData(proto); - } + public PacketResinChangeNotify(Player player) { + super(PacketOpcodes.ResinChangeNotify); + + ResinChangeNotify proto = ResinChangeNotify.newBuilder() + .setCurValue(player.getProperty(PlayerProperty.PROP_PLAYER_RESIN)) + .setNextAddTimestamp(player.getNextResinRefresh()) + .setCurBuyCount(player.getResinBuyCount()) + .build(); + + this.setData(proto); + } } From 9dbca6dc1bd199cb8d8c2c956548876219262e08 Mon Sep 17 00:00:00 2001 From: Colleiflower <123335166+thecutefinder@users.noreply.github.com> Date: Mon, 10 Apr 2023 04:14:21 +0000 Subject: [PATCH 2/3] Remove outdated and grammatically incorrect instructions from PR template (#2100) --- .github/PULL_REQUEST_TEMPLATE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index faccaf990..acdbe3c4e 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,7 @@ ## Description Please carefully read the [Contributing note](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md) and [Code of conduct](https://github.com/Grasscutters/Grasscutter/blob/development/CODE_OF_CONDUCT.md) before making any pull requests. -And, **Do not make a pull request to merge into stable unless it is a hotfix. Use the development branch instead.** + ## Issues fixed by this PR @@ -19,4 +19,4 @@ And, **Do not make a pull request to merge into stable unless it is a hotfix. Us - [ ] My code follows the style guidelines of this project - [ ] My pull request is unique and no other pull requests have been opened for these changes - [ ] I have read the [Contributing note](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md) and [Code of conduct](https://github.com/Grasscutters/Grasscutter/blob/development/CODE_OF_CONDUCT.md) -- [ ] I am responsible for any copyright issues with my code if it occurs in the future. \ No newline at end of file +- [ ] I am responsible for any copyright issues with my code if it occurs in the future. From c905d493af3e054f84b1c8b129dfc0b9bf8c79f6 Mon Sep 17 00:00:00 2001 From: Moistcrafter <63527712+Moistcrafter@users.noreply.github.com> Date: Sun, 9 Apr 2023 22:43:26 -0700 Subject: [PATCH 3/3] Add co-op lyre support (#2105) --- .../net/proto/SceneAudioNotifyOuterClass.java | 1222 +++++++++++++++++ .../packet/recv/HandlerSceneAudioNotify.java | 31 + .../packet/send/PacketSceneAudioNotify.java | 23 + 3 files changed, 1276 insertions(+) create mode 100644 src/generated/main/java/emu/grasscutter/net/proto/SceneAudioNotifyOuterClass.java create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneAudioNotify.java create mode 100644 src/main/java/emu/grasscutter/server/packet/send/PacketSceneAudioNotify.java diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneAudioNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneAudioNotifyOuterClass.java new file mode 100644 index 000000000..0da6d2407 --- /dev/null +++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneAudioNotifyOuterClass.java @@ -0,0 +1,1222 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SceneAudioNotify.proto + +package emu.grasscutter.net.proto; + +public final class SceneAudioNotifyOuterClass { + private SceneAudioNotifyOuterClass() {} + 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 SceneAudioNotifyOrBuilder extends + // @@protoc_insertion_point(interface_extends:SceneAudioNotify) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 type = 12; + * @return The type. + */ + int getType(); + + /** + * repeated float param2 = 9; + * @return A list containing the param2. + */ + java.util.List getParam2List(); + /** + * repeated float param2 = 9; + * @return The count of param2. + */ + int getParam2Count(); + /** + * repeated float param2 = 9; + * @param index The index of the element to return. + * @return The param2 at the given index. + */ + float getParam2(int index); + + /** + * uint32 source_uid = 6; + * @return The sourceUid. + */ + int getSourceUid(); + + /** + * repeated string param3 = 8; + * @return A list containing the param3. + */ + java.util.List + getParam3List(); + /** + * repeated string param3 = 8; + * @return The count of param3. + */ + int getParam3Count(); + /** + * repeated string param3 = 8; + * @param index The index of the element to return. + * @return The param3 at the given index. + */ + java.lang.String getParam3(int index); + /** + * repeated string param3 = 8; + * @param index The index of the value to return. + * @return The bytes of the param3 at the given index. + */ + com.google.protobuf.ByteString + getParam3Bytes(int index); + + /** + * repeated uint32 param1 = 7; + * @return A list containing the param1. + */ + java.util.List getParam1List(); + /** + * repeated uint32 param1 = 7; + * @return The count of param1. + */ + int getParam1Count(); + /** + * repeated uint32 param1 = 7; + * @param index The index of the element to return. + * @return The param1 at the given index. + */ + int getParam1(int index); + } + /** + *
+   * Name: BHHLLDGJLGK
+   * CmdId: 3412
+   * 
+ * + * Protobuf type {@code SceneAudioNotify} + */ + public static final class SceneAudioNotify extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SceneAudioNotify) + SceneAudioNotifyOrBuilder { + private static final long serialVersionUID = 0L; + // Use SceneAudioNotify.newBuilder() to construct. + private SceneAudioNotify(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SceneAudioNotify() { + param2_ = emptyFloatList(); + param3_ = com.google.protobuf.LazyStringArrayList.EMPTY; + param1_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SceneAudioNotify(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private SceneAudioNotify( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + 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 48: { + + sourceUid_ = input.readUInt32(); + break; + } + case 56: { + if (!((mutable_bitField0_ & 0x00000004) != 0)) { + param1_ = newIntList(); + mutable_bitField0_ |= 0x00000004; + } + param1_.addInt(input.readUInt32()); + break; + } + case 58: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) { + param1_ = newIntList(); + mutable_bitField0_ |= 0x00000004; + } + while (input.getBytesUntilLimit() > 0) { + param1_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + case 66: { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + param3_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000002; + } + param3_.add(s); + break; + } + case 77: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + param2_ = newFloatList(); + mutable_bitField0_ |= 0x00000001; + } + param2_.addFloat(input.readFloat()); + break; + } + case 74: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + param2_ = newFloatList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + param2_.addFloat(input.readFloat()); + } + input.popLimit(limit); + break; + } + case 96: { + + type_ = input.readInt32(); + 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 { + if (((mutable_bitField0_ & 0x00000004) != 0)) { + param1_.makeImmutable(); // C + } + if (((mutable_bitField0_ & 0x00000002) != 0)) { + param3_ = param3_.getUnmodifiableView(); + } + if (((mutable_bitField0_ & 0x00000001) != 0)) { + param2_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.internal_static_SceneAudioNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.internal_static_SceneAudioNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify.class, emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify.Builder.class); + } + + public static final int TYPE_FIELD_NUMBER = 12; + private int type_; + /** + * int32 type = 12; + * @return The type. + */ + @java.lang.Override + public int getType() { + return type_; + } + + public static final int PARAM2_FIELD_NUMBER = 9; + private com.google.protobuf.Internal.FloatList param2_; + /** + * repeated float param2 = 9; + * @return A list containing the param2. + */ + @java.lang.Override + public java.util.List + getParam2List() { + return param2_; + } + /** + * repeated float param2 = 9; + * @return The count of param2. + */ + public int getParam2Count() { + return param2_.size(); + } + /** + * repeated float param2 = 9; + * @param index The index of the element to return. + * @return The param2 at the given index. + */ + public float getParam2(int index) { + return param2_.getFloat(index); + } + private int param2MemoizedSerializedSize = -1; + + public static final int SOURCE_UID_FIELD_NUMBER = 6; + private int sourceUid_; + /** + * uint32 source_uid = 6; + * @return The sourceUid. + */ + @java.lang.Override + public int getSourceUid() { + return sourceUid_; + } + + public static final int PARAM3_FIELD_NUMBER = 8; + private com.google.protobuf.LazyStringList param3_; + /** + * repeated string param3 = 8; + * @return A list containing the param3. + */ + public com.google.protobuf.ProtocolStringList + getParam3List() { + return param3_; + } + /** + * repeated string param3 = 8; + * @return The count of param3. + */ + public int getParam3Count() { + return param3_.size(); + } + /** + * repeated string param3 = 8; + * @param index The index of the element to return. + * @return The param3 at the given index. + */ + public java.lang.String getParam3(int index) { + return param3_.get(index); + } + /** + * repeated string param3 = 8; + * @param index The index of the value to return. + * @return The bytes of the param3 at the given index. + */ + public com.google.protobuf.ByteString + getParam3Bytes(int index) { + return param3_.getByteString(index); + } + + public static final int PARAM1_FIELD_NUMBER = 7; + private com.google.protobuf.Internal.IntList param1_; + /** + * repeated uint32 param1 = 7; + * @return A list containing the param1. + */ + @java.lang.Override + public java.util.List + getParam1List() { + return param1_; + } + /** + * repeated uint32 param1 = 7; + * @return The count of param1. + */ + public int getParam1Count() { + return param1_.size(); + } + /** + * repeated uint32 param1 = 7; + * @param index The index of the element to return. + * @return The param1 at the given index. + */ + public int getParam1(int index) { + return param1_.getInt(index); + } + private int param1MemoizedSerializedSize = -1; + + 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 { + getSerializedSize(); + if (sourceUid_ != 0) { + output.writeUInt32(6, sourceUid_); + } + if (getParam1List().size() > 0) { + output.writeUInt32NoTag(58); + output.writeUInt32NoTag(param1MemoizedSerializedSize); + } + for (int i = 0; i < param1_.size(); i++) { + output.writeUInt32NoTag(param1_.getInt(i)); + } + for (int i = 0; i < param3_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, param3_.getRaw(i)); + } + if (getParam2List().size() > 0) { + output.writeUInt32NoTag(74); + output.writeUInt32NoTag(param2MemoizedSerializedSize); + } + for (int i = 0; i < param2_.size(); i++) { + output.writeFloatNoTag(param2_.getFloat(i)); + } + if (type_ != 0) { + output.writeInt32(12, type_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sourceUid_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(6, sourceUid_); + } + { + int dataSize = 0; + for (int i = 0; i < param1_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(param1_.getInt(i)); + } + size += dataSize; + if (!getParam1List().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + param1MemoizedSerializedSize = dataSize; + } + { + int dataSize = 0; + for (int i = 0; i < param3_.size(); i++) { + dataSize += computeStringSizeNoTag(param3_.getRaw(i)); + } + size += dataSize; + size += 1 * getParam3List().size(); + } + { + int dataSize = 0; + dataSize = 4 * getParam2List().size(); + size += dataSize; + if (!getParam2List().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + param2MemoizedSerializedSize = dataSize; + } + if (type_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(12, type_); + } + 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.SceneAudioNotifyOuterClass.SceneAudioNotify)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify other = (emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify) obj; + + if (getType() + != other.getType()) return false; + if (!getParam2List() + .equals(other.getParam2List())) return false; + if (getSourceUid() + != other.getSourceUid()) return false; + if (!getParam3List() + .equals(other.getParam3List())) return false; + if (!getParam1List() + .equals(other.getParam1List())) 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) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + getType(); + if (getParam2Count() > 0) { + hash = (37 * hash) + PARAM2_FIELD_NUMBER; + hash = (53 * hash) + getParam2List().hashCode(); + } + hash = (37 * hash) + SOURCE_UID_FIELD_NUMBER; + hash = (53 * hash) + getSourceUid(); + if (getParam3Count() > 0) { + hash = (37 * hash) + PARAM3_FIELD_NUMBER; + hash = (53 * hash) + getParam3List().hashCode(); + } + if (getParam1Count() > 0) { + hash = (37 * hash) + PARAM1_FIELD_NUMBER; + hash = (53 * hash) + getParam1List().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify 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.SceneAudioNotifyOuterClass.SceneAudioNotify parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify 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.SceneAudioNotifyOuterClass.SceneAudioNotify parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify 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.SceneAudioNotifyOuterClass.SceneAudioNotify parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify 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.SceneAudioNotifyOuterClass.SceneAudioNotify parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify 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.SceneAudioNotifyOuterClass.SceneAudioNotify 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; + } + /** + *
+     * Name: BHHLLDGJLGK
+     * CmdId: 3412
+     * 
+ * + * Protobuf type {@code SceneAudioNotify} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SceneAudioNotify) + emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotifyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.internal_static_SceneAudioNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.internal_static_SceneAudioNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify.class, emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify.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(); + type_ = 0; + + param2_ = emptyFloatList(); + bitField0_ = (bitField0_ & ~0x00000001); + sourceUid_ = 0; + + param3_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + param1_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.internal_static_SceneAudioNotify_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify getDefaultInstanceForType() { + return emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify build() { + emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify buildPartial() { + emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify result = new emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify(this); + int from_bitField0_ = bitField0_; + result.type_ = type_; + if (((bitField0_ & 0x00000001) != 0)) { + param2_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.param2_ = param2_; + result.sourceUid_ = sourceUid_; + if (((bitField0_ & 0x00000002) != 0)) { + param3_ = param3_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.param3_ = param3_; + if (((bitField0_ & 0x00000004) != 0)) { + param1_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.param1_ = param1_; + 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.SceneAudioNotifyOuterClass.SceneAudioNotify) { + return mergeFrom((emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify other) { + if (other == emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify.getDefaultInstance()) return this; + if (other.getType() != 0) { + setType(other.getType()); + } + if (!other.param2_.isEmpty()) { + if (param2_.isEmpty()) { + param2_ = other.param2_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureParam2IsMutable(); + param2_.addAll(other.param2_); + } + onChanged(); + } + if (other.getSourceUid() != 0) { + setSourceUid(other.getSourceUid()); + } + if (!other.param3_.isEmpty()) { + if (param3_.isEmpty()) { + param3_ = other.param3_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureParam3IsMutable(); + param3_.addAll(other.param3_); + } + onChanged(); + } + if (!other.param1_.isEmpty()) { + if (param1_.isEmpty()) { + param1_ = other.param1_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureParam1IsMutable(); + param1_.addAll(other.param1_); + } + onChanged(); + } + 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.SceneAudioNotifyOuterClass.SceneAudioNotify parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int type_ ; + /** + * int32 type = 12; + * @return The type. + */ + @java.lang.Override + public int getType() { + return type_; + } + /** + * int32 type = 12; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(int value) { + + type_ = value; + onChanged(); + return this; + } + /** + * int32 type = 12; + * @return This builder for chaining. + */ + public Builder clearType() { + + type_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.FloatList param2_ = emptyFloatList(); + private void ensureParam2IsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + param2_ = mutableCopy(param2_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated float param2 = 9; + * @return A list containing the param2. + */ + public java.util.List + getParam2List() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(param2_) : param2_; + } + /** + * repeated float param2 = 9; + * @return The count of param2. + */ + public int getParam2Count() { + return param2_.size(); + } + /** + * repeated float param2 = 9; + * @param index The index of the element to return. + * @return The param2 at the given index. + */ + public float getParam2(int index) { + return param2_.getFloat(index); + } + /** + * repeated float param2 = 9; + * @param index The index to set the value at. + * @param value The param2 to set. + * @return This builder for chaining. + */ + public Builder setParam2( + int index, float value) { + ensureParam2IsMutable(); + param2_.setFloat(index, value); + onChanged(); + return this; + } + /** + * repeated float param2 = 9; + * @param value The param2 to add. + * @return This builder for chaining. + */ + public Builder addParam2(float value) { + ensureParam2IsMutable(); + param2_.addFloat(value); + onChanged(); + return this; + } + /** + * repeated float param2 = 9; + * @param values The param2 to add. + * @return This builder for chaining. + */ + public Builder addAllParam2( + java.lang.Iterable values) { + ensureParam2IsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, param2_); + onChanged(); + return this; + } + /** + * repeated float param2 = 9; + * @return This builder for chaining. + */ + public Builder clearParam2() { + param2_ = emptyFloatList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + private int sourceUid_ ; + /** + * uint32 source_uid = 6; + * @return The sourceUid. + */ + @java.lang.Override + public int getSourceUid() { + return sourceUid_; + } + /** + * uint32 source_uid = 6; + * @param value The sourceUid to set. + * @return This builder for chaining. + */ + public Builder setSourceUid(int value) { + + sourceUid_ = value; + onChanged(); + return this; + } + /** + * uint32 source_uid = 6; + * @return This builder for chaining. + */ + public Builder clearSourceUid() { + + sourceUid_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringList param3_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureParam3IsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + param3_ = new com.google.protobuf.LazyStringArrayList(param3_); + bitField0_ |= 0x00000002; + } + } + /** + * repeated string param3 = 8; + * @return A list containing the param3. + */ + public com.google.protobuf.ProtocolStringList + getParam3List() { + return param3_.getUnmodifiableView(); + } + /** + * repeated string param3 = 8; + * @return The count of param3. + */ + public int getParam3Count() { + return param3_.size(); + } + /** + * repeated string param3 = 8; + * @param index The index of the element to return. + * @return The param3 at the given index. + */ + public java.lang.String getParam3(int index) { + return param3_.get(index); + } + /** + * repeated string param3 = 8; + * @param index The index of the value to return. + * @return The bytes of the param3 at the given index. + */ + public com.google.protobuf.ByteString + getParam3Bytes(int index) { + return param3_.getByteString(index); + } + /** + * repeated string param3 = 8; + * @param index The index to set the value at. + * @param value The param3 to set. + * @return This builder for chaining. + */ + public Builder setParam3( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureParam3IsMutable(); + param3_.set(index, value); + onChanged(); + return this; + } + /** + * repeated string param3 = 8; + * @param value The param3 to add. + * @return This builder for chaining. + */ + public Builder addParam3( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureParam3IsMutable(); + param3_.add(value); + onChanged(); + return this; + } + /** + * repeated string param3 = 8; + * @param values The param3 to add. + * @return This builder for chaining. + */ + public Builder addAllParam3( + java.lang.Iterable values) { + ensureParam3IsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, param3_); + onChanged(); + return this; + } + /** + * repeated string param3 = 8; + * @return This builder for chaining. + */ + public Builder clearParam3() { + param3_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * repeated string param3 = 8; + * @param value The bytes of the param3 to add. + * @return This builder for chaining. + */ + public Builder addParam3Bytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureParam3IsMutable(); + param3_.add(value); + onChanged(); + return this; + } + + private com.google.protobuf.Internal.IntList param1_ = emptyIntList(); + private void ensureParam1IsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + param1_ = mutableCopy(param1_); + bitField0_ |= 0x00000004; + } + } + /** + * repeated uint32 param1 = 7; + * @return A list containing the param1. + */ + public java.util.List + getParam1List() { + return ((bitField0_ & 0x00000004) != 0) ? + java.util.Collections.unmodifiableList(param1_) : param1_; + } + /** + * repeated uint32 param1 = 7; + * @return The count of param1. + */ + public int getParam1Count() { + return param1_.size(); + } + /** + * repeated uint32 param1 = 7; + * @param index The index of the element to return. + * @return The param1 at the given index. + */ + public int getParam1(int index) { + return param1_.getInt(index); + } + /** + * repeated uint32 param1 = 7; + * @param index The index to set the value at. + * @param value The param1 to set. + * @return This builder for chaining. + */ + public Builder setParam1( + int index, int value) { + ensureParam1IsMutable(); + param1_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 param1 = 7; + * @param value The param1 to add. + * @return This builder for chaining. + */ + public Builder addParam1(int value) { + ensureParam1IsMutable(); + param1_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 param1 = 7; + * @param values The param1 to add. + * @return This builder for chaining. + */ + public Builder addAllParam1( + java.lang.Iterable values) { + ensureParam1IsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, param1_); + onChanged(); + return this; + } + /** + * repeated uint32 param1 = 7; + * @return This builder for chaining. + */ + public Builder clearParam1() { + param1_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000004); + 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:SceneAudioNotify) + } + + // @@protoc_insertion_point(class_scope:SceneAudioNotify) + private static final emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify(); + } + + public static emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SceneAudioNotify parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new SceneAudioNotify(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.SceneAudioNotifyOuterClass.SceneAudioNotify getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SceneAudioNotify_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SceneAudioNotify_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\026SceneAudioNotify.proto\"d\n\020SceneAudioNo" + + "tify\022\014\n\004type\030\014 \001(\005\022\016\n\006param2\030\t \003(\002\022\022\n\nso" + + "urce_uid\030\006 \001(\r\022\016\n\006param3\030\010 \003(\t\022\016\n\006param1" + + "\030\007 \003(\rB\033\n\031emu.grasscutter.net.protob\006pro" + + "to3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SceneAudioNotify_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SceneAudioNotify_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SceneAudioNotify_descriptor, + new java.lang.String[] { "Type", "Param2", "SourceUid", "Param3", "Param1", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneAudioNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneAudioNotify.java new file mode 100644 index 000000000..0bfeddc16 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneAudioNotify.java @@ -0,0 +1,31 @@ + +package emu.grasscutter.server.packet.recv; + +import javax.lang.model.type.TypeMirror; + +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.SceneAudioNotifyOuterClass.SceneAudioNotify; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketSceneAudioNotify; +import java.util.List; + +@Opcodes(PacketOpcodes.SceneAudioNotify) +public class HandlerSceneAudioNotify extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + SceneAudioNotify notify = SceneAudioNotify.parseFrom(payload); + + int sourceUid = notify.getSourceUid(); + List param2 = notify.getParam2List(); + List param3 = notify.getParam3List(); + int type = notify.getType(); + List param1 = notify.getParam1List(); + + session.getPlayer().getScene().broadcastPacket(new PacketSceneAudioNotify(sourceUid, param2, param3, type, param1)); + } + +} + diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAudioNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAudioNotify.java new file mode 100644 index 000000000..227e2d2b1 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAudioNotify.java @@ -0,0 +1,23 @@ +package emu.grasscutter.server.packet.send; + +import emu.grasscutter.net.packet.BasePacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.SceneAudioNotifyOuterClass; +import java.util.List; + +public class PacketSceneAudioNotify extends BasePacket { + + public PacketSceneAudioNotify(int sourceUid, List param2, List param3, int type, List param1) { + super(PacketOpcodes.SceneAudioNotify); + + SceneAudioNotifyOuterClass.SceneAudioNotify proto = SceneAudioNotifyOuterClass.SceneAudioNotify.newBuilder() + .setSourceUid(sourceUid) + .addAllParam2(param2) + .addAllParam3(param3) + .setType(type) + .addAllParam1(param1) + .build(); + + this.setData(proto); + } +} \ No newline at end of file