From af4086b4d9818b2e83ea16d337eef7f11147c065 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Fri, 22 Apr 2022 15:24:23 +0800 Subject: [PATCH 01/40] Update protos --- .../proto/ChangeMailStarNotifyOuterClass.java | 737 +++++++ .../net/proto/DelMailReqOuterClass.java | 665 ++++++ .../net/proto/DelMailRspOuterClass.java | 735 +++++++ .../net/proto/EquipParamOuterClass.java | 749 +++++++ .../net/proto/FetterStateOuterClass.java | 163 ++ .../net/proto/GetAllMailReqOuterClass.java | 539 +++++ .../net/proto/GetAllMailRspOuterClass.java | 987 +++++++++ .../net/proto/GetMailItemReqOuterClass.java | 665 ++++++ .../net/proto/GetMailItemRspOuterClass.java | 1111 ++++++++++ .../net/proto/MailChangeNotifyOuterClass.java | 1040 ++++++++++ .../net/proto/MailDataOuterClass.java | 1835 +++++++++++++++++ .../net/proto/MailItemOuterClass.java | 880 ++++++++ .../net/proto/MailTextContentOuterClass.java | 919 +++++++++ .../net/proto/ReadMailNotifyOuterClass.java | 665 ++++++ 14 files changed, 11690 insertions(+) create mode 100644 src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java diff --git a/src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java b/src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java new file mode 100644 index 000000000..d238a3ecd --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java @@ -0,0 +1,737 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ChangeMailStarNotify.proto + +package emu.grasscutter.net.proto; + +public final class ChangeMailStarNotifyOuterClass { + private ChangeMailStarNotifyOuterClass() {} + 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 ChangeMailStarNotifyOrBuilder extends + // @@protoc_insertion_point(interface_extends:ChangeMailStarNotify) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + + /** + * bool isStar = 2; + * @return The isStar. + */ + boolean getIsStar(); + } + /** + * Protobuf type {@code ChangeMailStarNotify} + */ + public static final class ChangeMailStarNotify extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:ChangeMailStarNotify) + ChangeMailStarNotifyOrBuilder { + private static final long serialVersionUID = 0L; + // Use ChangeMailStarNotify.newBuilder() to construct. + private ChangeMailStarNotify(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ChangeMailStarNotify() { + mailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ChangeMailStarNotify(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ChangeMailStarNotify( + 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 8: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 10: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + case 16: { + + isStar_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.class, emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.Builder.class); + } + + public static final int MAILIDLIST_FIELD_NUMBER = 1; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -1; + + public static final int ISSTAR_FIELD_NUMBER = 2; + private boolean isStar_; + /** + * bool isStar = 2; + * @return The isStar. + */ + @java.lang.Override + public boolean getIsStar() { + return isStar_; + } + + 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 (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + if (isStar_ != false) { + output.writeBool(2, isStar_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + if (isStar_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, isStar_); + } + 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify other = (emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify) obj; + + if (!getMailIdListList() + .equals(other.getMailIdListList())) return false; + if (getIsStar() + != other.getIsStar()) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + hash = (37 * hash) + ISSTAR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsStar()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ChangeMailStarNotify} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:ChangeMailStarNotify) + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotifyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.class, emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.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(); + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + isStar_ = false; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify getDefaultInstanceForType() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify build() { + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify buildPartial() { + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify result = new emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + result.isStar_ = isStar_; + 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify) { + return mergeFrom((emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify other) { + if (other == emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.getDefaultInstance()) return this; + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + onChanged(); + } + if (other.getIsStar() != false) { + setIsStar(other.getIsStar()); + } + 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + private boolean isStar_ ; + /** + * bool isStar = 2; + * @return The isStar. + */ + @java.lang.Override + public boolean getIsStar() { + return isStar_; + } + /** + * bool isStar = 2; + * @param value The isStar to set. + * @return This builder for chaining. + */ + public Builder setIsStar(boolean value) { + + isStar_ = value; + onChanged(); + return this; + } + /** + * bool isStar = 2; + * @return This builder for chaining. + */ + public Builder clearIsStar() { + + isStar_ = false; + 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:ChangeMailStarNotify) + } + + // @@protoc_insertion_point(class_scope:ChangeMailStarNotify) + private static final emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify(); + } + + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChangeMailStarNotify parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ChangeMailStarNotify(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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_ChangeMailStarNotify_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_ChangeMailStarNotify_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\032ChangeMailStarNotify.proto\":\n\024ChangeMa" + + "ilStarNotify\022\022\n\nmailIdList\030\001 \003(\r\022\016\n\006isSt" + + "ar\030\002 \001(\010B\033\n\031emu.grasscutter.net.protob\006p" + + "roto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_ChangeMailStarNotify_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_ChangeMailStarNotify_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_ChangeMailStarNotify_descriptor, + new java.lang.String[] { "MailIdList", "IsStar", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java new file mode 100644 index 000000000..1355d5457 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java @@ -0,0 +1,665 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: DelMailReq.proto + +package emu.grasscutter.net.proto; + +public final class DelMailReqOuterClass { + private DelMailReqOuterClass() {} + 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 DelMailReqOrBuilder extends + // @@protoc_insertion_point(interface_extends:DelMailReq) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + } + /** + * Protobuf type {@code DelMailReq} + */ + public static final class DelMailReq extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:DelMailReq) + DelMailReqOrBuilder { + private static final long serialVersionUID = 0L; + // Use DelMailReq.newBuilder() to construct. + private DelMailReq(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private DelMailReq() { + mailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new DelMailReq(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private DelMailReq( + 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 8: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 10: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.class, emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.Builder.class); + } + + public static final int MAILIDLIST_FIELD_NUMBER = 1; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -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 (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + 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.DelMailReqOuterClass.DelMailReq)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq other = (emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq) obj; + + if (!getMailIdListList() + .equals(other.getMailIdListList())) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code DelMailReq} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:DelMailReq) + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReqOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.class, emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.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(); + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq getDefaultInstanceForType() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq build() { + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq buildPartial() { + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq result = new emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + 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.DelMailReqOuterClass.DelMailReq) { + return mergeFrom((emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq other) { + if (other == emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.getDefaultInstance()) return this; + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + 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.DelMailReqOuterClass.DelMailReq parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + 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:DelMailReq) + } + + // @@protoc_insertion_point(class_scope:DelMailReq) + private static final emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq(); + } + + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DelMailReq parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new DelMailReq(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.DelMailReqOuterClass.DelMailReq getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_DelMailReq_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_DelMailReq_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\020DelMailReq.proto\" \n\nDelMailReq\022\022\n\nmail" + + "IdList\030\001 \003(\rB\033\n\031emu.grasscutter.net.prot" + + "ob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_DelMailReq_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_DelMailReq_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_DelMailReq_descriptor, + new java.lang.String[] { "MailIdList", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java new file mode 100644 index 000000000..a9f3c03de --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java @@ -0,0 +1,735 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: DelMailRsp.proto + +package emu.grasscutter.net.proto; + +public final class DelMailRspOuterClass { + private DelMailRspOuterClass() {} + 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 DelMailRspOrBuilder extends + // @@protoc_insertion_point(interface_extends:DelMailRsp) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 retcode = 1; + * @return The retcode. + */ + int getRetcode(); + + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + } + /** + * Protobuf type {@code DelMailRsp} + */ + public static final class DelMailRsp extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:DelMailRsp) + DelMailRspOrBuilder { + private static final long serialVersionUID = 0L; + // Use DelMailRsp.newBuilder() to construct. + private DelMailRsp(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private DelMailRsp() { + mailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new DelMailRsp(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private DelMailRsp( + 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 8: { + + retcode_ = input.readInt32(); + break; + } + case 16: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 18: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.class, emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.Builder.class); + } + + public static final int RETCODE_FIELD_NUMBER = 1; + private int retcode_; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + + public static final int MAILIDLIST_FIELD_NUMBER = 2; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -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 (retcode_ != 0) { + output.writeInt32(1, retcode_); + } + if (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(18); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (retcode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, retcode_); + } + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + 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.DelMailRspOuterClass.DelMailRsp)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp other = (emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp) obj; + + if (getRetcode() + != other.getRetcode()) return false; + if (!getMailIdListList() + .equals(other.getMailIdListList())) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code DelMailRsp} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:DelMailRsp) + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRspOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.class, emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.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; + + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp getDefaultInstanceForType() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp build() { + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp buildPartial() { + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp result = new emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp(this); + int from_bitField0_ = bitField0_; + result.retcode_ = retcode_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + 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.DelMailRspOuterClass.DelMailRsp) { + return mergeFrom((emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp other) { + if (other == emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.getDefaultInstance()) return this; + if (other.getRetcode() != 0) { + setRetcode(other.getRetcode()); + } + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + 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.DelMailRspOuterClass.DelMailRsp parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int retcode_ ; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + /** + * int32 retcode = 1; + * @param value The retcode to set. + * @return This builder for chaining. + */ + public Builder setRetcode(int value) { + + retcode_ = value; + onChanged(); + return this; + } + /** + * int32 retcode = 1; + * @return This builder for chaining. + */ + public Builder clearRetcode() { + + retcode_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + 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:DelMailRsp) + } + + // @@protoc_insertion_point(class_scope:DelMailRsp) + private static final emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp(); + } + + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DelMailRsp parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new DelMailRsp(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.DelMailRspOuterClass.DelMailRsp getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_DelMailRsp_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_DelMailRsp_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\020DelMailRsp.proto\"1\n\nDelMailRsp\022\017\n\007retc" + + "ode\030\001 \001(\005\022\022\n\nmailIdList\030\002 \003(\rB\033\n\031emu.gra" + + "sscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_DelMailRsp_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_DelMailRsp_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_DelMailRsp_descriptor, + new java.lang.String[] { "Retcode", "MailIdList", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java b/src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java new file mode 100644 index 000000000..f583bf608 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java @@ -0,0 +1,749 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: EquipParam.proto + +package emu.grasscutter.net.proto; + +public final class EquipParamOuterClass { + private EquipParamOuterClass() {} + 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 EquipParamOrBuilder extends + // @@protoc_insertion_point(interface_extends:EquipParam) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 itemId = 1; + * @return The itemId. + */ + int getItemId(); + + /** + * uint32 itemNum = 2; + * @return The itemNum. + */ + int getItemNum(); + + /** + * uint32 itemLevel = 3; + * @return The itemLevel. + */ + int getItemLevel(); + + /** + * uint32 PromoteLevel = 4; + * @return The promoteLevel. + */ + int getPromoteLevel(); + } + /** + * Protobuf type {@code EquipParam} + */ + public static final class EquipParam extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:EquipParam) + EquipParamOrBuilder { + private static final long serialVersionUID = 0L; + // Use EquipParam.newBuilder() to construct. + private EquipParam(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private EquipParam() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new EquipParam(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private EquipParam( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + itemId_ = input.readUInt32(); + break; + } + case 16: { + + itemNum_ = input.readUInt32(); + break; + } + case 24: { + + itemLevel_ = input.readUInt32(); + break; + } + case 32: { + + promoteLevel_ = input.readUInt32(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().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.EquipParamOuterClass.internal_static_EquipParam_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.class, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder.class); + } + + public static final int ITEMID_FIELD_NUMBER = 1; + private int itemId_; + /** + * uint32 itemId = 1; + * @return The itemId. + */ + @java.lang.Override + public int getItemId() { + return itemId_; + } + + public static final int ITEMNUM_FIELD_NUMBER = 2; + private int itemNum_; + /** + * uint32 itemNum = 2; + * @return The itemNum. + */ + @java.lang.Override + public int getItemNum() { + return itemNum_; + } + + public static final int ITEMLEVEL_FIELD_NUMBER = 3; + private int itemLevel_; + /** + * uint32 itemLevel = 3; + * @return The itemLevel. + */ + @java.lang.Override + public int getItemLevel() { + return itemLevel_; + } + + public static final int PROMOTELEVEL_FIELD_NUMBER = 4; + private int promoteLevel_; + /** + * uint32 PromoteLevel = 4; + * @return The promoteLevel. + */ + @java.lang.Override + public int getPromoteLevel() { + return promoteLevel_; + } + + 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 (itemId_ != 0) { + output.writeUInt32(1, itemId_); + } + if (itemNum_ != 0) { + output.writeUInt32(2, itemNum_); + } + if (itemLevel_ != 0) { + output.writeUInt32(3, itemLevel_); + } + if (promoteLevel_ != 0) { + output.writeUInt32(4, promoteLevel_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (itemId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, itemId_); + } + if (itemNum_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(2, itemNum_); + } + if (itemLevel_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(3, itemLevel_); + } + if (promoteLevel_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(4, promoteLevel_); + } + 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.EquipParamOuterClass.EquipParam)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam other = (emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam) obj; + + if (getItemId() + != other.getItemId()) return false; + if (getItemNum() + != other.getItemNum()) return false; + if (getItemLevel() + != other.getItemLevel()) return false; + if (getPromoteLevel() + != other.getPromoteLevel()) 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) + ITEMID_FIELD_NUMBER; + hash = (53 * hash) + getItemId(); + hash = (37 * hash) + ITEMNUM_FIELD_NUMBER; + hash = (53 * hash) + getItemNum(); + hash = (37 * hash) + ITEMLEVEL_FIELD_NUMBER; + hash = (53 * hash) + getItemLevel(); + hash = (37 * hash) + PROMOTELEVEL_FIELD_NUMBER; + hash = (53 * hash) + getPromoteLevel(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code EquipParam} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:EquipParam) + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.class, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.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(); + itemId_ = 0; + + itemNum_ = 0; + + itemLevel_ = 0; + + promoteLevel_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getDefaultInstanceForType() { + return emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam build() { + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam buildPartial() { + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam result = new emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam(this); + result.itemId_ = itemId_; + result.itemNum_ = itemNum_; + result.itemLevel_ = itemLevel_; + result.promoteLevel_ = promoteLevel_; + 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.EquipParamOuterClass.EquipParam) { + return mergeFrom((emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam other) { + if (other == emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance()) return this; + if (other.getItemId() != 0) { + setItemId(other.getItemId()); + } + if (other.getItemNum() != 0) { + setItemNum(other.getItemNum()); + } + if (other.getItemLevel() != 0) { + setItemLevel(other.getItemLevel()); + } + if (other.getPromoteLevel() != 0) { + setPromoteLevel(other.getPromoteLevel()); + } + 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.EquipParamOuterClass.EquipParam parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int itemId_ ; + /** + * uint32 itemId = 1; + * @return The itemId. + */ + @java.lang.Override + public int getItemId() { + return itemId_; + } + /** + * uint32 itemId = 1; + * @param value The itemId to set. + * @return This builder for chaining. + */ + public Builder setItemId(int value) { + + itemId_ = value; + onChanged(); + return this; + } + /** + * uint32 itemId = 1; + * @return This builder for chaining. + */ + public Builder clearItemId() { + + itemId_ = 0; + onChanged(); + return this; + } + + private int itemNum_ ; + /** + * uint32 itemNum = 2; + * @return The itemNum. + */ + @java.lang.Override + public int getItemNum() { + return itemNum_; + } + /** + * uint32 itemNum = 2; + * @param value The itemNum to set. + * @return This builder for chaining. + */ + public Builder setItemNum(int value) { + + itemNum_ = value; + onChanged(); + return this; + } + /** + * uint32 itemNum = 2; + * @return This builder for chaining. + */ + public Builder clearItemNum() { + + itemNum_ = 0; + onChanged(); + return this; + } + + private int itemLevel_ ; + /** + * uint32 itemLevel = 3; + * @return The itemLevel. + */ + @java.lang.Override + public int getItemLevel() { + return itemLevel_; + } + /** + * uint32 itemLevel = 3; + * @param value The itemLevel to set. + * @return This builder for chaining. + */ + public Builder setItemLevel(int value) { + + itemLevel_ = value; + onChanged(); + return this; + } + /** + * uint32 itemLevel = 3; + * @return This builder for chaining. + */ + public Builder clearItemLevel() { + + itemLevel_ = 0; + onChanged(); + return this; + } + + private int promoteLevel_ ; + /** + * uint32 PromoteLevel = 4; + * @return The promoteLevel. + */ + @java.lang.Override + public int getPromoteLevel() { + return promoteLevel_; + } + /** + * uint32 PromoteLevel = 4; + * @param value The promoteLevel to set. + * @return This builder for chaining. + */ + public Builder setPromoteLevel(int value) { + + promoteLevel_ = value; + onChanged(); + return this; + } + /** + * uint32 PromoteLevel = 4; + * @return This builder for chaining. + */ + public Builder clearPromoteLevel() { + + promoteLevel_ = 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:EquipParam) + } + + // @@protoc_insertion_point(class_scope:EquipParam) + private static final emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam(); + } + + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public EquipParam parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new EquipParam(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.EquipParamOuterClass.EquipParam getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_EquipParam_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_EquipParam_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\020EquipParam.proto\"V\n\nEquipParam\022\016\n\006item" + + "Id\030\001 \001(\r\022\017\n\007itemNum\030\002 \001(\r\022\021\n\titemLevel\030\003" + + " \001(\r\022\024\n\014PromoteLevel\030\004 \001(\rB\033\n\031emu.grassc" + + "utter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_EquipParam_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_EquipParam_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_EquipParam_descriptor, + new java.lang.String[] { "ItemId", "ItemNum", "ItemLevel", "PromoteLevel", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java b/src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java new file mode 100644 index 000000000..c7306c5cc --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java @@ -0,0 +1,163 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: FetterState.proto + +package emu.grasscutter.net.proto; + +public final class FetterStateOuterClass { + private FetterStateOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code FetterState} + */ + public enum FetterState + implements com.google.protobuf.ProtocolMessageEnum { + /** + * NONE = 0; + */ + NONE(0), + /** + * NOT_OPEN = 1; + */ + NOT_OPEN(1), + /** + * OPEN = 2; + */ + OPEN(2), + /** + * FINISH = 3; + */ + FINISH(3), + UNRECOGNIZED(-1), + ; + + /** + * NONE = 0; + */ + public static final int NONE_VALUE = 0; + /** + * NOT_OPEN = 1; + */ + public static final int NOT_OPEN_VALUE = 1; + /** + * OPEN = 2; + */ + public static final int OPEN_VALUE = 2; + /** + * FINISH = 3; + */ + public static final int FINISH_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static FetterState valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static FetterState forNumber(int value) { + switch (value) { + case 0: return NONE; + case 1: return NOT_OPEN; + case 2: return OPEN; + case 3: return FINISH; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + FetterState> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public FetterState findValueByNumber(int number) { + return FetterState.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return emu.grasscutter.net.proto.FetterStateOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final FetterState[] VALUES = values(); + + public static FetterState valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private FetterState(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:FetterState) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\021FetterState.proto*;\n\013FetterState\022\010\n\004NO" + + "NE\020\000\022\014\n\010NOT_OPEN\020\001\022\010\n\004OPEN\020\002\022\n\n\006FINISH\020\003" + + "B\033\n\031emu.grasscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java new file mode 100644 index 000000000..7be5e757e --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java @@ -0,0 +1,539 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GetAllMailReq.proto + +package emu.grasscutter.net.proto; + +public final class GetAllMailReqOuterClass { + private GetAllMailReqOuterClass() {} + 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 GetAllMailReqOrBuilder extends + // @@protoc_insertion_point(interface_extends:GetAllMailReq) + com.google.protobuf.MessageOrBuilder { + + /** + * bool isGiftMail = 1; + * @return The isGiftMail. + */ + boolean getIsGiftMail(); + } + /** + * Protobuf type {@code GetAllMailReq} + */ + public static final class GetAllMailReq extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GetAllMailReq) + GetAllMailReqOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetAllMailReq.newBuilder() to construct. + private GetAllMailReq(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GetAllMailReq() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetAllMailReq(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetAllMailReq( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + isGiftMail_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().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.GetAllMailReqOuterClass.internal_static_GetAllMailReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.class, emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.Builder.class); + } + + public static final int ISGIFTMAIL_FIELD_NUMBER = 1; + private boolean isGiftMail_; + /** + * bool isGiftMail = 1; + * @return The isGiftMail. + */ + @java.lang.Override + public boolean getIsGiftMail() { + return isGiftMail_; + } + + 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 (isGiftMail_ != false) { + output.writeBool(1, isGiftMail_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (isGiftMail_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, isGiftMail_); + } + 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.GetAllMailReqOuterClass.GetAllMailReq)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq other = (emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq) obj; + + if (getIsGiftMail() + != other.getIsGiftMail()) 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) + ISGIFTMAIL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsGiftMail()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GetAllMailReq} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GetAllMailReq) + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReqOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.class, emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.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(); + isGiftMail_ = false; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq getDefaultInstanceForType() { + return emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq build() { + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq buildPartial() { + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq result = new emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq(this); + result.isGiftMail_ = isGiftMail_; + 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.GetAllMailReqOuterClass.GetAllMailReq) { + return mergeFrom((emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq other) { + if (other == emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.getDefaultInstance()) return this; + if (other.getIsGiftMail() != false) { + setIsGiftMail(other.getIsGiftMail()); + } + 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.GetAllMailReqOuterClass.GetAllMailReq parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private boolean isGiftMail_ ; + /** + * bool isGiftMail = 1; + * @return The isGiftMail. + */ + @java.lang.Override + public boolean getIsGiftMail() { + return isGiftMail_; + } + /** + * bool isGiftMail = 1; + * @param value The isGiftMail to set. + * @return This builder for chaining. + */ + public Builder setIsGiftMail(boolean value) { + + isGiftMail_ = value; + onChanged(); + return this; + } + /** + * bool isGiftMail = 1; + * @return This builder for chaining. + */ + public Builder clearIsGiftMail() { + + isGiftMail_ = false; + 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:GetAllMailReq) + } + + // @@protoc_insertion_point(class_scope:GetAllMailReq) + private static final emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq(); + } + + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetAllMailReq parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GetAllMailReq(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.GetAllMailReqOuterClass.GetAllMailReq getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GetAllMailReq_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GetAllMailReq_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\023GetAllMailReq.proto\"#\n\rGetAllMailReq\022\022" + + "\n\nisGiftMail\030\001 \001(\010B\033\n\031emu.grasscutter.ne" + + "t.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_GetAllMailReq_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GetAllMailReq_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GetAllMailReq_descriptor, + new java.lang.String[] { "IsGiftMail", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java new file mode 100644 index 000000000..244235538 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java @@ -0,0 +1,987 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GetAllMailRsp.proto + +package emu.grasscutter.net.proto; + +public final class GetAllMailRspOuterClass { + private GetAllMailRspOuterClass() {} + 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 GetAllMailRspOrBuilder extends + // @@protoc_insertion_point(interface_extends:GetAllMailRsp) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 retcode = 1; + * @return The retcode. + */ + int getRetcode(); + + /** + * repeated .MailData mailList = 2; + */ + java.util.List + getMailListList(); + /** + * repeated .MailData mailList = 2; + */ + emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index); + /** + * repeated .MailData mailList = 2; + */ + int getMailListCount(); + /** + * repeated .MailData mailList = 2; + */ + java.util.List + getMailListOrBuilderList(); + /** + * repeated .MailData mailList = 2; + */ + emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index); + + /** + * bool isTruncated = 3; + * @return The isTruncated. + */ + boolean getIsTruncated(); + } + /** + * Protobuf type {@code GetAllMailRsp} + */ + public static final class GetAllMailRsp extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GetAllMailRsp) + GetAllMailRspOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetAllMailRsp.newBuilder() to construct. + private GetAllMailRsp(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GetAllMailRsp() { + mailList_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetAllMailRsp(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetAllMailRsp( + 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 8: { + + retcode_ = input.readInt32(); + break; + } + case 18: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailList_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + mailList_.add( + input.readMessage(emu.grasscutter.net.proto.MailDataOuterClass.MailData.parser(), extensionRegistry)); + break; + } + case 24: { + + isTruncated_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailList_ = java.util.Collections.unmodifiableList(mailList_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.class, emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.Builder.class); + } + + public static final int RETCODE_FIELD_NUMBER = 1; + private int retcode_; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + + public static final int MAILLIST_FIELD_NUMBER = 2; + private java.util.List mailList_; + /** + * repeated .MailData mailList = 2; + */ + @java.lang.Override + public java.util.List getMailListList() { + return mailList_; + } + /** + * repeated .MailData mailList = 2; + */ + @java.lang.Override + public java.util.List + getMailListOrBuilderList() { + return mailList_; + } + /** + * repeated .MailData mailList = 2; + */ + @java.lang.Override + public int getMailListCount() { + return mailList_.size(); + } + /** + * repeated .MailData mailList = 2; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { + return mailList_.get(index); + } + /** + * repeated .MailData mailList = 2; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index) { + return mailList_.get(index); + } + + public static final int ISTRUNCATED_FIELD_NUMBER = 3; + private boolean isTruncated_; + /** + * bool isTruncated = 3; + * @return The isTruncated. + */ + @java.lang.Override + public boolean getIsTruncated() { + return isTruncated_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (retcode_ != 0) { + output.writeInt32(1, retcode_); + } + for (int i = 0; i < mailList_.size(); i++) { + output.writeMessage(2, mailList_.get(i)); + } + if (isTruncated_ != false) { + output.writeBool(3, isTruncated_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (retcode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, retcode_); + } + for (int i = 0; i < mailList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, mailList_.get(i)); + } + if (isTruncated_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(3, isTruncated_); + } + 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.GetAllMailRspOuterClass.GetAllMailRsp)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp other = (emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp) obj; + + if (getRetcode() + != other.getRetcode()) return false; + if (!getMailListList() + .equals(other.getMailListList())) return false; + if (getIsTruncated() + != other.getIsTruncated()) 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(); + if (getMailListCount() > 0) { + hash = (37 * hash) + MAILLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailListList().hashCode(); + } + hash = (37 * hash) + ISTRUNCATED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsTruncated()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GetAllMailRsp} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GetAllMailRsp) + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRspOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.class, emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getMailListFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + retcode_ = 0; + + if (mailListBuilder_ == null) { + mailList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + mailListBuilder_.clear(); + } + isTruncated_ = false; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp getDefaultInstanceForType() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp build() { + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp buildPartial() { + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp result = new emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp(this); + int from_bitField0_ = bitField0_; + result.retcode_ = retcode_; + if (mailListBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + mailList_ = java.util.Collections.unmodifiableList(mailList_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailList_ = mailList_; + } else { + result.mailList_ = mailListBuilder_.build(); + } + result.isTruncated_ = isTruncated_; + 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.GetAllMailRspOuterClass.GetAllMailRsp) { + return mergeFrom((emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp other) { + if (other == emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.getDefaultInstance()) return this; + if (other.getRetcode() != 0) { + setRetcode(other.getRetcode()); + } + if (mailListBuilder_ == null) { + if (!other.mailList_.isEmpty()) { + if (mailList_.isEmpty()) { + mailList_ = other.mailList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailListIsMutable(); + mailList_.addAll(other.mailList_); + } + onChanged(); + } + } else { + if (!other.mailList_.isEmpty()) { + if (mailListBuilder_.isEmpty()) { + mailListBuilder_.dispose(); + mailListBuilder_ = null; + mailList_ = other.mailList_; + bitField0_ = (bitField0_ & ~0x00000001); + mailListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getMailListFieldBuilder() : null; + } else { + mailListBuilder_.addAllMessages(other.mailList_); + } + } + } + if (other.getIsTruncated() != false) { + setIsTruncated(other.getIsTruncated()); + } + 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.GetAllMailRspOuterClass.GetAllMailRsp parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int retcode_ ; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + /** + * int32 retcode = 1; + * @param value The retcode to set. + * @return This builder for chaining. + */ + public Builder setRetcode(int value) { + + retcode_ = value; + onChanged(); + return this; + } + /** + * int32 retcode = 1; + * @return This builder for chaining. + */ + public Builder clearRetcode() { + + retcode_ = 0; + onChanged(); + return this; + } + + private java.util.List mailList_ = + java.util.Collections.emptyList(); + private void ensureMailListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailList_ = new java.util.ArrayList(mailList_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> mailListBuilder_; + + /** + * repeated .MailData mailList = 2; + */ + public java.util.List getMailListList() { + if (mailListBuilder_ == null) { + return java.util.Collections.unmodifiableList(mailList_); + } else { + return mailListBuilder_.getMessageList(); + } + } + /** + * repeated .MailData mailList = 2; + */ + public int getMailListCount() { + if (mailListBuilder_ == null) { + return mailList_.size(); + } else { + return mailListBuilder_.getCount(); + } + } + /** + * repeated .MailData mailList = 2; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { + if (mailListBuilder_ == null) { + return mailList_.get(index); + } else { + return mailListBuilder_.getMessage(index); + } + } + /** + * repeated .MailData mailList = 2; + */ + public Builder setMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.set(index, value); + onChanged(); + } else { + mailListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder setMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.set(index, builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder addMailList(emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.add(value); + onChanged(); + } else { + mailListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder addMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.add(index, value); + onChanged(); + } else { + mailListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder addMailList( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.add(builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder addMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.add(index, builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder addAllMailList( + java.lang.Iterable values) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailList_); + onChanged(); + } else { + mailListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder clearMailList() { + if (mailListBuilder_ == null) { + mailList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + mailListBuilder_.clear(); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder removeMailList(int index) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.remove(index); + onChanged(); + } else { + mailListBuilder_.remove(index); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder getMailListBuilder( + int index) { + return getMailListFieldBuilder().getBuilder(index); + } + /** + * repeated .MailData mailList = 2; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index) { + if (mailListBuilder_ == null) { + return mailList_.get(index); } else { + return mailListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .MailData mailList = 2; + */ + public java.util.List + getMailListOrBuilderList() { + if (mailListBuilder_ != null) { + return mailListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(mailList_); + } + } + /** + * repeated .MailData mailList = 2; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder() { + return getMailListFieldBuilder().addBuilder( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); + } + /** + * repeated .MailData mailList = 2; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder( + int index) { + return getMailListFieldBuilder().addBuilder( + index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); + } + /** + * repeated .MailData mailList = 2; + */ + public java.util.List + getMailListBuilderList() { + return getMailListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> + getMailListFieldBuilder() { + if (mailListBuilder_ == null) { + mailListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder>( + mailList_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + mailList_ = null; + } + return mailListBuilder_; + } + + private boolean isTruncated_ ; + /** + * bool isTruncated = 3; + * @return The isTruncated. + */ + @java.lang.Override + public boolean getIsTruncated() { + return isTruncated_; + } + /** + * bool isTruncated = 3; + * @param value The isTruncated to set. + * @return This builder for chaining. + */ + public Builder setIsTruncated(boolean value) { + + isTruncated_ = value; + onChanged(); + return this; + } + /** + * bool isTruncated = 3; + * @return This builder for chaining. + */ + public Builder clearIsTruncated() { + + isTruncated_ = false; + 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:GetAllMailRsp) + } + + // @@protoc_insertion_point(class_scope:GetAllMailRsp) + private static final emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp(); + } + + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetAllMailRsp parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GetAllMailRsp(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.GetAllMailRspOuterClass.GetAllMailRsp getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GetAllMailRsp_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GetAllMailRsp_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\023GetAllMailRsp.proto\032\016MailData.proto\"R\n" + + "\rGetAllMailRsp\022\017\n\007retcode\030\001 \001(\005\022\033\n\010mailL" + + "ist\030\002 \003(\0132\t.MailData\022\023\n\013isTruncated\030\003 \001(" + + "\010B\033\n\031emu.grasscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(), + }); + internal_static_GetAllMailRsp_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GetAllMailRsp_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GetAllMailRsp_descriptor, + new java.lang.String[] { "Retcode", "MailList", "IsTruncated", }); + emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java new file mode 100644 index 000000000..4610e8ba4 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java @@ -0,0 +1,665 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GetMailItemReq.proto + +package emu.grasscutter.net.proto; + +public final class GetMailItemReqOuterClass { + private GetMailItemReqOuterClass() {} + 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 GetMailItemReqOrBuilder extends + // @@protoc_insertion_point(interface_extends:GetMailItemReq) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + } + /** + * Protobuf type {@code GetMailItemReq} + */ + public static final class GetMailItemReq extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GetMailItemReq) + GetMailItemReqOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetMailItemReq.newBuilder() to construct. + private GetMailItemReq(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GetMailItemReq() { + mailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetMailItemReq(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetMailItemReq( + 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 8: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 10: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.class, emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.Builder.class); + } + + public static final int MAILIDLIST_FIELD_NUMBER = 1; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -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 (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + 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.GetMailItemReqOuterClass.GetMailItemReq)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq other = (emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq) obj; + + if (!getMailIdListList() + .equals(other.getMailIdListList())) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GetMailItemReq} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GetMailItemReq) + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReqOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.class, emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.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(); + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq getDefaultInstanceForType() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq build() { + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq buildPartial() { + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq result = new emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + 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.GetMailItemReqOuterClass.GetMailItemReq) { + return mergeFrom((emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq other) { + if (other == emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.getDefaultInstance()) return this; + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + 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.GetMailItemReqOuterClass.GetMailItemReq parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + 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:GetMailItemReq) + } + + // @@protoc_insertion_point(class_scope:GetMailItemReq) + private static final emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq(); + } + + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetMailItemReq parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GetMailItemReq(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.GetMailItemReqOuterClass.GetMailItemReq getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GetMailItemReq_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GetMailItemReq_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\024GetMailItemReq.proto\"$\n\016GetMailItemReq" + + "\022\022\n\nmailIdList\030\001 \003(\rB\033\n\031emu.grasscutter." + + "net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_GetMailItemReq_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GetMailItemReq_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GetMailItemReq_descriptor, + new java.lang.String[] { "MailIdList", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java new file mode 100644 index 000000000..83a29c529 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java @@ -0,0 +1,1111 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GetMailItemRsp.proto + +package emu.grasscutter.net.proto; + +public final class GetMailItemRspOuterClass { + private GetMailItemRspOuterClass() {} + 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 GetMailItemRspOrBuilder extends + // @@protoc_insertion_point(interface_extends:GetMailItemRsp) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 retcode = 1; + * @return The retcode. + */ + int getRetcode(); + + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + + /** + * repeated .EquipParam itemList = 3; + */ + java.util.List + getItemListList(); + /** + * repeated .EquipParam itemList = 3; + */ + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getItemList(int index); + /** + * repeated .EquipParam itemList = 3; + */ + int getItemListCount(); + /** + * repeated .EquipParam itemList = 3; + */ + java.util.List + getItemListOrBuilderList(); + /** + * repeated .EquipParam itemList = 3; + */ + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder getItemListOrBuilder( + int index); + } + /** + * Protobuf type {@code GetMailItemRsp} + */ + public static final class GetMailItemRsp extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GetMailItemRsp) + GetMailItemRspOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetMailItemRsp.newBuilder() to construct. + private GetMailItemRsp(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GetMailItemRsp() { + mailIdList_ = emptyIntList(); + itemList_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetMailItemRsp(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetMailItemRsp( + 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 8: { + + retcode_ = input.readInt32(); + break; + } + case 16: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 18: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + case 26: { + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + itemList_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + itemList_.add( + input.readMessage(emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.parser(), extensionRegistry)); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + if (((mutable_bitField0_ & 0x00000002) != 0)) { + itemList_ = java.util.Collections.unmodifiableList(itemList_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.class, emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.Builder.class); + } + + public static final int RETCODE_FIELD_NUMBER = 1; + private int retcode_; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + + public static final int MAILIDLIST_FIELD_NUMBER = 2; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -1; + + public static final int ITEMLIST_FIELD_NUMBER = 3; + private java.util.List itemList_; + /** + * repeated .EquipParam itemList = 3; + */ + @java.lang.Override + public java.util.List getItemListList() { + return itemList_; + } + /** + * repeated .EquipParam itemList = 3; + */ + @java.lang.Override + public java.util.List + getItemListOrBuilderList() { + return itemList_; + } + /** + * repeated .EquipParam itemList = 3; + */ + @java.lang.Override + public int getItemListCount() { + return itemList_.size(); + } + /** + * repeated .EquipParam itemList = 3; + */ + @java.lang.Override + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getItemList(int index) { + return itemList_.get(index); + } + /** + * repeated .EquipParam itemList = 3; + */ + @java.lang.Override + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder getItemListOrBuilder( + int index) { + return itemList_.get(index); + } + + 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 (retcode_ != 0) { + output.writeInt32(1, retcode_); + } + if (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(18); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + for (int i = 0; i < itemList_.size(); i++) { + output.writeMessage(3, itemList_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (retcode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, retcode_); + } + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + for (int i = 0; i < itemList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, itemList_.get(i)); + } + 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.GetMailItemRspOuterClass.GetMailItemRsp)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp other = (emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp) obj; + + if (getRetcode() + != other.getRetcode()) return false; + if (!getMailIdListList() + .equals(other.getMailIdListList())) return false; + if (!getItemListList() + .equals(other.getItemListList())) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + if (getItemListCount() > 0) { + hash = (37 * hash) + ITEMLIST_FIELD_NUMBER; + hash = (53 * hash) + getItemListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GetMailItemRsp} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GetMailItemRsp) + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRspOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.class, emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getItemListFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + retcode_ = 0; + + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + if (itemListBuilder_ == null) { + itemList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + } else { + itemListBuilder_.clear(); + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp getDefaultInstanceForType() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp build() { + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp buildPartial() { + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp result = new emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp(this); + int from_bitField0_ = bitField0_; + result.retcode_ = retcode_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + if (itemListBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + itemList_ = java.util.Collections.unmodifiableList(itemList_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.itemList_ = itemList_; + } else { + result.itemList_ = itemListBuilder_.build(); + } + 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.GetMailItemRspOuterClass.GetMailItemRsp) { + return mergeFrom((emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp other) { + if (other == emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.getDefaultInstance()) return this; + if (other.getRetcode() != 0) { + setRetcode(other.getRetcode()); + } + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + onChanged(); + } + if (itemListBuilder_ == null) { + if (!other.itemList_.isEmpty()) { + if (itemList_.isEmpty()) { + itemList_ = other.itemList_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureItemListIsMutable(); + itemList_.addAll(other.itemList_); + } + onChanged(); + } + } else { + if (!other.itemList_.isEmpty()) { + if (itemListBuilder_.isEmpty()) { + itemListBuilder_.dispose(); + itemListBuilder_ = null; + itemList_ = other.itemList_; + bitField0_ = (bitField0_ & ~0x00000002); + itemListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getItemListFieldBuilder() : null; + } else { + itemListBuilder_.addAllMessages(other.itemList_); + } + } + } + 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.GetMailItemRspOuterClass.GetMailItemRsp parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int retcode_ ; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + /** + * int32 retcode = 1; + * @param value The retcode to set. + * @return This builder for chaining. + */ + public Builder setRetcode(int value) { + + retcode_ = value; + onChanged(); + return this; + } + /** + * int32 retcode = 1; + * @return This builder for chaining. + */ + public Builder clearRetcode() { + + retcode_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + private java.util.List itemList_ = + java.util.Collections.emptyList(); + private void ensureItemListIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + itemList_ = new java.util.ArrayList(itemList_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder> itemListBuilder_; + + /** + * repeated .EquipParam itemList = 3; + */ + public java.util.List getItemListList() { + if (itemListBuilder_ == null) { + return java.util.Collections.unmodifiableList(itemList_); + } else { + return itemListBuilder_.getMessageList(); + } + } + /** + * repeated .EquipParam itemList = 3; + */ + public int getItemListCount() { + if (itemListBuilder_ == null) { + return itemList_.size(); + } else { + return itemListBuilder_.getCount(); + } + } + /** + * repeated .EquipParam itemList = 3; + */ + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getItemList(int index) { + if (itemListBuilder_ == null) { + return itemList_.get(index); + } else { + return itemListBuilder_.getMessage(index); + } + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder setItemList( + int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.set(index, value); + onChanged(); + } else { + itemListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder setItemList( + int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.set(index, builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder addItemList(emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.add(value); + onChanged(); + } else { + itemListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder addItemList( + int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.add(index, value); + onChanged(); + } else { + itemListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder addItemList( + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.add(builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder addItemList( + int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.add(index, builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder addAllItemList( + java.lang.Iterable values) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, itemList_); + onChanged(); + } else { + itemListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder clearItemList() { + if (itemListBuilder_ == null) { + itemList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + itemListBuilder_.clear(); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder removeItemList(int index) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.remove(index); + onChanged(); + } else { + itemListBuilder_.remove(index); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder getItemListBuilder( + int index) { + return getItemListFieldBuilder().getBuilder(index); + } + /** + * repeated .EquipParam itemList = 3; + */ + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder getItemListOrBuilder( + int index) { + if (itemListBuilder_ == null) { + return itemList_.get(index); } else { + return itemListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .EquipParam itemList = 3; + */ + public java.util.List + getItemListOrBuilderList() { + if (itemListBuilder_ != null) { + return itemListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(itemList_); + } + } + /** + * repeated .EquipParam itemList = 3; + */ + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder addItemListBuilder() { + return getItemListFieldBuilder().addBuilder( + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance()); + } + /** + * repeated .EquipParam itemList = 3; + */ + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder addItemListBuilder( + int index) { + return getItemListFieldBuilder().addBuilder( + index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance()); + } + /** + * repeated .EquipParam itemList = 3; + */ + public java.util.List + getItemListBuilderList() { + return getItemListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder> + getItemListFieldBuilder() { + if (itemListBuilder_ == null) { + itemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder>( + itemList_, + ((bitField0_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + itemList_ = null; + } + return itemListBuilder_; + } + @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:GetMailItemRsp) + } + + // @@protoc_insertion_point(class_scope:GetMailItemRsp) + private static final emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp(); + } + + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetMailItemRsp parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GetMailItemRsp(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.GetMailItemRspOuterClass.GetMailItemRsp getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GetMailItemRsp_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GetMailItemRsp_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\024GetMailItemRsp.proto\032\020EquipParam.proto" + + "\"T\n\016GetMailItemRsp\022\017\n\007retcode\030\001 \001(\005\022\022\n\nm" + + "ailIdList\030\002 \003(\r\022\035\n\010itemList\030\003 \003(\0132\013.Equi" + + "pParamB\033\n\031emu.grasscutter.net.protob\006pro" + + "to3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + emu.grasscutter.net.proto.EquipParamOuterClass.getDescriptor(), + }); + internal_static_GetMailItemRsp_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GetMailItemRsp_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GetMailItemRsp_descriptor, + new java.lang.String[] { "Retcode", "MailIdList", "ItemList", }); + emu.grasscutter.net.proto.EquipParamOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java new file mode 100644 index 000000000..020cc0e7c --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java @@ -0,0 +1,1040 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MailChangeNotify.proto + +package emu.grasscutter.net.proto; + +public final class MailChangeNotifyOuterClass { + private MailChangeNotifyOuterClass() {} + 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 MailChangeNotifyOrBuilder extends + // @@protoc_insertion_point(interface_extends:MailChangeNotify) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .MailData mailList = 1; + */ + java.util.List + getMailListList(); + /** + * repeated .MailData mailList = 1; + */ + emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index); + /** + * repeated .MailData mailList = 1; + */ + int getMailListCount(); + /** + * repeated .MailData mailList = 1; + */ + java.util.List + getMailListOrBuilderList(); + /** + * repeated .MailData mailList = 1; + */ + emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index); + + /** + * repeated uint32 delMailIdList = 2; + * @return A list containing the delMailIdList. + */ + java.util.List getDelMailIdListList(); + /** + * repeated uint32 delMailIdList = 2; + * @return The count of delMailIdList. + */ + int getDelMailIdListCount(); + /** + * repeated uint32 delMailIdList = 2; + * @param index The index of the element to return. + * @return The delMailIdList at the given index. + */ + int getDelMailIdList(int index); + } + /** + * Protobuf type {@code MailChangeNotify} + */ + public static final class MailChangeNotify extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:MailChangeNotify) + MailChangeNotifyOrBuilder { + private static final long serialVersionUID = 0L; + // Use MailChangeNotify.newBuilder() to construct. + private MailChangeNotify(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MailChangeNotify() { + mailList_ = java.util.Collections.emptyList(); + delMailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MailChangeNotify(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MailChangeNotify( + 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 10: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailList_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + mailList_.add( + input.readMessage(emu.grasscutter.net.proto.MailDataOuterClass.MailData.parser(), extensionRegistry)); + break; + } + case 16: { + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + delMailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000002; + } + delMailIdList_.addInt(input.readUInt32()); + break; + } + case 18: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) { + delMailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000002; + } + while (input.getBytesUntilLimit() > 0) { + delMailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailList_ = java.util.Collections.unmodifiableList(mailList_); + } + if (((mutable_bitField0_ & 0x00000002) != 0)) { + delMailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.class, emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.Builder.class); + } + + public static final int MAILLIST_FIELD_NUMBER = 1; + private java.util.List mailList_; + /** + * repeated .MailData mailList = 1; + */ + @java.lang.Override + public java.util.List getMailListList() { + return mailList_; + } + /** + * repeated .MailData mailList = 1; + */ + @java.lang.Override + public java.util.List + getMailListOrBuilderList() { + return mailList_; + } + /** + * repeated .MailData mailList = 1; + */ + @java.lang.Override + public int getMailListCount() { + return mailList_.size(); + } + /** + * repeated .MailData mailList = 1; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { + return mailList_.get(index); + } + /** + * repeated .MailData mailList = 1; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index) { + return mailList_.get(index); + } + + public static final int DELMAILIDLIST_FIELD_NUMBER = 2; + private com.google.protobuf.Internal.IntList delMailIdList_; + /** + * repeated uint32 delMailIdList = 2; + * @return A list containing the delMailIdList. + */ + @java.lang.Override + public java.util.List + getDelMailIdListList() { + return delMailIdList_; + } + /** + * repeated uint32 delMailIdList = 2; + * @return The count of delMailIdList. + */ + public int getDelMailIdListCount() { + return delMailIdList_.size(); + } + /** + * repeated uint32 delMailIdList = 2; + * @param index The index of the element to return. + * @return The delMailIdList at the given index. + */ + public int getDelMailIdList(int index) { + return delMailIdList_.getInt(index); + } + private int delMailIdListMemoizedSerializedSize = -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(); + for (int i = 0; i < mailList_.size(); i++) { + output.writeMessage(1, mailList_.get(i)); + } + if (getDelMailIdListList().size() > 0) { + output.writeUInt32NoTag(18); + output.writeUInt32NoTag(delMailIdListMemoizedSerializedSize); + } + for (int i = 0; i < delMailIdList_.size(); i++) { + output.writeUInt32NoTag(delMailIdList_.getInt(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < mailList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, mailList_.get(i)); + } + { + int dataSize = 0; + for (int i = 0; i < delMailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(delMailIdList_.getInt(i)); + } + size += dataSize; + if (!getDelMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + delMailIdListMemoizedSerializedSize = dataSize; + } + 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.MailChangeNotifyOuterClass.MailChangeNotify)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify other = (emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify) obj; + + if (!getMailListList() + .equals(other.getMailListList())) return false; + if (!getDelMailIdListList() + .equals(other.getDelMailIdListList())) 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(); + if (getMailListCount() > 0) { + hash = (37 * hash) + MAILLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailListList().hashCode(); + } + if (getDelMailIdListCount() > 0) { + hash = (37 * hash) + DELMAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getDelMailIdListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MailChangeNotify} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:MailChangeNotify) + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotifyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.class, emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getMailListFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (mailListBuilder_ == null) { + mailList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + mailListBuilder_.clear(); + } + delMailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify getDefaultInstanceForType() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify build() { + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify buildPartial() { + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify result = new emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify(this); + int from_bitField0_ = bitField0_; + if (mailListBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + mailList_ = java.util.Collections.unmodifiableList(mailList_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailList_ = mailList_; + } else { + result.mailList_ = mailListBuilder_.build(); + } + if (((bitField0_ & 0x00000002) != 0)) { + delMailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.delMailIdList_ = delMailIdList_; + 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.MailChangeNotifyOuterClass.MailChangeNotify) { + return mergeFrom((emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify other) { + if (other == emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.getDefaultInstance()) return this; + if (mailListBuilder_ == null) { + if (!other.mailList_.isEmpty()) { + if (mailList_.isEmpty()) { + mailList_ = other.mailList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailListIsMutable(); + mailList_.addAll(other.mailList_); + } + onChanged(); + } + } else { + if (!other.mailList_.isEmpty()) { + if (mailListBuilder_.isEmpty()) { + mailListBuilder_.dispose(); + mailListBuilder_ = null; + mailList_ = other.mailList_; + bitField0_ = (bitField0_ & ~0x00000001); + mailListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getMailListFieldBuilder() : null; + } else { + mailListBuilder_.addAllMessages(other.mailList_); + } + } + } + if (!other.delMailIdList_.isEmpty()) { + if (delMailIdList_.isEmpty()) { + delMailIdList_ = other.delMailIdList_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureDelMailIdListIsMutable(); + delMailIdList_.addAll(other.delMailIdList_); + } + 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.MailChangeNotifyOuterClass.MailChangeNotify parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.util.List mailList_ = + java.util.Collections.emptyList(); + private void ensureMailListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailList_ = new java.util.ArrayList(mailList_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> mailListBuilder_; + + /** + * repeated .MailData mailList = 1; + */ + public java.util.List getMailListList() { + if (mailListBuilder_ == null) { + return java.util.Collections.unmodifiableList(mailList_); + } else { + return mailListBuilder_.getMessageList(); + } + } + /** + * repeated .MailData mailList = 1; + */ + public int getMailListCount() { + if (mailListBuilder_ == null) { + return mailList_.size(); + } else { + return mailListBuilder_.getCount(); + } + } + /** + * repeated .MailData mailList = 1; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { + if (mailListBuilder_ == null) { + return mailList_.get(index); + } else { + return mailListBuilder_.getMessage(index); + } + } + /** + * repeated .MailData mailList = 1; + */ + public Builder setMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.set(index, value); + onChanged(); + } else { + mailListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder setMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.set(index, builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder addMailList(emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.add(value); + onChanged(); + } else { + mailListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder addMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.add(index, value); + onChanged(); + } else { + mailListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder addMailList( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.add(builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder addMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.add(index, builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder addAllMailList( + java.lang.Iterable values) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailList_); + onChanged(); + } else { + mailListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder clearMailList() { + if (mailListBuilder_ == null) { + mailList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + mailListBuilder_.clear(); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder removeMailList(int index) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.remove(index); + onChanged(); + } else { + mailListBuilder_.remove(index); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder getMailListBuilder( + int index) { + return getMailListFieldBuilder().getBuilder(index); + } + /** + * repeated .MailData mailList = 1; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index) { + if (mailListBuilder_ == null) { + return mailList_.get(index); } else { + return mailListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .MailData mailList = 1; + */ + public java.util.List + getMailListOrBuilderList() { + if (mailListBuilder_ != null) { + return mailListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(mailList_); + } + } + /** + * repeated .MailData mailList = 1; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder() { + return getMailListFieldBuilder().addBuilder( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); + } + /** + * repeated .MailData mailList = 1; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder( + int index) { + return getMailListFieldBuilder().addBuilder( + index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); + } + /** + * repeated .MailData mailList = 1; + */ + public java.util.List + getMailListBuilderList() { + return getMailListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> + getMailListFieldBuilder() { + if (mailListBuilder_ == null) { + mailListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder>( + mailList_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + mailList_ = null; + } + return mailListBuilder_; + } + + private com.google.protobuf.Internal.IntList delMailIdList_ = emptyIntList(); + private void ensureDelMailIdListIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + delMailIdList_ = mutableCopy(delMailIdList_); + bitField0_ |= 0x00000002; + } + } + /** + * repeated uint32 delMailIdList = 2; + * @return A list containing the delMailIdList. + */ + public java.util.List + getDelMailIdListList() { + return ((bitField0_ & 0x00000002) != 0) ? + java.util.Collections.unmodifiableList(delMailIdList_) : delMailIdList_; + } + /** + * repeated uint32 delMailIdList = 2; + * @return The count of delMailIdList. + */ + public int getDelMailIdListCount() { + return delMailIdList_.size(); + } + /** + * repeated uint32 delMailIdList = 2; + * @param index The index of the element to return. + * @return The delMailIdList at the given index. + */ + public int getDelMailIdList(int index) { + return delMailIdList_.getInt(index); + } + /** + * repeated uint32 delMailIdList = 2; + * @param index The index to set the value at. + * @param value The delMailIdList to set. + * @return This builder for chaining. + */ + public Builder setDelMailIdList( + int index, int value) { + ensureDelMailIdListIsMutable(); + delMailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 delMailIdList = 2; + * @param value The delMailIdList to add. + * @return This builder for chaining. + */ + public Builder addDelMailIdList(int value) { + ensureDelMailIdListIsMutable(); + delMailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 delMailIdList = 2; + * @param values The delMailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllDelMailIdList( + java.lang.Iterable values) { + ensureDelMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, delMailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 delMailIdList = 2; + * @return This builder for chaining. + */ + public Builder clearDelMailIdList() { + delMailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000002); + 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:MailChangeNotify) + } + + // @@protoc_insertion_point(class_scope:MailChangeNotify) + private static final emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify(); + } + + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MailChangeNotify parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MailChangeNotify(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.MailChangeNotifyOuterClass.MailChangeNotify getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_MailChangeNotify_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_MailChangeNotify_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\026MailChangeNotify.proto\032\016MailData.proto" + + "\"F\n\020MailChangeNotify\022\033\n\010mailList\030\001 \003(\0132\t" + + ".MailData\022\025\n\rdelMailIdList\030\002 \003(\rB\033\n\031emu." + + "grasscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(), + }); + internal_static_MailChangeNotify_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_MailChangeNotify_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_MailChangeNotify_descriptor, + new java.lang.String[] { "MailList", "DelMailIdList", }); + emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java new file mode 100644 index 000000000..0bb1d7534 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java @@ -0,0 +1,1835 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MailData.proto + +package emu.grasscutter.net.proto; + +public final class MailDataOuterClass { + private MailDataOuterClass() {} + 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 MailDataOrBuilder extends + // @@protoc_insertion_point(interface_extends:MailData) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 mailId = 1; + * @return The mailId. + */ + int getMailId(); + + /** + * .MailTextContent mailTextContent = 4; + * @return Whether the mailTextContent field is set. + */ + boolean hasMailTextContent(); + /** + * .MailTextContent mailTextContent = 4; + * @return The mailTextContent. + */ + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getMailTextContent(); + /** + * .MailTextContent mailTextContent = 4; + */ + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder getMailTextContentOrBuilder(); + + /** + * repeated .MailItem itemList = 7; + */ + java.util.List + getItemListList(); + /** + * repeated .MailItem itemList = 7; + */ + emu.grasscutter.net.proto.MailItemOuterClass.MailItem getItemList(int index); + /** + * repeated .MailItem itemList = 7; + */ + int getItemListCount(); + /** + * repeated .MailItem itemList = 7; + */ + java.util.List + getItemListOrBuilderList(); + /** + * repeated .MailItem itemList = 7; + */ + emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder getItemListOrBuilder( + int index); + + /** + * uint32 sendTime = 8; + * @return The sendTime. + */ + int getSendTime(); + + /** + * uint32 expireTime = 9; + * @return The expireTime. + */ + int getExpireTime(); + + /** + * uint32 importance = 10; + * @return The importance. + */ + int getImportance(); + + /** + * bool isRead = 11; + * @return The isRead. + */ + boolean getIsRead(); + + /** + * bool isAttachmentGot = 12; + * @return The isAttachmentGot. + */ + boolean getIsAttachmentGot(); + + /** + * uint32 configId = 13; + * @return The configId. + */ + int getConfigId(); + + /** + * repeated string argumentList = 14; + * @return A list containing the argumentList. + */ + java.util.List + getArgumentListList(); + /** + * repeated string argumentList = 14; + * @return The count of argumentList. + */ + int getArgumentListCount(); + /** + * repeated string argumentList = 14; + * @param index The index of the element to return. + * @return The argumentList at the given index. + */ + java.lang.String getArgumentList(int index); + /** + * repeated string argumentList = 14; + * @param index The index of the value to return. + * @return The bytes of the argumentList at the given index. + */ + com.google.protobuf.ByteString + getArgumentListBytes(int index); + + /** + * uint32 stateValue = 15; + * @return The stateValue. + */ + int getStateValue(); + } + /** + * Protobuf type {@code MailData} + */ + public static final class MailData extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:MailData) + MailDataOrBuilder { + private static final long serialVersionUID = 0L; + // Use MailData.newBuilder() to construct. + private MailData(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MailData() { + itemList_ = java.util.Collections.emptyList(); + argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MailData(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MailData( + 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 8: { + + mailId_ = input.readUInt32(); + break; + } + case 34: { + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder subBuilder = null; + if (mailTextContent_ != null) { + subBuilder = mailTextContent_.toBuilder(); + } + mailTextContent_ = input.readMessage(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(mailTextContent_); + mailTextContent_ = subBuilder.buildPartial(); + } + + break; + } + case 58: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + itemList_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + itemList_.add( + input.readMessage(emu.grasscutter.net.proto.MailItemOuterClass.MailItem.parser(), extensionRegistry)); + break; + } + case 64: { + + sendTime_ = input.readUInt32(); + break; + } + case 72: { + + expireTime_ = input.readUInt32(); + break; + } + case 80: { + + importance_ = input.readUInt32(); + break; + } + case 88: { + + isRead_ = input.readBool(); + break; + } + case 96: { + + isAttachmentGot_ = input.readBool(); + break; + } + case 104: { + + configId_ = input.readUInt32(); + break; + } + case 114: { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + argumentList_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000002; + } + argumentList_.add(s); + break; + } + case 120: { + + stateValue_ = input.readUInt32(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + itemList_ = java.util.Collections.unmodifiableList(itemList_); + } + if (((mutable_bitField0_ & 0x00000002) != 0)) { + argumentList_ = argumentList_.getUnmodifiableView(); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.class, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder.class); + } + + public static final int MAILID_FIELD_NUMBER = 1; + private int mailId_; + /** + * uint32 mailId = 1; + * @return The mailId. + */ + @java.lang.Override + public int getMailId() { + return mailId_; + } + + public static final int MAILTEXTCONTENT_FIELD_NUMBER = 4; + private emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent mailTextContent_; + /** + * .MailTextContent mailTextContent = 4; + * @return Whether the mailTextContent field is set. + */ + @java.lang.Override + public boolean hasMailTextContent() { + return mailTextContent_ != null; + } + /** + * .MailTextContent mailTextContent = 4; + * @return The mailTextContent. + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getMailTextContent() { + return mailTextContent_ == null ? emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance() : mailTextContent_; + } + /** + * .MailTextContent mailTextContent = 4; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder getMailTextContentOrBuilder() { + return getMailTextContent(); + } + + public static final int ITEMLIST_FIELD_NUMBER = 7; + private java.util.List itemList_; + /** + * repeated .MailItem itemList = 7; + */ + @java.lang.Override + public java.util.List getItemListList() { + return itemList_; + } + /** + * repeated .MailItem itemList = 7; + */ + @java.lang.Override + public java.util.List + getItemListOrBuilderList() { + return itemList_; + } + /** + * repeated .MailItem itemList = 7; + */ + @java.lang.Override + public int getItemListCount() { + return itemList_.size(); + } + /** + * repeated .MailItem itemList = 7; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem getItemList(int index) { + return itemList_.get(index); + } + /** + * repeated .MailItem itemList = 7; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder getItemListOrBuilder( + int index) { + return itemList_.get(index); + } + + public static final int SENDTIME_FIELD_NUMBER = 8; + private int sendTime_; + /** + * uint32 sendTime = 8; + * @return The sendTime. + */ + @java.lang.Override + public int getSendTime() { + return sendTime_; + } + + public static final int EXPIRETIME_FIELD_NUMBER = 9; + private int expireTime_; + /** + * uint32 expireTime = 9; + * @return The expireTime. + */ + @java.lang.Override + public int getExpireTime() { + return expireTime_; + } + + public static final int IMPORTANCE_FIELD_NUMBER = 10; + private int importance_; + /** + * uint32 importance = 10; + * @return The importance. + */ + @java.lang.Override + public int getImportance() { + return importance_; + } + + public static final int ISREAD_FIELD_NUMBER = 11; + private boolean isRead_; + /** + * bool isRead = 11; + * @return The isRead. + */ + @java.lang.Override + public boolean getIsRead() { + return isRead_; + } + + public static final int ISATTACHMENTGOT_FIELD_NUMBER = 12; + private boolean isAttachmentGot_; + /** + * bool isAttachmentGot = 12; + * @return The isAttachmentGot. + */ + @java.lang.Override + public boolean getIsAttachmentGot() { + return isAttachmentGot_; + } + + public static final int CONFIGID_FIELD_NUMBER = 13; + private int configId_; + /** + * uint32 configId = 13; + * @return The configId. + */ + @java.lang.Override + public int getConfigId() { + return configId_; + } + + public static final int ARGUMENTLIST_FIELD_NUMBER = 14; + private com.google.protobuf.LazyStringList argumentList_; + /** + * repeated string argumentList = 14; + * @return A list containing the argumentList. + */ + public com.google.protobuf.ProtocolStringList + getArgumentListList() { + return argumentList_; + } + /** + * repeated string argumentList = 14; + * @return The count of argumentList. + */ + public int getArgumentListCount() { + return argumentList_.size(); + } + /** + * repeated string argumentList = 14; + * @param index The index of the element to return. + * @return The argumentList at the given index. + */ + public java.lang.String getArgumentList(int index) { + return argumentList_.get(index); + } + /** + * repeated string argumentList = 14; + * @param index The index of the value to return. + * @return The bytes of the argumentList at the given index. + */ + public com.google.protobuf.ByteString + getArgumentListBytes(int index) { + return argumentList_.getByteString(index); + } + + public static final int STATEVALUE_FIELD_NUMBER = 15; + private int stateValue_; + /** + * uint32 stateValue = 15; + * @return The stateValue. + */ + @java.lang.Override + public int getStateValue() { + return stateValue_; + } + + 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 (mailId_ != 0) { + output.writeUInt32(1, mailId_); + } + if (mailTextContent_ != null) { + output.writeMessage(4, getMailTextContent()); + } + for (int i = 0; i < itemList_.size(); i++) { + output.writeMessage(7, itemList_.get(i)); + } + if (sendTime_ != 0) { + output.writeUInt32(8, sendTime_); + } + if (expireTime_ != 0) { + output.writeUInt32(9, expireTime_); + } + if (importance_ != 0) { + output.writeUInt32(10, importance_); + } + if (isRead_ != false) { + output.writeBool(11, isRead_); + } + if (isAttachmentGot_ != false) { + output.writeBool(12, isAttachmentGot_); + } + if (configId_ != 0) { + output.writeUInt32(13, configId_); + } + for (int i = 0; i < argumentList_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, argumentList_.getRaw(i)); + } + if (stateValue_ != 0) { + output.writeUInt32(15, stateValue_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (mailId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, mailId_); + } + if (mailTextContent_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getMailTextContent()); + } + for (int i = 0; i < itemList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, itemList_.get(i)); + } + if (sendTime_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(8, sendTime_); + } + if (expireTime_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(9, expireTime_); + } + if (importance_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(10, importance_); + } + if (isRead_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(11, isRead_); + } + if (isAttachmentGot_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(12, isAttachmentGot_); + } + if (configId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(13, configId_); + } + { + int dataSize = 0; + for (int i = 0; i < argumentList_.size(); i++) { + dataSize += computeStringSizeNoTag(argumentList_.getRaw(i)); + } + size += dataSize; + size += 1 * getArgumentListList().size(); + } + if (stateValue_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(15, stateValue_); + } + 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.MailDataOuterClass.MailData)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.MailDataOuterClass.MailData other = (emu.grasscutter.net.proto.MailDataOuterClass.MailData) obj; + + if (getMailId() + != other.getMailId()) return false; + if (hasMailTextContent() != other.hasMailTextContent()) return false; + if (hasMailTextContent()) { + if (!getMailTextContent() + .equals(other.getMailTextContent())) return false; + } + if (!getItemListList() + .equals(other.getItemListList())) return false; + if (getSendTime() + != other.getSendTime()) return false; + if (getExpireTime() + != other.getExpireTime()) return false; + if (getImportance() + != other.getImportance()) return false; + if (getIsRead() + != other.getIsRead()) return false; + if (getIsAttachmentGot() + != other.getIsAttachmentGot()) return false; + if (getConfigId() + != other.getConfigId()) return false; + if (!getArgumentListList() + .equals(other.getArgumentListList())) return false; + if (getStateValue() + != other.getStateValue()) 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) + MAILID_FIELD_NUMBER; + hash = (53 * hash) + getMailId(); + if (hasMailTextContent()) { + hash = (37 * hash) + MAILTEXTCONTENT_FIELD_NUMBER; + hash = (53 * hash) + getMailTextContent().hashCode(); + } + if (getItemListCount() > 0) { + hash = (37 * hash) + ITEMLIST_FIELD_NUMBER; + hash = (53 * hash) + getItemListList().hashCode(); + } + hash = (37 * hash) + SENDTIME_FIELD_NUMBER; + hash = (53 * hash) + getSendTime(); + hash = (37 * hash) + EXPIRETIME_FIELD_NUMBER; + hash = (53 * hash) + getExpireTime(); + hash = (37 * hash) + IMPORTANCE_FIELD_NUMBER; + hash = (53 * hash) + getImportance(); + hash = (37 * hash) + ISREAD_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsRead()); + hash = (37 * hash) + ISATTACHMENTGOT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsAttachmentGot()); + hash = (37 * hash) + CONFIGID_FIELD_NUMBER; + hash = (53 * hash) + getConfigId(); + if (getArgumentListCount() > 0) { + hash = (37 * hash) + ARGUMENTLIST_FIELD_NUMBER; + hash = (53 * hash) + getArgumentListList().hashCode(); + } + hash = (37 * hash) + STATEVALUE_FIELD_NUMBER; + hash = (53 * hash) + getStateValue(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MailData} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:MailData) + emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.class, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.MailDataOuterClass.MailData.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getItemListFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + mailId_ = 0; + + if (mailTextContentBuilder_ == null) { + mailTextContent_ = null; + } else { + mailTextContent_ = null; + mailTextContentBuilder_ = null; + } + if (itemListBuilder_ == null) { + itemList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + itemListBuilder_.clear(); + } + sendTime_ = 0; + + expireTime_ = 0; + + importance_ = 0; + + isRead_ = false; + + isAttachmentGot_ = false; + + configId_ = 0; + + argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + stateValue_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailData getDefaultInstanceForType() { + return emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailData build() { + emu.grasscutter.net.proto.MailDataOuterClass.MailData result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailData buildPartial() { + emu.grasscutter.net.proto.MailDataOuterClass.MailData result = new emu.grasscutter.net.proto.MailDataOuterClass.MailData(this); + int from_bitField0_ = bitField0_; + result.mailId_ = mailId_; + if (mailTextContentBuilder_ == null) { + result.mailTextContent_ = mailTextContent_; + } else { + result.mailTextContent_ = mailTextContentBuilder_.build(); + } + if (itemListBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + itemList_ = java.util.Collections.unmodifiableList(itemList_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.itemList_ = itemList_; + } else { + result.itemList_ = itemListBuilder_.build(); + } + result.sendTime_ = sendTime_; + result.expireTime_ = expireTime_; + result.importance_ = importance_; + result.isRead_ = isRead_; + result.isAttachmentGot_ = isAttachmentGot_; + result.configId_ = configId_; + if (((bitField0_ & 0x00000002) != 0)) { + argumentList_ = argumentList_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.argumentList_ = argumentList_; + result.stateValue_ = stateValue_; + 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.MailDataOuterClass.MailData) { + return mergeFrom((emu.grasscutter.net.proto.MailDataOuterClass.MailData)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.MailDataOuterClass.MailData other) { + if (other == emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()) return this; + if (other.getMailId() != 0) { + setMailId(other.getMailId()); + } + if (other.hasMailTextContent()) { + mergeMailTextContent(other.getMailTextContent()); + } + if (itemListBuilder_ == null) { + if (!other.itemList_.isEmpty()) { + if (itemList_.isEmpty()) { + itemList_ = other.itemList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureItemListIsMutable(); + itemList_.addAll(other.itemList_); + } + onChanged(); + } + } else { + if (!other.itemList_.isEmpty()) { + if (itemListBuilder_.isEmpty()) { + itemListBuilder_.dispose(); + itemListBuilder_ = null; + itemList_ = other.itemList_; + bitField0_ = (bitField0_ & ~0x00000001); + itemListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getItemListFieldBuilder() : null; + } else { + itemListBuilder_.addAllMessages(other.itemList_); + } + } + } + if (other.getSendTime() != 0) { + setSendTime(other.getSendTime()); + } + if (other.getExpireTime() != 0) { + setExpireTime(other.getExpireTime()); + } + if (other.getImportance() != 0) { + setImportance(other.getImportance()); + } + if (other.getIsRead() != false) { + setIsRead(other.getIsRead()); + } + if (other.getIsAttachmentGot() != false) { + setIsAttachmentGot(other.getIsAttachmentGot()); + } + if (other.getConfigId() != 0) { + setConfigId(other.getConfigId()); + } + if (!other.argumentList_.isEmpty()) { + if (argumentList_.isEmpty()) { + argumentList_ = other.argumentList_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureArgumentListIsMutable(); + argumentList_.addAll(other.argumentList_); + } + onChanged(); + } + if (other.getStateValue() != 0) { + setStateValue(other.getStateValue()); + } + 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.MailDataOuterClass.MailData parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.MailDataOuterClass.MailData) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int mailId_ ; + /** + * uint32 mailId = 1; + * @return The mailId. + */ + @java.lang.Override + public int getMailId() { + return mailId_; + } + /** + * uint32 mailId = 1; + * @param value The mailId to set. + * @return This builder for chaining. + */ + public Builder setMailId(int value) { + + mailId_ = value; + onChanged(); + return this; + } + /** + * uint32 mailId = 1; + * @return This builder for chaining. + */ + public Builder clearMailId() { + + mailId_ = 0; + onChanged(); + return this; + } + + private emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent mailTextContent_; + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder> mailTextContentBuilder_; + /** + * .MailTextContent mailTextContent = 4; + * @return Whether the mailTextContent field is set. + */ + public boolean hasMailTextContent() { + return mailTextContentBuilder_ != null || mailTextContent_ != null; + } + /** + * .MailTextContent mailTextContent = 4; + * @return The mailTextContent. + */ + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getMailTextContent() { + if (mailTextContentBuilder_ == null) { + return mailTextContent_ == null ? emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance() : mailTextContent_; + } else { + return mailTextContentBuilder_.getMessage(); + } + } + /** + * .MailTextContent mailTextContent = 4; + */ + public Builder setMailTextContent(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent value) { + if (mailTextContentBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + mailTextContent_ = value; + onChanged(); + } else { + mailTextContentBuilder_.setMessage(value); + } + + return this; + } + /** + * .MailTextContent mailTextContent = 4; + */ + public Builder setMailTextContent( + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder builderForValue) { + if (mailTextContentBuilder_ == null) { + mailTextContent_ = builderForValue.build(); + onChanged(); + } else { + mailTextContentBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .MailTextContent mailTextContent = 4; + */ + public Builder mergeMailTextContent(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent value) { + if (mailTextContentBuilder_ == null) { + if (mailTextContent_ != null) { + mailTextContent_ = + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.newBuilder(mailTextContent_).mergeFrom(value).buildPartial(); + } else { + mailTextContent_ = value; + } + onChanged(); + } else { + mailTextContentBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .MailTextContent mailTextContent = 4; + */ + public Builder clearMailTextContent() { + if (mailTextContentBuilder_ == null) { + mailTextContent_ = null; + onChanged(); + } else { + mailTextContent_ = null; + mailTextContentBuilder_ = null; + } + + return this; + } + /** + * .MailTextContent mailTextContent = 4; + */ + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder getMailTextContentBuilder() { + + onChanged(); + return getMailTextContentFieldBuilder().getBuilder(); + } + /** + * .MailTextContent mailTextContent = 4; + */ + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder getMailTextContentOrBuilder() { + if (mailTextContentBuilder_ != null) { + return mailTextContentBuilder_.getMessageOrBuilder(); + } else { + return mailTextContent_ == null ? + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance() : mailTextContent_; + } + } + /** + * .MailTextContent mailTextContent = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder> + getMailTextContentFieldBuilder() { + if (mailTextContentBuilder_ == null) { + mailTextContentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder>( + getMailTextContent(), + getParentForChildren(), + isClean()); + mailTextContent_ = null; + } + return mailTextContentBuilder_; + } + + private java.util.List itemList_ = + java.util.Collections.emptyList(); + private void ensureItemListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + itemList_ = new java.util.ArrayList(itemList_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailItemOuterClass.MailItem, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder, emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder> itemListBuilder_; + + /** + * repeated .MailItem itemList = 7; + */ + public java.util.List getItemListList() { + if (itemListBuilder_ == null) { + return java.util.Collections.unmodifiableList(itemList_); + } else { + return itemListBuilder_.getMessageList(); + } + } + /** + * repeated .MailItem itemList = 7; + */ + public int getItemListCount() { + if (itemListBuilder_ == null) { + return itemList_.size(); + } else { + return itemListBuilder_.getCount(); + } + } + /** + * repeated .MailItem itemList = 7; + */ + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem getItemList(int index) { + if (itemListBuilder_ == null) { + return itemList_.get(index); + } else { + return itemListBuilder_.getMessage(index); + } + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder setItemList( + int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.set(index, value); + onChanged(); + } else { + itemListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder setItemList( + int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.set(index, builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder addItemList(emu.grasscutter.net.proto.MailItemOuterClass.MailItem value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.add(value); + onChanged(); + } else { + itemListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder addItemList( + int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.add(index, value); + onChanged(); + } else { + itemListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder addItemList( + emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.add(builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder addItemList( + int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.add(index, builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder addAllItemList( + java.lang.Iterable values) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, itemList_); + onChanged(); + } else { + itemListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder clearItemList() { + if (itemListBuilder_ == null) { + itemList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + itemListBuilder_.clear(); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder removeItemList(int index) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.remove(index); + onChanged(); + } else { + itemListBuilder_.remove(index); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder getItemListBuilder( + int index) { + return getItemListFieldBuilder().getBuilder(index); + } + /** + * repeated .MailItem itemList = 7; + */ + public emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder getItemListOrBuilder( + int index) { + if (itemListBuilder_ == null) { + return itemList_.get(index); } else { + return itemListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .MailItem itemList = 7; + */ + public java.util.List + getItemListOrBuilderList() { + if (itemListBuilder_ != null) { + return itemListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(itemList_); + } + } + /** + * repeated .MailItem itemList = 7; + */ + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder addItemListBuilder() { + return getItemListFieldBuilder().addBuilder( + emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance()); + } + /** + * repeated .MailItem itemList = 7; + */ + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder addItemListBuilder( + int index) { + return getItemListFieldBuilder().addBuilder( + index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance()); + } + /** + * repeated .MailItem itemList = 7; + */ + public java.util.List + getItemListBuilderList() { + return getItemListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailItemOuterClass.MailItem, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder, emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder> + getItemListFieldBuilder() { + if (itemListBuilder_ == null) { + itemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailItemOuterClass.MailItem, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder, emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder>( + itemList_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + itemList_ = null; + } + return itemListBuilder_; + } + + private int sendTime_ ; + /** + * uint32 sendTime = 8; + * @return The sendTime. + */ + @java.lang.Override + public int getSendTime() { + return sendTime_; + } + /** + * uint32 sendTime = 8; + * @param value The sendTime to set. + * @return This builder for chaining. + */ + public Builder setSendTime(int value) { + + sendTime_ = value; + onChanged(); + return this; + } + /** + * uint32 sendTime = 8; + * @return This builder for chaining. + */ + public Builder clearSendTime() { + + sendTime_ = 0; + onChanged(); + return this; + } + + private int expireTime_ ; + /** + * uint32 expireTime = 9; + * @return The expireTime. + */ + @java.lang.Override + public int getExpireTime() { + return expireTime_; + } + /** + * uint32 expireTime = 9; + * @param value The expireTime to set. + * @return This builder for chaining. + */ + public Builder setExpireTime(int value) { + + expireTime_ = value; + onChanged(); + return this; + } + /** + * uint32 expireTime = 9; + * @return This builder for chaining. + */ + public Builder clearExpireTime() { + + expireTime_ = 0; + onChanged(); + return this; + } + + private int importance_ ; + /** + * uint32 importance = 10; + * @return The importance. + */ + @java.lang.Override + public int getImportance() { + return importance_; + } + /** + * uint32 importance = 10; + * @param value The importance to set. + * @return This builder for chaining. + */ + public Builder setImportance(int value) { + + importance_ = value; + onChanged(); + return this; + } + /** + * uint32 importance = 10; + * @return This builder for chaining. + */ + public Builder clearImportance() { + + importance_ = 0; + onChanged(); + return this; + } + + private boolean isRead_ ; + /** + * bool isRead = 11; + * @return The isRead. + */ + @java.lang.Override + public boolean getIsRead() { + return isRead_; + } + /** + * bool isRead = 11; + * @param value The isRead to set. + * @return This builder for chaining. + */ + public Builder setIsRead(boolean value) { + + isRead_ = value; + onChanged(); + return this; + } + /** + * bool isRead = 11; + * @return This builder for chaining. + */ + public Builder clearIsRead() { + + isRead_ = false; + onChanged(); + return this; + } + + private boolean isAttachmentGot_ ; + /** + * bool isAttachmentGot = 12; + * @return The isAttachmentGot. + */ + @java.lang.Override + public boolean getIsAttachmentGot() { + return isAttachmentGot_; + } + /** + * bool isAttachmentGot = 12; + * @param value The isAttachmentGot to set. + * @return This builder for chaining. + */ + public Builder setIsAttachmentGot(boolean value) { + + isAttachmentGot_ = value; + onChanged(); + return this; + } + /** + * bool isAttachmentGot = 12; + * @return This builder for chaining. + */ + public Builder clearIsAttachmentGot() { + + isAttachmentGot_ = false; + onChanged(); + return this; + } + + private int configId_ ; + /** + * uint32 configId = 13; + * @return The configId. + */ + @java.lang.Override + public int getConfigId() { + return configId_; + } + /** + * uint32 configId = 13; + * @param value The configId to set. + * @return This builder for chaining. + */ + public Builder setConfigId(int value) { + + configId_ = value; + onChanged(); + return this; + } + /** + * uint32 configId = 13; + * @return This builder for chaining. + */ + public Builder clearConfigId() { + + configId_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringList argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureArgumentListIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + argumentList_ = new com.google.protobuf.LazyStringArrayList(argumentList_); + bitField0_ |= 0x00000002; + } + } + /** + * repeated string argumentList = 14; + * @return A list containing the argumentList. + */ + public com.google.protobuf.ProtocolStringList + getArgumentListList() { + return argumentList_.getUnmodifiableView(); + } + /** + * repeated string argumentList = 14; + * @return The count of argumentList. + */ + public int getArgumentListCount() { + return argumentList_.size(); + } + /** + * repeated string argumentList = 14; + * @param index The index of the element to return. + * @return The argumentList at the given index. + */ + public java.lang.String getArgumentList(int index) { + return argumentList_.get(index); + } + /** + * repeated string argumentList = 14; + * @param index The index of the value to return. + * @return The bytes of the argumentList at the given index. + */ + public com.google.protobuf.ByteString + getArgumentListBytes(int index) { + return argumentList_.getByteString(index); + } + /** + * repeated string argumentList = 14; + * @param index The index to set the value at. + * @param value The argumentList to set. + * @return This builder for chaining. + */ + public Builder setArgumentList( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureArgumentListIsMutable(); + argumentList_.set(index, value); + onChanged(); + return this; + } + /** + * repeated string argumentList = 14; + * @param value The argumentList to add. + * @return This builder for chaining. + */ + public Builder addArgumentList( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureArgumentListIsMutable(); + argumentList_.add(value); + onChanged(); + return this; + } + /** + * repeated string argumentList = 14; + * @param values The argumentList to add. + * @return This builder for chaining. + */ + public Builder addAllArgumentList( + java.lang.Iterable values) { + ensureArgumentListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, argumentList_); + onChanged(); + return this; + } + /** + * repeated string argumentList = 14; + * @return This builder for chaining. + */ + public Builder clearArgumentList() { + argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * repeated string argumentList = 14; + * @param value The bytes of the argumentList to add. + * @return This builder for chaining. + */ + public Builder addArgumentListBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureArgumentListIsMutable(); + argumentList_.add(value); + onChanged(); + return this; + } + + private int stateValue_ ; + /** + * uint32 stateValue = 15; + * @return The stateValue. + */ + @java.lang.Override + public int getStateValue() { + return stateValue_; + } + /** + * uint32 stateValue = 15; + * @param value The stateValue to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + + stateValue_ = value; + onChanged(); + return this; + } + /** + * uint32 stateValue = 15; + * @return This builder for chaining. + */ + public Builder clearStateValue() { + + stateValue_ = 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:MailData) + } + + // @@protoc_insertion_point(class_scope:MailData) + private static final emu.grasscutter.net.proto.MailDataOuterClass.MailData DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailDataOuterClass.MailData(); + } + + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MailData parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MailData(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.MailDataOuterClass.MailData getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_MailData_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_MailData_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\016MailData.proto\032\025MailTextContent.proto\032" + + "\016MailItem.proto\"\201\002\n\010MailData\022\016\n\006mailId\030\001" + + " \001(\r\022)\n\017mailTextContent\030\004 \001(\0132\020.MailText" + + "Content\022\033\n\010itemList\030\007 \003(\0132\t.MailItem\022\020\n\010" + + "sendTime\030\010 \001(\r\022\022\n\nexpireTime\030\t \001(\r\022\022\n\nim" + + "portance\030\n \001(\r\022\016\n\006isRead\030\013 \001(\010\022\027\n\017isAtta" + + "chmentGot\030\014 \001(\010\022\020\n\010configId\030\r \001(\r\022\024\n\014arg" + + "umentList\030\016 \003(\t\022\022\n\nstateValue\030\017 \001(\rB\033\n\031e" + + "mu.grasscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + emu.grasscutter.net.proto.MailTextContentOuterClass.getDescriptor(), + emu.grasscutter.net.proto.MailItemOuterClass.getDescriptor(), + }); + internal_static_MailData_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_MailData_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_MailData_descriptor, + new java.lang.String[] { "MailId", "MailTextContent", "ItemList", "SendTime", "ExpireTime", "Importance", "IsRead", "IsAttachmentGot", "ConfigId", "ArgumentList", "StateValue", }); + emu.grasscutter.net.proto.MailTextContentOuterClass.getDescriptor(); + emu.grasscutter.net.proto.MailItemOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java new file mode 100644 index 000000000..9298bb251 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java @@ -0,0 +1,880 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MailItem.proto + +package emu.grasscutter.net.proto; + +public final class MailItemOuterClass { + private MailItemOuterClass() {} + 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 MailItemOrBuilder extends + // @@protoc_insertion_point(interface_extends:MailItem) + com.google.protobuf.MessageOrBuilder { + + /** + * .ItemParam itemParam = 1; + * @return Whether the itemParam field is set. + */ + boolean hasItemParam(); + /** + * .ItemParam itemParam = 1; + * @return The itemParam. + */ + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemParam(); + /** + * .ItemParam itemParam = 1; + */ + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemParamOrBuilder(); + + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return Whether the deleteInfo field is set. + */ + boolean hasDeleteInfo(); + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return The deleteInfo. + */ + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo getDeleteInfo(); + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder getDeleteInfoOrBuilder(); + } + /** + * Protobuf type {@code MailItem} + */ + public static final class MailItem extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:MailItem) + MailItemOrBuilder { + private static final long serialVersionUID = 0L; + // Use MailItem.newBuilder() to construct. + private MailItem(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MailItem() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MailItem(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MailItem( + 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 10: { + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder subBuilder = null; + if (itemParam_ != null) { + subBuilder = itemParam_.toBuilder(); + } + itemParam_ = input.readMessage(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(itemParam_); + itemParam_ = subBuilder.buildPartial(); + } + + break; + } + case 18: { + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder subBuilder = null; + if (deleteInfo_ != null) { + subBuilder = deleteInfo_.toBuilder(); + } + deleteInfo_ = input.readMessage(emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(deleteInfo_); + deleteInfo_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().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.MailItemOuterClass.internal_static_MailItem_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailItemOuterClass.MailItem.class, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder.class); + } + + public static final int ITEMPARAM_FIELD_NUMBER = 1; + private emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam itemParam_; + /** + * .ItemParam itemParam = 1; + * @return Whether the itemParam field is set. + */ + @java.lang.Override + public boolean hasItemParam() { + return itemParam_ != null; + } + /** + * .ItemParam itemParam = 1; + * @return The itemParam. + */ + @java.lang.Override + public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemParam() { + return itemParam_ == null ? emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance() : itemParam_; + } + /** + * .ItemParam itemParam = 1; + */ + @java.lang.Override + public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemParamOrBuilder() { + return getItemParam(); + } + + public static final int DELETEINFO_FIELD_NUMBER = 2; + private emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo deleteInfo_; + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return Whether the deleteInfo field is set. + */ + @java.lang.Override + public boolean hasDeleteInfo() { + return deleteInfo_ != null; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return The deleteInfo. + */ + @java.lang.Override + public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo getDeleteInfo() { + return deleteInfo_ == null ? emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.getDefaultInstance() : deleteInfo_; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder getDeleteInfoOrBuilder() { + return getDeleteInfo(); + } + + 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 (itemParam_ != null) { + output.writeMessage(1, getItemParam()); + } + if (deleteInfo_ != null) { + output.writeMessage(2, getDeleteInfo()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (itemParam_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getItemParam()); + } + if (deleteInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getDeleteInfo()); + } + 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.MailItemOuterClass.MailItem)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.MailItemOuterClass.MailItem other = (emu.grasscutter.net.proto.MailItemOuterClass.MailItem) obj; + + if (hasItemParam() != other.hasItemParam()) return false; + if (hasItemParam()) { + if (!getItemParam() + .equals(other.getItemParam())) return false; + } + if (hasDeleteInfo() != other.hasDeleteInfo()) return false; + if (hasDeleteInfo()) { + if (!getDeleteInfo() + .equals(other.getDeleteInfo())) 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(); + if (hasItemParam()) { + hash = (37 * hash) + ITEMPARAM_FIELD_NUMBER; + hash = (53 * hash) + getItemParam().hashCode(); + } + if (hasDeleteInfo()) { + hash = (37 * hash) + DELETEINFO_FIELD_NUMBER; + hash = (53 * hash) + getDeleteInfo().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MailItem} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:MailItem) + emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailItemOuterClass.MailItem.class, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.MailItemOuterClass.MailItem.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(); + if (itemParamBuilder_ == null) { + itemParam_ = null; + } else { + itemParam_ = null; + itemParamBuilder_ = null; + } + if (deleteInfoBuilder_ == null) { + deleteInfo_ = null; + } else { + deleteInfo_ = null; + deleteInfoBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem getDefaultInstanceForType() { + return emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem build() { + emu.grasscutter.net.proto.MailItemOuterClass.MailItem result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem buildPartial() { + emu.grasscutter.net.proto.MailItemOuterClass.MailItem result = new emu.grasscutter.net.proto.MailItemOuterClass.MailItem(this); + if (itemParamBuilder_ == null) { + result.itemParam_ = itemParam_; + } else { + result.itemParam_ = itemParamBuilder_.build(); + } + if (deleteInfoBuilder_ == null) { + result.deleteInfo_ = deleteInfo_; + } else { + result.deleteInfo_ = deleteInfoBuilder_.build(); + } + 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.MailItemOuterClass.MailItem) { + return mergeFrom((emu.grasscutter.net.proto.MailItemOuterClass.MailItem)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.MailItemOuterClass.MailItem other) { + if (other == emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance()) return this; + if (other.hasItemParam()) { + mergeItemParam(other.getItemParam()); + } + if (other.hasDeleteInfo()) { + mergeDeleteInfo(other.getDeleteInfo()); + } + 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.MailItemOuterClass.MailItem parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.MailItemOuterClass.MailItem) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam itemParam_; + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> itemParamBuilder_; + /** + * .ItemParam itemParam = 1; + * @return Whether the itemParam field is set. + */ + public boolean hasItemParam() { + return itemParamBuilder_ != null || itemParam_ != null; + } + /** + * .ItemParam itemParam = 1; + * @return The itemParam. + */ + public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemParam() { + if (itemParamBuilder_ == null) { + return itemParam_ == null ? emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance() : itemParam_; + } else { + return itemParamBuilder_.getMessage(); + } + } + /** + * .ItemParam itemParam = 1; + */ + public Builder setItemParam(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) { + if (itemParamBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + itemParam_ = value; + onChanged(); + } else { + itemParamBuilder_.setMessage(value); + } + + return this; + } + /** + * .ItemParam itemParam = 1; + */ + public Builder setItemParam( + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) { + if (itemParamBuilder_ == null) { + itemParam_ = builderForValue.build(); + onChanged(); + } else { + itemParamBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .ItemParam itemParam = 1; + */ + public Builder mergeItemParam(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) { + if (itemParamBuilder_ == null) { + if (itemParam_ != null) { + itemParam_ = + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.newBuilder(itemParam_).mergeFrom(value).buildPartial(); + } else { + itemParam_ = value; + } + onChanged(); + } else { + itemParamBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .ItemParam itemParam = 1; + */ + public Builder clearItemParam() { + if (itemParamBuilder_ == null) { + itemParam_ = null; + onChanged(); + } else { + itemParam_ = null; + itemParamBuilder_ = null; + } + + return this; + } + /** + * .ItemParam itemParam = 1; + */ + public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder getItemParamBuilder() { + + onChanged(); + return getItemParamFieldBuilder().getBuilder(); + } + /** + * .ItemParam itemParam = 1; + */ + public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemParamOrBuilder() { + if (itemParamBuilder_ != null) { + return itemParamBuilder_.getMessageOrBuilder(); + } else { + return itemParam_ == null ? + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance() : itemParam_; + } + } + /** + * .ItemParam itemParam = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> + getItemParamFieldBuilder() { + if (itemParamBuilder_ == null) { + itemParamBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>( + getItemParam(), + getParentForChildren(), + isClean()); + itemParam_ = null; + } + return itemParamBuilder_; + } + + private emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo deleteInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder> deleteInfoBuilder_; + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return Whether the deleteInfo field is set. + */ + public boolean hasDeleteInfo() { + return deleteInfoBuilder_ != null || deleteInfo_ != null; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return The deleteInfo. + */ + public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo getDeleteInfo() { + if (deleteInfoBuilder_ == null) { + return deleteInfo_ == null ? emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.getDefaultInstance() : deleteInfo_; + } else { + return deleteInfoBuilder_.getMessage(); + } + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public Builder setDeleteInfo(emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo value) { + if (deleteInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deleteInfo_ = value; + onChanged(); + } else { + deleteInfoBuilder_.setMessage(value); + } + + return this; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public Builder setDeleteInfo( + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder builderForValue) { + if (deleteInfoBuilder_ == null) { + deleteInfo_ = builderForValue.build(); + onChanged(); + } else { + deleteInfoBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public Builder mergeDeleteInfo(emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo value) { + if (deleteInfoBuilder_ == null) { + if (deleteInfo_ != null) { + deleteInfo_ = + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.newBuilder(deleteInfo_).mergeFrom(value).buildPartial(); + } else { + deleteInfo_ = value; + } + onChanged(); + } else { + deleteInfoBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public Builder clearDeleteInfo() { + if (deleteInfoBuilder_ == null) { + deleteInfo_ = null; + onChanged(); + } else { + deleteInfo_ = null; + deleteInfoBuilder_ = null; + } + + return this; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder getDeleteInfoBuilder() { + + onChanged(); + return getDeleteInfoFieldBuilder().getBuilder(); + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder getDeleteInfoOrBuilder() { + if (deleteInfoBuilder_ != null) { + return deleteInfoBuilder_.getMessageOrBuilder(); + } else { + return deleteInfo_ == null ? + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.getDefaultInstance() : deleteInfo_; + } + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder> + getDeleteInfoFieldBuilder() { + if (deleteInfoBuilder_ == null) { + deleteInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder>( + getDeleteInfo(), + getParentForChildren(), + isClean()); + deleteInfo_ = null; + } + return deleteInfoBuilder_; + } + @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:MailItem) + } + + // @@protoc_insertion_point(class_scope:MailItem) + private static final emu.grasscutter.net.proto.MailItemOuterClass.MailItem DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailItemOuterClass.MailItem(); + } + + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MailItem parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MailItem(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.MailItemOuterClass.MailItem getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_MailItem_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_MailItem_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\016MailItem.proto\032\017ItemParam.proto\032\030Mater" + + "ialDeleteInfo.proto\"R\n\010MailItem\022\035\n\titemP" + + "aram\030\001 \001(\0132\n.ItemParam\022\'\n\ndeleteInfo\030\002 \001" + + "(\0132\023.MaterialDeleteInfoB\033\n\031emu.grasscutt" + + "er.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor(), + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.getDescriptor(), + }); + internal_static_MailItem_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_MailItem_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_MailItem_descriptor, + new java.lang.String[] { "ItemParam", "DeleteInfo", }); + emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor(); + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java new file mode 100644 index 000000000..869011ffa --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java @@ -0,0 +1,919 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MailTextContent.proto + +package emu.grasscutter.net.proto; + +public final class MailTextContentOuterClass { + private MailTextContentOuterClass() {} + 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 MailTextContentOrBuilder extends + // @@protoc_insertion_point(interface_extends:MailTextContent) + com.google.protobuf.MessageOrBuilder { + + /** + * string title = 1; + * @return The title. + */ + java.lang.String getTitle(); + /** + * string title = 1; + * @return The bytes for title. + */ + com.google.protobuf.ByteString + getTitleBytes(); + + /** + * string content = 2; + * @return The content. + */ + java.lang.String getContent(); + /** + * string content = 2; + * @return The bytes for content. + */ + com.google.protobuf.ByteString + getContentBytes(); + + /** + * string sender = 3; + * @return The sender. + */ + java.lang.String getSender(); + /** + * string sender = 3; + * @return The bytes for sender. + */ + com.google.protobuf.ByteString + getSenderBytes(); + } + /** + * Protobuf type {@code MailTextContent} + */ + public static final class MailTextContent extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:MailTextContent) + MailTextContentOrBuilder { + private static final long serialVersionUID = 0L; + // Use MailTextContent.newBuilder() to construct. + private MailTextContent(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MailTextContent() { + title_ = ""; + content_ = ""; + sender_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MailTextContent(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MailTextContent( + 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 10: { + java.lang.String s = input.readStringRequireUtf8(); + + title_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + content_ = s; + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + + sender_ = s; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().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.MailTextContentOuterClass.internal_static_MailTextContent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.class, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder.class); + } + + public static final int TITLE_FIELD_NUMBER = 1; + private volatile java.lang.Object title_; + /** + * string title = 1; + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } + } + /** + * string title = 1; + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CONTENT_FIELD_NUMBER = 2; + private volatile java.lang.Object content_; + /** + * string content = 2; + * @return The content. + */ + @java.lang.Override + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } + } + /** + * string content = 2; + * @return The bytes for content. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SENDER_FIELD_NUMBER = 3; + private volatile java.lang.Object sender_; + /** + * string sender = 3; + * @return The sender. + */ + @java.lang.Override + public java.lang.String getSender() { + java.lang.Object ref = sender_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sender_ = s; + return s; + } + } + /** + * string sender = 3; + * @return The bytes for sender. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSenderBytes() { + java.lang.Object ref = sender_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sender_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + 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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, title_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sender_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, sender_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, title_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sender_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, sender_); + } + 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.MailTextContentOuterClass.MailTextContent)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent other = (emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent) obj; + + if (!getTitle() + .equals(other.getTitle())) return false; + if (!getContent() + .equals(other.getContent())) return false; + if (!getSender() + .equals(other.getSender())) 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) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + hash = (37 * hash) + CONTENT_FIELD_NUMBER; + hash = (53 * hash) + getContent().hashCode(); + hash = (37 * hash) + SENDER_FIELD_NUMBER; + hash = (53 * hash) + getSender().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MailTextContent} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:MailTextContent) + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.class, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.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(); + title_ = ""; + + content_ = ""; + + sender_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getDefaultInstanceForType() { + return emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent build() { + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent buildPartial() { + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent result = new emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent(this); + result.title_ = title_; + result.content_ = content_; + result.sender_ = sender_; + 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.MailTextContentOuterClass.MailTextContent) { + return mergeFrom((emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent other) { + if (other == emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance()) return this; + if (!other.getTitle().isEmpty()) { + title_ = other.title_; + onChanged(); + } + if (!other.getContent().isEmpty()) { + content_ = other.content_; + onChanged(); + } + if (!other.getSender().isEmpty()) { + sender_ = other.sender_; + 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.MailTextContentOuterClass.MailTextContent parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object title_ = ""; + /** + * string title = 1; + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string title = 1; + * @return The bytes for title. + */ + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string title = 1; + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + title_ = value; + onChanged(); + return this; + } + /** + * string title = 1; + * @return This builder for chaining. + */ + public Builder clearTitle() { + + title_ = getDefaultInstance().getTitle(); + onChanged(); + return this; + } + /** + * string title = 1; + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + title_ = value; + onChanged(); + return this; + } + + private java.lang.Object content_ = ""; + /** + * string content = 2; + * @return The content. + */ + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string content = 2; + * @return The bytes for content. + */ + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string content = 2; + * @param value The content to set. + * @return This builder for chaining. + */ + public Builder setContent( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + content_ = value; + onChanged(); + return this; + } + /** + * string content = 2; + * @return This builder for chaining. + */ + public Builder clearContent() { + + content_ = getDefaultInstance().getContent(); + onChanged(); + return this; + } + /** + * string content = 2; + * @param value The bytes for content to set. + * @return This builder for chaining. + */ + public Builder setContentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + content_ = value; + onChanged(); + return this; + } + + private java.lang.Object sender_ = ""; + /** + * string sender = 3; + * @return The sender. + */ + public java.lang.String getSender() { + java.lang.Object ref = sender_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sender_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string sender = 3; + * @return The bytes for sender. + */ + public com.google.protobuf.ByteString + getSenderBytes() { + java.lang.Object ref = sender_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sender_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string sender = 3; + * @param value The sender to set. + * @return This builder for chaining. + */ + public Builder setSender( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + sender_ = value; + onChanged(); + return this; + } + /** + * string sender = 3; + * @return This builder for chaining. + */ + public Builder clearSender() { + + sender_ = getDefaultInstance().getSender(); + onChanged(); + return this; + } + /** + * string sender = 3; + * @param value The bytes for sender to set. + * @return This builder for chaining. + */ + public Builder setSenderBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + sender_ = value; + 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:MailTextContent) + } + + // @@protoc_insertion_point(class_scope:MailTextContent) + private static final emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent(); + } + + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MailTextContent parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MailTextContent(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.MailTextContentOuterClass.MailTextContent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_MailTextContent_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_MailTextContent_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\025MailTextContent.proto\"A\n\017MailTextConte" + + "nt\022\r\n\005title\030\001 \001(\t\022\017\n\007content\030\002 \001(\t\022\016\n\006se" + + "nder\030\003 \001(\tB\033\n\031emu.grasscutter.net.protob" + + "\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_MailTextContent_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_MailTextContent_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_MailTextContent_descriptor, + new java.lang.String[] { "Title", "Content", "Sender", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java b/src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java new file mode 100644 index 000000000..cf4ef50ca --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java @@ -0,0 +1,665 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ReadMailNotify.proto + +package emu.grasscutter.net.proto; + +public final class ReadMailNotifyOuterClass { + private ReadMailNotifyOuterClass() {} + 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 ReadMailNotifyOrBuilder extends + // @@protoc_insertion_point(interface_extends:ReadMailNotify) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + } + /** + * Protobuf type {@code ReadMailNotify} + */ + public static final class ReadMailNotify extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:ReadMailNotify) + ReadMailNotifyOrBuilder { + private static final long serialVersionUID = 0L; + // Use ReadMailNotify.newBuilder() to construct. + private ReadMailNotify(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ReadMailNotify() { + mailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ReadMailNotify(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ReadMailNotify( + 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 8: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 10: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.class, emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.Builder.class); + } + + public static final int MAILIDLIST_FIELD_NUMBER = 1; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -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 (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + 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.ReadMailNotifyOuterClass.ReadMailNotify)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify other = (emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify) obj; + + if (!getMailIdListList() + .equals(other.getMailIdListList())) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ReadMailNotify} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:ReadMailNotify) + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotifyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.class, emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.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(); + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify getDefaultInstanceForType() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify build() { + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify buildPartial() { + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify result = new emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + 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.ReadMailNotifyOuterClass.ReadMailNotify) { + return mergeFrom((emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify other) { + if (other == emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.getDefaultInstance()) return this; + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + 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.ReadMailNotifyOuterClass.ReadMailNotify parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + 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:ReadMailNotify) + } + + // @@protoc_insertion_point(class_scope:ReadMailNotify) + private static final emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify(); + } + + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ReadMailNotify parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ReadMailNotify(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.ReadMailNotifyOuterClass.ReadMailNotify getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_ReadMailNotify_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_ReadMailNotify_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\024ReadMailNotify.proto\"$\n\016ReadMailNotify" + + "\022\022\n\nmailIdList\030\001 \003(\rB\033\n\031emu.grasscutter." + + "net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_ReadMailNotify_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_ReadMailNotify_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_ReadMailNotify_descriptor, + new java.lang.String[] { "MailIdList", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} From 1c6a5d483596a30dc61ac96f4b78704b4a1ed50c Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Fri, 22 Apr 2022 15:52:31 +0800 Subject: [PATCH 02/40] Initial work on mail --- .../packet/recv/HandlerGetAllMailReq.java | 23 +++++++++++ .../packet/send/PacketGetAllMailRsp.java | 39 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java create mode 100644 src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java new file mode 100644 index 000000000..9a1d1294e --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java @@ -0,0 +1,23 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.Grasscutter; +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.proto.GetAllMailReqOuterClass; +import emu.grasscutter.net.proto.GetPlayerTokenReqOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketGetAllMailRsp; +import emu.grasscutter.server.packet.send.PacketGetGachaInfoRsp; + +@Opcodes(PacketOpcodes.GetAllMailReq) +public class HandlerGetAllMailReq extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + Grasscutter.getLogger().info("Mail Req"); + GetAllMailReqOuterClass.GetAllMailReq req = GetAllMailReqOuterClass.GetAllMailReq.parseFrom(payload); + session.send(new PacketGetAllMailRsp(session.getPlayer(), req.getIsGiftMail())); + } + +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java new file mode 100644 index 000000000..d2362862c --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -0,0 +1,39 @@ +package emu.grasscutter.server.packet.send; + +import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; +import emu.grasscutter.net.proto.MailDataOuterClass.MailData; +import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; + +import java.time.Instant; + +public class PacketGetAllMailRsp extends GenshinPacket { + + public PacketGetAllMailRsp(GenshinPlayer player, boolean isGiftMail) { + super(PacketOpcodes.GetAllMailRsp); + + GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); + + MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); + mailTextContent.setTitle("System Message"); + mailTextContent.setContent("I'm going to kill you..."); + mailTextContent.setSender("YOU"); + + MailData.Builder mailData = MailData.newBuilder(); + mailData.setMailId(0); + mailData.setMailTextContent(mailTextContent.build()); + mailData.setSendTime((int) Instant.now().getEpochSecond()); + mailData.setExpireTime(999999999); + mailData.setImportance(1); + mailData.setIsRead(false); + mailData.setIsAttachmentGot(false); + maildata. + + proto.addMailList(mailData.build()); + proto.setIsTruncated(false); + + this.setData(proto); + } +} From 0baeb32b415010131548e8aef49c4b44bacaa6c2 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Fri, 22 Apr 2022 19:02:05 +0800 Subject: [PATCH 03/40] Added GetMailItemReq/Rsp & PacketMailChangeNotify Mail still doesn't work for whatever reason. I also added a temporary SendMailCommand just to receive PacketMailChangeNotify. I feel like I'm about to lose my mind. --- Grasscutter-Protos | 2 +- .../command/commands/SendMailCommand.java | 19 ++++++++ .../packet/recv/HandlerGetMailItemReq.java | 22 +++++++++ .../packet/send/PacketGetAllMailRsp.java | 39 +++++++++++----- .../packet/send/PacketGetMailItemRsp.java | 31 +++++++++++++ .../packet/send/PacketMailChangeNotify.java | 46 +++++++++++++++++++ 6 files changed, 147 insertions(+), 12 deletions(-) create mode 100644 src/main/java/emu/grasscutter/command/commands/SendMailCommand.java create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java create mode 100644 src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java create mode 100644 src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java diff --git a/Grasscutter-Protos b/Grasscutter-Protos index 0537e9cc4..ba0eab7d6 160000 --- a/Grasscutter-Protos +++ b/Grasscutter-Protos @@ -1 +1 @@ -Subproject commit 0537e9cc4c7856a7c6f88bbbaa908a80c4ee677e +Subproject commit ba0eab7d629b5adeb145bc430e14ffcb4bdf3d6a diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java new file mode 100644 index 000000000..fd45235b5 --- /dev/null +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -0,0 +1,19 @@ +package emu.grasscutter.command.commands; + +import emu.grasscutter.command.Command; +import emu.grasscutter.command.CommandHandler; +import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.server.packet.send.PacketMailChangeNotify; + +import java.util.List; + +@Command(label = "sendmail", usage = "sendmail") +public class SendMailCommand implements CommandHandler { + + @Override + public void execute(GenshinPlayer sender, List args) { + // This is literally so I can test the notification + sender.getSession().send(new PacketMailChangeNotify(sender)); + sender.dropMessage("Check your inbox"); + } +} diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java new file mode 100644 index 000000000..2fed31974 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java @@ -0,0 +1,22 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.Grasscutter; +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.GetMailItemReqOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketGetAllMailRsp; +import emu.grasscutter.server.packet.send.PacketGetMailItemRsp; + +@Opcodes(PacketOpcodes.GetMailItemReq) +public class HandlerGetMailItemReq extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + Grasscutter.getLogger().info("Mail Item Req"); + GetMailItemReqOuterClass.GetMailItemReq req = GetMailItemReqOuterClass.GetMailItemReq.parseFrom(payload); + session.send(new PacketGetMailItemRsp(session.getPlayer(), req.getMailIdListList())); + } + +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index d2362862c..82a567d67 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -1,39 +1,56 @@ package emu.grasscutter.server.packet.send; +import com.google.gson.Gson; +import emu.grasscutter.Grasscutter; import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.DateTimeDeleteOuterClass; import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; +import emu.grasscutter.net.proto.ItemParamOuterClass; import emu.grasscutter.net.proto.MailDataOuterClass.MailData; +import emu.grasscutter.net.proto.MailItemOuterClass; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; - -import java.time.Instant; +import emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass; public class PacketGetAllMailRsp extends GenshinPacket { public PacketGetAllMailRsp(GenshinPlayer player, boolean isGiftMail) { super(PacketOpcodes.GetAllMailRsp); + Grasscutter.getLogger().info(String.valueOf(isGiftMail)); GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); + // Dummy data. MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); - mailTextContent.setTitle("System Message"); - mailTextContent.setContent("I'm going to kill you..."); - mailTextContent.setSender("YOU"); + mailTextContent.setTitle("Hello Traveller.."); + mailTextContent.setContent("You've called me emergency food for the last time. \n Get ready to die!"); + mailTextContent.setSender("P·A·I·M·O·N"); + + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + + itemParam.setItemId(1062); + itemParam.setCount(1); + mailItem.setItemParam(itemParam.build()); MailData.Builder mailData = MailData.newBuilder(); - mailData.setMailId(0); + mailData.setMailId(100); mailData.setMailTextContent(mailTextContent.build()); - mailData.setSendTime((int) Instant.now().getEpochSecond()); - mailData.setExpireTime(999999999); + mailData.addItemList(mailItem.build()); + mailData.setSendTime(1634100481); + mailData.setExpireTime(1664498747); mailData.setImportance(1); mailData.setIsRead(false); mailData.setIsAttachmentGot(false); - maildata. + mailData.setStateValue(1); proto.addMailList(mailData.build()); - proto.setIsTruncated(false); + proto.addMailList(mailData.setMailId(101).build()); + proto.setIsTruncated(true); - this.setData(proto); + Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); + + this.setData(proto.build()); } } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java new file mode 100644 index 000000000..468e98885 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -0,0 +1,31 @@ +package emu.grasscutter.server.packet.send; + +import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp; +import emu.grasscutter.net.proto.ItemParamOuterClass; +import emu.grasscutter.net.proto.MailItemOuterClass; + +import java.util.List; + +public class PacketGetMailItemRsp extends GenshinPacket { + + public PacketGetMailItemRsp(GenshinPlayer player, List mailList) { + super(PacketOpcodes.GetMailItemRsp); + + //I'm assuming that this is to receive the attachments on the message. + // TODO: This. + + //GetMailItemRsp.Builder proto = GetMailItemRsp.newBuilder(); + + //MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + + //ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + + //mailItem.setItemParam(itemParam); + + //proto.addAllMailIdList(mailList); + //proto.addItemList(); + } +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java new file mode 100644 index 000000000..bedd191e1 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -0,0 +1,46 @@ +package emu.grasscutter.server.packet.send; + + +import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.*; + +import java.util.List; + +public class PacketMailChangeNotify extends GenshinPacket { + + public PacketMailChangeNotify(GenshinPlayer player) { + super(PacketOpcodes.MailChangeNotify); + + MailChangeNotifyOuterClass.MailChangeNotify.Builder proto = MailChangeNotifyOuterClass.MailChangeNotify.newBuilder(); + + // Dummy data. + MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); + mailTextContent.setTitle("System Message"); + mailTextContent.setContent("I'm going to kill you..."); + mailTextContent.setSender("YOU"); + + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + + itemParam.setItemId(1062); + itemParam.setCount(1); + mailItem.setItemParam(itemParam.build()); + + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(100); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addItemList(mailItem.build()); + mailData.setSendTime(1634100481); + mailData.setExpireTime(1664498747); + mailData.setImportance(1); + mailData.setIsRead(false); + mailData.setIsAttachmentGot(false); + mailData.setStateValue(1); + + proto.addMailList(mailData.build()); + + this.setData(proto.build()); + } +} \ No newline at end of file From 903e02c53873b85ec96e248df77e0af6713c67e1 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Sat, 23 Apr 2022 23:07:18 +0800 Subject: [PATCH 04/40] Added database support for mail Send mail command now works from console (to use it from console change the uuid in the 'SendMailCommand' file --- .../command/commands/SendMailCommand.java | 17 +++- .../emu/grasscutter/game/GenshinPlayer.java | 38 +++---- src/main/java/emu/grasscutter/game/Mail.java | 99 +++++++++++++++++++ .../packet/send/PacketGetAllMailRsp.java | 63 +++++++----- .../packet/send/PacketMailChangeNotify.java | 38 ++++--- 5 files changed, 188 insertions(+), 67 deletions(-) create mode 100644 src/main/java/emu/grasscutter/game/Mail.java diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java index fd45235b5..ac6593529 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -1,10 +1,14 @@ package emu.grasscutter.command.commands; +import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Mail; import emu.grasscutter.server.packet.send.PacketMailChangeNotify; +import java.time.Instant; +import java.util.ArrayList; import java.util.List; @Command(label = "sendmail", usage = "sendmail") @@ -12,8 +16,17 @@ public class SendMailCommand implements CommandHandler { @Override public void execute(GenshinPlayer sender, List args) { - // This is literally so I can test the notification - sender.getSession().send(new PacketMailChangeNotify(sender)); + // This is literally so I can receive mail for some reason. + if(sender == null) { + // This is my uuid in my test server. This is just for testing. + // If someone pulled this please put your uuid to receive mail using /sendmail + // until I actually make a proper /sendmail command. + sender = Grasscutter.getGameServer().getPlayerByUid(7006); + } + sender.sendMail(new Mail(new Mail.MailContent("Test", "This is a test"), + new ArrayList(){{add(new Mail.MailItem(1062));}}, + Instant.now().getEpochSecond() + 4000)); + sender.dropMessage("Check your inbox"); } } diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index 44f960198..962f653b2 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -34,28 +34,7 @@ import emu.grasscutter.net.proto.SocialDetailOuterClass.SocialDetail; import emu.grasscutter.net.proto.WorldPlayerLocationInfoOuterClass.WorldPlayerLocationInfo; import emu.grasscutter.server.game.GameServer; import emu.grasscutter.server.game.GameSession; -import emu.grasscutter.server.packet.send.PacketAbilityInvocationsNotify; -import emu.grasscutter.server.packet.send.PacketAvatarAddNotify; -import emu.grasscutter.server.packet.send.PacketAvatarDataNotify; -import emu.grasscutter.server.packet.send.PacketAvatarGainCostumeNotify; -import emu.grasscutter.server.packet.send.PacketAvatarGainFlycloakNotify; -import emu.grasscutter.server.packet.send.PacketClientAbilityInitFinishNotify; -import emu.grasscutter.server.packet.send.PacketCombatInvocationsNotify; -import emu.grasscutter.server.packet.send.PacketGadgetInteractRsp; -import emu.grasscutter.server.packet.send.PacketItemAddHintNotify; -import emu.grasscutter.server.packet.send.PacketOpenStateUpdateNotify; -import emu.grasscutter.server.packet.send.PacketPlayerApplyEnterMpResultNotify; -import emu.grasscutter.server.packet.send.PacketPlayerDataNotify; -import emu.grasscutter.server.packet.send.PacketPlayerEnterSceneNotify; -import emu.grasscutter.server.packet.send.PacketPlayerPropNotify; -import emu.grasscutter.server.packet.send.PacketPlayerStoreNotify; -import emu.grasscutter.server.packet.send.PacketPrivateChatNotify; -import emu.grasscutter.server.packet.send.PacketScenePlayerLocationNotify; -import emu.grasscutter.server.packet.send.PacketSetNameCardRsp; -import emu.grasscutter.server.packet.send.PacketStoreWeightLimitNotify; -import emu.grasscutter.server.packet.send.PacketUnlockNameCardNotify; -import emu.grasscutter.server.packet.send.PacketWorldPlayerLocationNotify; -import emu.grasscutter.server.packet.send.PacketWorldPlayerRTTNotify; +import emu.grasscutter.server.packet.send.*; import emu.grasscutter.utils.Position; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; @@ -94,6 +73,7 @@ public class GenshinPlayer { private MpSettingType mpSetting = MpSettingType.MpSettingEnterAfterApply; private boolean showAvatar; private ArrayList shownAvatars; + private ArrayList mail; private int sceneId; private int regionId; @@ -130,7 +110,9 @@ public class GenshinPlayer { this.nameCardList = new HashSet<>(); this.flyCloakList = new HashSet<>(); this.costumeList = new HashSet<>(); - + + this.mail = new ArrayList<>(); + this.setSceneId(3); this.setRegionId(1); this.sceneState = SceneLoadState.NONE; @@ -582,6 +564,16 @@ public class GenshinPlayer { public void sendMessage(GenshinPlayer sender, Object message) { this.sendPacket(new PacketPrivateChatNotify(sender.getUid(), this.getUid(), message.toString())); } + + public List getMail() { return mail; } + + public void sendMail(Mail message) { + + this.mail.add(message); + message._id = this.mail.size() + 1; + this.save(); + this.sendPacket(new PacketMailChangeNotify(this, message)); + } public void interactWith(int gadgetEntityId) { GenshinEntity entity = getScene().getEntityById(gadgetEntityId); diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java new file mode 100644 index 000000000..2dc4ef688 --- /dev/null +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -0,0 +1,99 @@ +package emu.grasscutter.game; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; + +public class Mail { + + public int _id; + public MailContent mailContent; + public List itemList; + public long sendTime; + public long expireTime; + public int importance; + public boolean isRead; + public boolean isAttachmentGot; + public int stateValue; + + public Mail() { + _id = 1; + mailContent = new MailContent("No title set...", "No content set..."); + itemList = new ArrayList<>(); + sendTime = 0; + expireTime = 0; + importance = 1; + isRead = true; + isAttachmentGot = true; + stateValue = 1; + } + + public Mail(MailContent mailContent, List itemList, long expireTime) { + this(mailContent, itemList, expireTime, 1); + } + + public Mail(MailContent mailContent, List itemList, long expireTime, int importance) { + this(mailContent, itemList, expireTime, importance, 1); + } + + public Mail(MailContent mailContent, List itemList, long expireTime, int importance, int state) { + this(0, mailContent, itemList, expireTime, importance, state); + } + + public Mail(int _id, MailContent mailContent, List itemList, long expireTime, int importance, int state) { + this._id = _id; + this.mailContent = mailContent; + this.itemList = itemList; + this.sendTime = (int) Instant.now().EPOCH.getEpochSecond(); + this.expireTime = expireTime; + this.importance = importance; + this.isRead = false; + this.isAttachmentGot = false; + this.stateValue = state; + } + + public static class MailContent { + public String title; + public String content; + public String sender; + + public MailContent() { + this.title = ""; + this.content = "loading..."; + this.sender = "loading"; + } + + public MailContent(String title, String content) { + this(title, content, "Server"); + } + + public MailContent(String title, String content, GenshinPlayer sender) { + this(title, content, sender.getNickname()); + } + + public MailContent(String title, String content, String sender) { + this.title = title; + this.content = content; + this.sender = sender; + } + } + + public static class MailItem { + public int itemId; + public int itemCount; + + public MailItem() { + this.itemId = 11101; + this.itemCount = 1; + } + + public MailItem(int itemId) { + this(itemId, 1); + } + + public MailItem(int itemId, int itemCount) { + this.itemId = itemId; + this.itemCount = itemCount; + } + } +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index 82a567d67..00cd263b9 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -3,15 +3,16 @@ package emu.grasscutter.server.packet.send; import com.google.gson.Gson; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Mail; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; -import emu.grasscutter.net.proto.DateTimeDeleteOuterClass; +import emu.grasscutter.net.proto.*; import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; -import emu.grasscutter.net.proto.ItemParamOuterClass; import emu.grasscutter.net.proto.MailDataOuterClass.MailData; -import emu.grasscutter.net.proto.MailItemOuterClass; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; -import emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass; + +import java.util.ArrayList; +import java.util.List; public class PacketGetAllMailRsp extends GenshinPacket { @@ -21,33 +22,43 @@ public class PacketGetAllMailRsp extends GenshinPacket { GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); + List mailDataList = new ArrayList(); + // Dummy data. - MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); - mailTextContent.setTitle("Hello Traveller.."); - mailTextContent.setContent("You've called me emergency food for the last time. \n Get ready to die!"); - mailTextContent.setSender("P·A·I·M·O·N"); + for(Mail message : player.getMail()) { + MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + List mailItems = new ArrayList(); - itemParam.setItemId(1062); - itemParam.setCount(1); - mailItem.setItemParam(itemParam.build()); + for(Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); - MailData.Builder mailData = MailData.newBuilder(); - mailData.setMailId(100); - mailData.setMailTextContent(mailTextContent.build()); - mailData.addItemList(mailItem.build()); - mailData.setSendTime(1634100481); - mailData.setExpireTime(1664498747); - mailData.setImportance(1); - mailData.setIsRead(false); - mailData.setIsAttachmentGot(false); - mailData.setStateValue(1); + mailItems.add(mailItem.build()); + } - proto.addMailList(mailData.build()); - proto.addMailList(mailData.setMailId(101).build()); - proto.setIsTruncated(true); + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(message._id); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int)message.sendTime); + mailData.setExpireTime((int)message.expireTime); + mailData.setImportance(message.importance); + mailData.setIsRead(message.isRead); + mailData.setIsAttachmentGot(message.isAttachmentGot); + mailData.setStateValue(message.stateValue); + + mailDataList.add(mailData.build()); + } + + proto.addAllMailList(mailDataList); + //proto.setIsTruncated(true); Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java index bedd191e1..a0bdc5c3e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -2,42 +2,48 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Mail; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.*; +import java.util.ArrayList; import java.util.List; public class PacketMailChangeNotify extends GenshinPacket { - public PacketMailChangeNotify(GenshinPlayer player) { + public PacketMailChangeNotify(GenshinPlayer player, Mail message) { super(PacketOpcodes.MailChangeNotify); MailChangeNotifyOuterClass.MailChangeNotify.Builder proto = MailChangeNotifyOuterClass.MailChangeNotify.newBuilder(); - // Dummy data. MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); - mailTextContent.setTitle("System Message"); - mailTextContent.setContent("I'm going to kill you..."); - mailTextContent.setSender("YOU"); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + List mailItems = new ArrayList(); - itemParam.setItemId(1062); - itemParam.setCount(1); - mailItem.setItemParam(itemParam.build()); + for(Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); + + mailItems.add(mailItem.build()); + } MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(100); + mailData.setMailId(message._id); mailData.setMailTextContent(mailTextContent.build()); - mailData.addItemList(mailItem.build()); - mailData.setSendTime(1634100481); - mailData.setExpireTime(1664498747); - mailData.setImportance(1); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int)message.sendTime); + mailData.setExpireTime((int)message.expireTime); + mailData.setImportance(message.importance); mailData.setIsRead(false); mailData.setIsAttachmentGot(false); - mailData.setStateValue(1); + mailData.setStateValue(message.stateValue); proto.addMailList(mailData.build()); From b10a889d76c068a2fa706dd2ba059c83f53d4186 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Sun, 24 Apr 2022 18:17:08 +0800 Subject: [PATCH 05/40] Java-16 compatiable mail system (whoops) --- src/main/java/emu/grasscutter/game/Mail.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 2dc4ef688..9511bdb63 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -1,9 +1,12 @@ package emu.grasscutter.game; +import dev.morphia.annotations.Entity; + import java.time.Instant; import java.util.ArrayList; import java.util.List; +@Entity public class Mail { public int _id; @@ -52,6 +55,7 @@ public class Mail { this.stateValue = state; } + @Entity public static class MailContent { public String title; public String content; @@ -78,6 +82,7 @@ public class Mail { } } + @Entity public static class MailItem { public int itemId; public int itemCount; From c7096f9e4950d390bfd96cea200a833c0bd2140e Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Sun, 24 Apr 2022 19:06:52 +0800 Subject: [PATCH 06/40] THE MAILBOX ACTUALLY WORKS CORRECTLY NOW --- src/main/java/emu/grasscutter/game/Mail.java | 2 +- .../packet/send/PacketGetAllMailRsp.java | 101 +++++++++++------- 2 files changed, 63 insertions(+), 40 deletions(-) diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 9511bdb63..0eb377eac 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -47,7 +47,7 @@ public class Mail { this._id = _id; this.mailContent = mailContent; this.itemList = itemList; - this.sendTime = (int) Instant.now().EPOCH.getEpochSecond(); + this.sendTime = (int) Instant.now().getEpochSecond(); this.expireTime = expireTime; this.importance = importance; this.isRead = false; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index 00cd263b9..43f57df12 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -11,7 +11,9 @@ import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; import emu.grasscutter.net.proto.MailDataOuterClass.MailData; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; +import javax.swing.*; import java.util.ArrayList; +import java.util.Base64; import java.util.List; public class PacketGetAllMailRsp extends GenshinPacket { @@ -20,48 +22,69 @@ public class PacketGetAllMailRsp extends GenshinPacket { super(PacketOpcodes.GetAllMailRsp); Grasscutter.getLogger().info(String.valueOf(isGiftMail)); - GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); - - List mailDataList = new ArrayList(); - - // Dummy data. - for(Mail message : player.getMail()) { - MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); - mailTextContent.setTitle(message.mailContent.title); - mailTextContent.setContent(message.mailContent.content); - mailTextContent.setSender(message.mailContent.sender); - - List mailItems = new ArrayList(); - - for(Mail.MailItem item : message.itemList) { - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); - itemParam.setItemId(item.itemId); - itemParam.setCount(item.itemCount); - mailItem.setItemParam(itemParam.build()); - - mailItems.add(mailItem.build()); + if (isGiftMail) { + // TODO: Gift Mail + // Make sure to send the stupid empty packet + Base64.Decoder decoder = Base64.getDecoder(); + byte[] rsp = decoder.decode("IAE="); + try { + GetAllMailRsp var = GetAllMailRsp.parseFrom(rsp); + this.setData(var.toBuilder().build()); + } catch (Exception e) { } - MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(message._id); - mailData.setMailTextContent(mailTextContent.build()); - mailData.addAllItemList(mailItems); - mailData.setSendTime((int)message.sendTime); - mailData.setExpireTime((int)message.expireTime); - mailData.setImportance(message.importance); - mailData.setIsRead(message.isRead); - mailData.setIsAttachmentGot(message.isAttachmentGot); - mailData.setStateValue(message.stateValue); + } else { + if (player.getMail().size() != 0) { // Make sure the player has mail + GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); + List mailDataList = new ArrayList(); - mailDataList.add(mailData.build()); + for (Mail message : player.getMail()) { + if(message.stateValue == 1) { //Make sure it isn't a gift + MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); + + List mailItems = new ArrayList<>(); + + for (Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); + + mailItems.add(mailItem.build()); + } + + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(message._id); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int) message.sendTime); + mailData.setExpireTime((int) message.expireTime); + mailData.setImportance(message.importance); + mailData.setIsRead(message.isRead); + mailData.setIsAttachmentGot(message.isAttachmentGot); + mailData.setStateValue(1); + + mailDataList.add(mailData.build()); + } + } + + proto.addAllMailList(mailDataList); + proto.setIsTruncated(true); + + this.setData(proto.build()); + } else { + // Make sure to send the stupid empty packet + Base64.Decoder decoder = Base64.getDecoder(); + byte[] rsp = decoder.decode("IAE="); + try { + GetAllMailRsp var = GetAllMailRsp.parseFrom(rsp); + this.setData(var.toBuilder().build()); + } catch (Exception e) {} + } } - - proto.addAllMailList(mailDataList); - //proto.setIsTruncated(true); - - Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); - - this.setData(proto.build()); } } From 850b3d20ff0ddeaaffad4ab23dd601c251c15f6a Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 13:51:19 +0800 Subject: [PATCH 07/40] Receiving items in mail --- GM_Handbook.txt | 7544 +++++++++++++++++ .../command/commands/SendMailCommand.java | 2 +- .../emu/grasscutter/game/GenshinPlayer.java | 35 +- src/main/java/emu/grasscutter/game/Mail.java | 4 + .../packet/recv/HandlerGetAllMailReq.java | 1 - .../packet/recv/HandlerGetMailItemReq.java | 1 - .../packet/send/PacketGetAllMailRsp.java | 13 +- .../packet/send/PacketGetMailItemRsp.java | 45 +- .../packet/send/PacketMailChangeNotify.java | 63 +- 9 files changed, 7662 insertions(+), 46 deletions(-) create mode 100644 GM_Handbook.txt diff --git a/GM_Handbook.txt b/GM_Handbook.txt new file mode 100644 index 000000000..f1518816a --- /dev/null +++ b/GM_Handbook.txt @@ -0,0 +1,7544 @@ +// Genshin Impact 2.6.0 GM Handbook +// Created 2022/04/17 18:28:03 + + +// Avatars +10000001 : Kate +10000002 : Kamisato Ayaka +10000003 : Jean +10000005 : Traveler +10000006 : Lisa +10000007 : Traveler +10000014 : Barbara +10000015 : Kaeya +10000016 : Diluc +10000020 : Razor +10000021 : Amber +10000022 : Venti +10000023 : Xiangling +10000024 : Beidou +10000025 : Xingqiu +10000026 : Xiao +10000027 : Ningguang +10000029 : Klee +10000030 : Zhongli +10000031 : Fischl +10000032 : Bennett +10000033 : Tartaglia +10000034 : Noelle +10000035 : Qiqi +10000036 : Chongyun +10000037 : Ganyu +10000038 : Albedo +10000039 : Diona +10000041 : Mona +10000042 : Keqing +10000043 : Sucrose +10000044 : Xinyan +10000045 : Rosaria +10000046 : Hu Tao +10000047 : Kaedehara Kazuha +10000048 : Yanfei +10000049 : Yoimiya +10000050 : Thoma +10000051 : Eula +10000052 : Raiden Shogun +10000053 : Sayu +10000054 : Sangonomiya Kokomi +10000055 : Gorou +10000056 : Kujou Sara +10000057 : Arataki Itto +10000058 : Yae Miko +10000062 : Aloy +10000063 : Shenhe +10000064 : Yun Jin +10000066 : Kamisato Ayato +11000008 : Party Test #4 +11000009 : Background Test +11000010 : Naked Model #1 +11000011 : Naked Man +11000013 : Co-Op Test +11000017 : Adult Male Body Test +11000018 : Adult Female Body Test +11000019 : Girl Body Test +11000025 : Akuliya +11000026 : Yaoyao +11000027 : Girl Body Test - #2 Machine +11000028 : Shiro Maiden +11000030 : Greatsword Maiden +11000031 : Late Weapon Test A +11000032 : Late Weapon Test B +11000033 : Late Weapon Test C +11000034 : Late Weapon Test D +11000035 : Lance Warrioress +11000036 : Swordswoman Test +11000037 : Rx White-Box +11000038 : Boy Body Test +11000039 : Adult Male Body Test +11000040 : Female Lead New Normal Attack +11000041 : Male Lead New Normal Attack +11000042 : Chongyun (Test) +11000043 : Test Character +11000044 : Qiqi (Test) +11000045 : Diona (Test) + +// Items +101 : Character EXP +102 : Adventure EXP +103 : Stardust +104 : Starglitter +105 : Companionship EXP +106 : Original Resin +107 : Story Key +108 : +109 : Fading Star's Might +110 : Fading Star's Essence +111 : Glimmering Essence +112 : Warm Essence +113 : Miraculous Essence +114 : Iron Coin +115 : Peace Talisman +116 : Festive Fever +117 : Veneficus Sigil +118 : Festive Tour Ticket +119 : Peculiar Collab Coupon +120 : Heart of the Spring +121 : Trust +122 : Fractured Fruit Data +123 : Windtrace Coins +124 : Shiny Flotsam +125 : Mini "Harpastum" +126 : Enigma Gear +127 : Thunder Pellet +128 : Thunder Crystal +129 : Mechanicus Mastery EXP +130 : Wondrous Talisman +131 : Moonchase Festival Festive Fever +132 : Battered Shikifuda +133 : Damaged Replica +134 : Aged Token +135 : Snowstrider Seal +136 : Vanquisher's Emblem +137 : Affluence Talisman +138 : Immaculate Talisman +139 : Conquest Talisman +201 : Primogem +202 : Mora +203 : Genesis Crystal +204 : Realm Currency +210 : Original Essence (Invalidated) +211 : Original Resin (Invalidated) +221 : Masterless Starglitter +222 : Masterless Stardust +223 : Intertwined Fate +224 : Acquaint Fate +301 : Pyro Sigil +302 : Hydro Sigil +303 : Dendro Sigil +304 : Electro Sigil +305 : Anemo Sigil +306 : Cryo Sigil +307 : Geo Sigil +314 : Inazuma Reputation EXP +315 : Mondstadt Reputation EXP +317 : Liyue Reputation EXP +911 : Memory of Eternal Flames +912 : Memory of Running Stream +913 : Memory of Flourishing Green +914 : Memory of Violet Flash +915 : Memory of Roving Gales +916 : Memory of Piercing Frost +917 : Memory of Immovable Crystals +1002 : Kamisato Ayaka +1003 : Jean +1005 : Male Character +1006 : Lisa +1007 : Female Lead +1014 : Barbara +1015 : Kaeya +1016 : Diluc +1020 : Razor +1021 : Amber +1022 : Venti +1023 : Xiangling +1024 : Beidou +1025 : Xingqiu +1026 : Xiao +1027 : Ningguang +1029 : Klee +1030 : Zhongli +1031 : Fischl +1032 : Bennett +1033 : Tartaglia +1034 : Noelle +1035 : Qiqi +1036 : Chongyun +1037 : Ganyu +1038 : Albedo +1039 : Diona +1041 : Mona +1042 : Keqing +1043 : Sucrose +1044 : Xinyan +1045 : Rosaria +1046 : Hu Tao +1047 : Kaedehara Kazuha +1048 : Yanfei +1049 : Yoimiya +1050 : Thoma +1051 : Eula +1052 : Raiden Shogun +1053 : Sayu +1054 : Sangonomiya Kokomi +1055 : Gorou +1056 : Kujou Sara +1057 : Arataki Itto +1058 : Yae Miko +1062 : Aloy +1063 : Shenhe +1064 : Yun Jin +1066 : Kamisato Ayato +1102 : Kamisato Ayaka's Stella Fortuna +1103 : Jean's Stella Fortuna +1105 : Traveler (Male)'s Stella Fortuna +1106 : Lisa's Stella Fortuna +1107 : Traveler (Female)'s Stella Fortuna +1114 : Barbara's Stella Fortuna +1115 : Kaeya's Stella Fortuna +1116 : Diluc's Stella Fortuna +1120 : Razor's Stella Fortuna +1121 : Amber's Stella Fortuna +1122 : Venti's Stella Fortuna +1123 : Xiangling's Stella Fortuna +1124 : Beidou's Stella Fortuna +1125 : Xingqiu's Stella Fortuna +1126 : Xiao's Stella Fortuna +1127 : Ningguang's Stella Fortuna +1129 : Klee's Stella Fortuna +1130 : Zhongli's Stella Fortuna +1131 : Fischl's Stella Fortuna +1132 : Bennett's Stella Fortuna +1133 : Tartaglia's Stella Fortuna +1134 : Noelle's Stella Fortuna +1135 : Qiqi's Stella Fortuna +1136 : Chongyun's Stella Fortuna +1137 : Ganyu's Stella Fortuna +1138 : Albedo's Stella Fortuna +1139 : Diona's Stella Fortuna +1141 : Mona's Stella Fortuna +1142 : Keqing's Stella Fortuna +1143 : Sucrose's Stella Fortuna +1144 : Xinyan's Stella Fortuna +1145 : Rosaria's Stella Fortuna +1146 : Hu Tao's Stella Fortuna +1147 : Kaedehara Kazuha's Stella Fortuna +1148 : Yanfei's Stella Fortuna +1149 : Yoimiya's Stella Fortuna +1150 : Thoma's Stella Fortuna +1151 : Eula's Stella Fortuna +1152 : Raiden Shogun's Stella Fortuna +1153 : Sayu's Stella Fortuna +1154 : Sangonomiya Kokomi's Stella Fortuna +1155 : Gorou's Stella Fortuna +1156 : Kujou Sara's Stella Fortuna +1157 : Arataki Itto's Stella Fortuna +1158 : Yae Miko's Stella Fortuna +1162 : Aloy's Stella Fortuna +1163 : Shenhe's Stella Fortuna +1164 : Yun Jin's Stella Fortuna +1166 : Kamisato Ayato's Stella Fortuna +1201 : Gnostic Hymn - Old Notes +1202 : Blessing of the Welkin Moon - New Moon +2001 : Energy Orb (Pyro) +2002 : Energy Orb (Hydro) +2003 : Energy Orb (Dendro) +2004 : Energy Orb (Electro) +2005 : Energy Orb (Anemo) +2006 : Energy Orb (Cryo) +2007 : Energy Orb (Geo) +2008 : Energy Orb (Any) +2017 : Atomic Energy Orb (Pyro) +2018 : Atomic Energy Orb (Hydro) +2019 : Atomic Energy Orb (Dendro) +2020 : Atomic Energy Orb (Electro) +2021 : Atomic Energy Orb (Anemo) +2022 : Atomic Energy Orb (Cryo) +2023 : Atomic Energy Orb (Geo) +2024 : Atomic Energy Orb (All) +2025 : Quest Use - Overpowered Atomic Energy Orb (All) +2026 : Time Shard (Minigame item) +2027 : Time Shard (Minigame item) +2028 : Quest Use - Atomic Energy Orb Pouch +2029 : Quest Use - Atomic Energy Orb Pouch +2800 : +3001 : Test Random Treasure Chest +3002 : Test Set Treasure Chest +3003 : Character Card Draw +3004 : Kamisato Ayaka - for CB1 +3005 : Xiangling - for CB1 +3006 : Jean - for CB1 +3007 : Diluc - for CB1 +3008 : Venti - for CB1 +3009 : Kamisato Ayaka Test Package +3010 : Xiangling Test Package +3011 : Jean Test Package +3012 : Diluc Test Package +3013 : Venti Test Package +3014 : Amber Test Package +3015 : Kaeya Test Package +3016 : Lisa Test Package +3017 : Barbara Test Package +3018 : Barbara - for CB1 +3019 : Razor - for CB1 +3020 : Razor Test Package +3021 : Kaeya +3022 : Lisa +10002 : +10003 : +10004 : +10005 : +10006 : +10008 : +11101 : Dull Blade +11201 : Silver Sword +11301 : Cool Steel +11302 : Harbinger of Dawn +11303 : Traveler's Handy Sword +11304 : Dark Iron Sword +11305 : Fillet Blade +11306 : Skyrider Sword +11401 : Favonius Sword +11402 : The Flute +11403 : Sacrificial Sword +11404 : Royal Longsword +11405 : Lion's Roar +11406 : Prototype Rancour +11407 : Iron Sting +11408 : Blackcliff Longsword +11409 : The Black Sword +11410 : The Alley Flash +11411 : +11412 : Sword of Descension +11413 : Festering Desire +11414 : Amenoma Kageuchi +11415 : Cinnabar Spindle +11501 : Aquila Favonia +11502 : Skyward Blade +11503 : Freedom-Sworn +11504 : Summit Shaper +11505 : Primordial Jade Cutter +11506 : Primordial Jade Cutter +11507 : One Side +11508 : +11509 : Mistsplitter Reforged +11510 : Haran Geppaku Futsu +12101 : Waster Greatsword +12201 : Old Merc's Pal +12301 : Ferrous Shadow +12302 : Bloodtainted Greatsword +12303 : White Iron Greatsword +12304 : Quartz +12305 : Debate Club +12306 : Skyrider Greatsword +12401 : Favonius Greatsword +12402 : The Bell +12403 : Sacrificial Greatsword +12404 : Royal Greatsword +12405 : Rainslasher +12406 : Prototype Archaic +12407 : Whiteblind +12408 : Blackcliff Slasher +12409 : Serpent Spine +12410 : Lithic Blade +12411 : Snow-Tombed Starsilver +12412 : Luxurious Sea-Lord +12414 : Katsuragikiri Nagamasa +12416 : Akuoumaru +12501 : Skyward Pride +12502 : Wolf's Gravestone +12503 : Song of Broken Pines +12504 : The Unforged +12505 : Primordial Jade Greatsword +12506 : The Other Side +12508 : +12509 : +12510 : Redhorn Stonethresher +13101 : Beginner's Protector +13201 : Iron Point +13301 : White Tassel +13302 : Halberd +13303 : Black Tassel +13304 : The Flagstaff +13401 : Dragon's Bane +13402 : Prototype Starglitter +13403 : Crescent Pike +13404 : Blackcliff Pole +13405 : Deathmatch +13406 : Lithic Spear +13407 : Favonius Lance +13408 : Royal Spear +13409 : Dragonspine Spear +13414 : Kitain Cross Spear +13415 : "The Catch" +13416 : Wavebreaker's Fin +13501 : Staff of Homa +13502 : Skyward Spine +13503 : +13504 : Vortex Vanquisher +13505 : Primordial Jade Winged-Spear +13506 : Deicide +13507 : Calamity Queller +13509 : Engulfing Lightning +14101 : Apprentice's Notes +14201 : Pocket Grimoire +14301 : Magic Guide +14302 : Thrilling Tales of Dragon Slayers +14303 : Otherworldly Story +14304 : Emerald Orb +14305 : Twin Nephrite +14306 : Amber Bead +14401 : Favonius Codex +14402 : The Widsith +14403 : Sacrificial Fragments +14404 : Royal Grimoire +14405 : Solar Pearl +14406 : Prototype Amber +14407 : Mappa Mare +14408 : Blackcliff Agate +14409 : Eye of Perception +14410 : Wine and Song +14411 : +14412 : Frostbearer +14413 : Dodoco Tales +14414 : Hakushin Ring +14415 : Oathsworn Eye +14501 : Skyward Atlas +14502 : Lost Prayer to the Sacred Winds +14503 : Lost Ballade +14504 : Memory of Dust +14505 : Primordial Jade Regalia +14506 : Everlasting Moonglow +14508 : +14509 : Kagura's Verity +15101 : Hunter's Bow +15201 : Seasoned Hunter's Bow +15301 : Raven Bow +15302 : Sharpshooter's Oath +15303 : Recurve Bow +15304 : Slingshot +15305 : Messenger +15306 : Ebony Bow +15401 : Favonius Warbow +15402 : The Stringless +15403 : Sacrificial Bow +15404 : Royal Bow +15405 : Rust +15406 : Prototype Crescent +15407 : Compound Bow +15408 : Blackcliff Warbow +15409 : The Viridescent Hunt +15410 : Alley Hunter +15411 : +15412 : Mitternachts Waltz +15413 : Windblume Ode +15414 : Hamayumi +15415 : Predator +15416 : Mouun's Moon +15501 : Skyward Harp +15502 : Amos' Bow +15503 : Elegy for the End +15504 : Kunwu's Wyrmbane +15505 : Primordial Jade Vista +15506 : Mirror Breaker +15507 : Polar Star +15508 : +15509 : Thundering Pulse +20001 : +20002 : Initiate's Feather +20004 : Initiate's Flower +23300 : +23301 : +23302 : +23303 : +23304 : +23305 : +23306 : +23307 : +23308 : +23309 : +23310 : +23311 : +23312 : +23313 : +23314 : +23315 : +23316 : +23317 : +23318 : +23331 : +23332 : +23334 : +23335 : +23336 : +23337 : +23338 : +23339 : +23340 : +23341 : Bloodstained Chevalier's Goblet +23342 : Bloodstained Black Plume +23343 : Bloodstained Iron Mask +23344 : Bloodstained Flower of Iron +23345 : Bloodstained Final Hour +23346 : Bloodstained Chevalier's Goblet +23347 : Bloodstained Black Plume +23348 : Bloodstained Iron Mask +23349 : Bloodstained Flower of Iron +23350 : Bloodstained Final Hour +23351 : Royal Silver Urn +23352 : Royal Plume +23353 : Royal Masque +23354 : Royal Flora +23355 : Royal Pocket Watch +23356 : Royal Silver Urn +23357 : Royal Plume +23358 : Royal Masque +23359 : Royal Flora +23360 : Royal Pocket Watch +23361 : Witch's Heart Flames +23362 : Witch's Ever-Burning Plume +23363 : Witch's Scorching Hat +23364 : Witch's Flower of Blaze +23365 : Witch's End Time +23366 : Witch's Heart Flames +23367 : Witch's Ever-Burning Plume +23368 : Witch's Scorching Hat +23369 : Witch's Flower of Blaze +23370 : Witch's End Time +23371 : Omen of Thunderstorm +23372 : Survivor of Catastrophe +23373 : Thunder Summoner's Crown +23374 : Thunderbird's Mercy +23375 : Hourglass of Thunder +23376 : Omen of Thunderstorm +23377 : Survivor of Catastrophe +23378 : Thunder Summoner's Crown +23379 : Thunderbird's Mercy +23380 : Hourglass of Thunder +23381 : Goblet of Aquilo +23382 : Plume of Snow +23383 : Crown of Glacier +23384 : Heart of Frost +23385 : Glacial Sand +23386 : Goblet of Aquilo +23387 : Plume of Snow +23388 : Crown of Glacier +23389 : Heart of Frost +23390 : Glacial Sand +23391 : Wanderer's String-Kettle +23392 : Bard's Arrow Feather +23393 : Conductor's Top Hat +23394 : Troupe's Dawnlight +23395 : Concert's Final Hour +23396 : Wanderer's String-Kettle +23397 : Bard's Arrow Feather +23398 : Conductor's Top Hat +23399 : Troupe's Dawnlight +23400 : Concert's Final Hour +23401 : Viridescent Venerer's Vessel +23402 : Viridescent Arrow Feather +23403 : Viridescent Venerer's Diadem +23404 : In Remembrance of Viridescent Fields +23405 : Viridescent Venerer's Determination +23406 : Viridescent Venerer's Vessel +23407 : Viridescent Arrow Feather +23408 : Viridescent Venerer's Diadem +23409 : Viridescent Venerer's Determination +23410 : Viridescent Venerer's Determination +23411 : Gladiator's Intoxication +23412 : Gladiator's Destiny +23413 : Gladiator's Triumphus +23414 : Gladiator's Nostalgia +23415 : Gladiator's Longing +23416 : Gladiator's Intoxication +23417 : Gladiator's Destiny +23418 : Gladiator's Triumphus +23419 : Gladiator's Nostalgia +23420 : Gladiator's Longing +23421 : Maiden's Fleeting Leisure +23422 : Maiden's Heart-stricken Infatuation +23423 : Maiden's Fading Beauty +23424 : Maiden's Distant Love +23425 : Maiden's Passing Youth +23426 : Maiden's Fleeting Leisure +23427 : Maiden's Heart-stricken Infatuation +23428 : Maiden's Fading Beauty +23429 : Maiden's Distant Love +23430 : Maiden's Passing Youth +23431 : Lavawalker's Epiphany +23432 : Lavawalker's Salvation +23433 : Lavawalker's Wisdom +23434 : Lavawalker's Resolution +23435 : Lavawalker's Torment +23436 : Lavawalker's Epiphany +23437 : Lavawalker's Salvation +23438 : Lavawalker's Wisdom +23439 : Lavawalker's Resolution +23440 : Lavawalker's Torment +23441 : Thundersoother's Goblet +23442 : Thundersoother's Plume +23443 : Thundersoother's Diadem +23444 : Thundersoother's Heart +23445 : Hour of Soothing Thunder +23446 : Thundersoother's Goblet +23447 : Thundersoother's Plume +23448 : Thundersoother's Diadem +23449 : Thundersoother's Heart +23450 : Hour of Soothing Thunder +23451 : Frost-Weaved Dignity +23452 : Icebreaker's Resolve +23453 : Broken Rime's Echo +23454 : Snowswept Memory +23455 : Frozen Homeland's Demise +23456 : Frost-Weaved Dignity +23457 : Icebreaker's Resolve +23458 : Broken Rime's Echo +23459 : Snowswept Memory +23460 : Frozen Homeland's Demise +23461 : Maiden's Fleeting Leisure +23462 : Maiden's Heart-stricken Infatuation +23463 : Maiden's Fading Beauty +23464 : Maiden's Distant Love +23465 : Maiden's Passing Youth +23466 : Maiden's Fleeting Leisure +23467 : Maiden's Heart-stricken Infatuation +23468 : Maiden's Fading Beauty +23469 : Maiden's Distant Love +23470 : Maiden's Passing Youth +23471 : Maiden's Fleeting Leisure +23472 : Maiden's Heart-stricken Infatuation +23473 : Maiden's Fading Beauty +23474 : Maiden's Distant Love +23475 : Maiden's Passing Youth +23476 : Maiden's Fleeting Leisure +23477 : Maiden's Heart-stricken Infatuation +23478 : Maiden's Fading Beauty +23479 : Maiden's Distant Love +23480 : Maiden's Passing Youth +23481 : Guardian's Vessel +23482 : Guardian's Sigil +23483 : Guardian's Band +23484 : Guardian's Flower +23485 : Guardian's Clock +23486 : Guardian's Vessel +23487 : Guardian's Sigil +23488 : Guardian's Band +23489 : Guardian's Flower +23490 : Guardian's Clock +23491 : Goblet of Chiseled Crag +23492 : Feather of Jagged Peaks +23493 : Mask of Solitude Basalt +23494 : Flower of Creviced Cliff +23495 : Sundial of Enduring Jade +23496 : Goblet of Chiseled Crag +23497 : Feather of Jagged Peaks +23498 : Mask of Solitude Basalt +23499 : Flower of Creviced Cliff +23500 : Sundial of Enduring Jade +23501 : Summer Night's Waterballoon +23502 : Summer Night's Finale +23503 : Summer Night's Mask +23504 : Summer Night's Bloom +23505 : Summer Night's Moment +23506 : Summer Night's Waterballoon +23507 : Summer Night's Finale +23508 : Summer Night's Mask +23509 : Summer Night's Bloom +23510 : Summer Night's Moment +23511 : Instructor's Tea Cup +23512 : Instructor's Feather Accessory +23513 : Instructor's Cap +23514 : Instructor's Brooch +23515 : Instructor's Pocket Watch +23516 : Instructor's Tea Cup +23517 : Instructor's Feather Accessory +23518 : Instructor's Cap +23519 : Instructor's Brooch +23520 : Instructor's Pocket Watch +23521 : Berserker's Bone Goblet +23522 : Berserker's Indigo Feather +23523 : Berserker's Battle Mask +23524 : Berserker's Rose +23525 : Berserker's Timepiece +23526 : Berserker's Bone Goblet +23527 : Berserker's Indigo Feather +23528 : Berserker's Battle Mask +23529 : Berserker's Rose +23530 : Berserker's Timepiece +23531 : Goblet of Thundering Deep +23532 : Gust of Nostalgia +23533 : Wine-Stained Tricorne +23534 : Gilded Corsage +23535 : Copper Compass +23536 : Goblet of Thundering Deep +23537 : Wine-Stained Tricorne +23538 : Wine-Stained Tricorne +23539 : Gilded Corsage +23540 : Copper Compass +23541 : Noble's Pledging Vessel +23542 : Ceremonial War-Plume +23543 : General's Ancient Helm +23544 : Flower of Accolades +23545 : Orichalceous Time-Dial +23546 : Noble's Pledging Vessel +23547 : Ceremonial War-Plume +23548 : General's Ancient Helm +23549 : Flower of Accolades +23550 : Orichalceous Time-Dial +23551 : Surpassing Cup +23552 : Wise Doctor's Pinion +23553 : Mocking Mask +23554 : Stainless Bloom +23555 : Moment of Cessation +23556 : Surpassing Cup +23557 : Wise Doctor's Pinion +23558 : Mocking Mask +23559 : Stainless Bloom +23560 : Moment of Cessation +23561 : Hopeful Heart +23562 : Shaft of Remembrance +23563 : Capricious Visage +23564 : Entangling Bloom +23565 : Morning Dew's Moment +23566 : Hopeful Heart +23567 : Shaft of Remembrance +23568 : Capricious Visage +23569 : Entangling Bloom +23570 : Morning Dew's Moment +23571 : Scarlet Vessel +23572 : Sundered Feather +23573 : Ornate Kabuto +23574 : Magnificent Tsuba +23575 : Storm Cage +23576 : Scarlet Vessel +23577 : Sundered Feather +23578 : Ornate Kabuto +23579 : Magnificent Tsuba +23580 : Storm Cage +23581 : Calabash of Awakening +23582 : Plume of Luxury +23583 : Skeletal Hat +23584 : Bloom Times +23585 : Song of Life +23586 : Calabash of Awakening +23587 : Plume of Luxury +23588 : Skeletal Hat +23589 : Bloom Times +23590 : Song of Life +23591 : Pearl Cage +23592 : Deep Palace's Plume +23593 : Crown of Watatsumi +23594 : Sea-Dyed Blossom +23595 : Cowry of Parting +23596 : Pearl Cage +23597 : Deep Palace's Plume +23598 : Crown of Watatsumi +23599 : Sea-Dyed Blossom +23600 : Cowry of Parting +23601 : Moment of the Pact +23602 : Feather of Nascent Light +23603 : Thundering Poise +23604 : Flowering Life +23605 : Solar Relic +23606 : Moment of the Pact +23607 : Feather of Nascent Light +23608 : Thundering Poise +23609 : Flowering Life +23610 : Solar Relic +23611 : Chalice of the Font +23612 : Jade Leaf +23613 : Flowing Rings +23614 : Soulscent Bloom +23615 : Symbol of Felicitation +23616 : Chalice of the Font +23617 : Jade Leaf +23618 : Flowing Rings +23619 : Soulscent Bloom +23620 : Symbol of Felicitation +24101 : Gladiator's Intoxication +24102 : Gladiator's Destiny +24103 : Ornate Kabuto +24104 : Magnificent Tsuba +24105 : Storm Cage +24111 : Witch's Heart Flames +24112 : Witch's Ever-Burning Plume +24113 : Witch's Scorching Hat +24114 : Witch's Flower of Blaze +24115 : Witch's End Time +24121 : Viridescent Venerer's Vessel +24122 : Viridescent Arrow Feather +24123 : Gladiator's Triumphus +24124 : Gladiator's Nostalgia +24125 : Gladiator's Longing +24131 : Frost-Weaved Dignity +24132 : Icebreaker's Resolve +24133 : Broken Rime's Echo +24134 : Snowswept Memory +24135 : Frozen Homeland's Demise +24141 : Viridescent Venerer's Vessel +24142 : Viridescent Arrow Feather +24143 : Viridescent Venerer's Diadem +24144 : In Remembrance of Viridescent Fields +24145 : Viridescent Venerer's Determination +24151 : Surpassing Cup +24152 : Wise Doctor's Pinion +24153 : Mocking Mask +24154 : Stainless Bloom +24155 : Moment of Cessation +24161 : Goblet of Thundering Deep +24162 : Gust of Nostalgia +24163 : Wine-Stained Tricorne +24164 : Gilded Corsage +24165 : Copper Compass +24171 : Viridescent Venerer's Vessel +24172 : Viridescent Arrow Feather +24173 : Viridescent Venerer's Diadem +24174 : In Remembrance of Viridescent Fields +24175 : Viridescent Venerer's Determination +24181 : Frost-Weaved Dignity +24182 : Icebreaker's Resolve +24183 : Broken Rime's Echo +24184 : Snowswept Memory +24185 : Frozen Homeland's Demise +24191 : Hopeful Heart +24192 : Shaft of Remembrance +24193 : Capricious Visage +24194 : Entangling Bloom +24195 : Morning Dew's Moment +24201 : Scarlet Vessel +24202 : Sundered Feather +24203 : Ornate Kabuto +24204 : Magnificent Tsuba +24205 : Storm Cage +24211 : Goblet of Thundering Deep +24212 : Gust of Nostalgia +24213 : Wine-Stained Tricorne +24214 : Gilded Corsage +24215 : Copper Compass +24221 : Noble's Pledging Vessel +24222 : Ceremonial War-Plume +24223 : General's Ancient Helm +24224 : Flower of Accolades +24225 : Orichalceous Time-Dial +24231 : Witch's Heart Flames +24232 : Witch's Ever-Burning Plume +24233 : Witch's Scorching Hat +24234 : Witch's Flower of Blaze +24235 : Witch's End Time +24241 : Omen of Thunderstorm +24242 : Survivor of Catastrophe +24243 : Gladiator's Triumphus +24244 : Gladiator's Nostalgia +24245 : Gladiator's Longing +24251 : Witch's Heart Flames +24252 : Witch's Ever-Burning Plume +24253 : Witch's Scorching Hat +24254 : Witch's Flower of Blaze +24255 : Witch's End Time +24261 : Royal Silver Urn +24262 : Royal Plume +24263 : Royal Masque +24264 : Royal Flora +24265 : Royal Pocket Watch +24271 : Viridescent Venerer's Vessel +24272 : Viridescent Arrow Feather +24273 : Viridescent Venerer's Diadem +24274 : In Remembrance of Viridescent Fields +24275 : Viridescent Venerer's Determination +24281 : Maiden's Fleeting Leisure +24282 : Maiden's Heart-Stricken Infatuation +24283 : Maiden's Fading Beauty +24284 : Maiden's Distant Love +24285 : Maiden's Passing Youth +24291 : Calabash of Awakening +24292 : Plume of Luxury +24293 : Skeletal Hat +24294 : Bloom Times +24295 : Song of Life +24301 : Calabash of Awakening +24302 : Plume of Luxury +24303 : Skeletal Hat +24304 : Bloom Times +24305 : Song of Life +24311 : Scarlet Vessel +24312 : Sundered Feather +24313 : Ornate Kabuto +24314 : Magnificent Tsuba +24315 : Storm Cage +24321 : Gladiator's Intoxication +24322 : Gladiator's Destiny +24323 : Gladiator's Triumphus +24324 : Thunderbird's Mercy +24325 : Hourglass of Thunder +24331 : Gladiator's Intoxication +24332 : Gladiator's Destiny +24333 : Gladiator's Triumphus +24334 : Gladiator's Nostalgia +24335 : Gladiator's Longing +24341 : Gladiator's Intoxication +24342 : Gladiator's Destiny +24343 : Gladiator's Triumphus +24344 : Gladiator's Nostalgia +24345 : Gladiator's Longing +24351 : Gladiator's Intoxication +24352 : Gladiator's Destiny +24353 : Gladiator's Triumphus +24354 : Gladiator's Nostalgia +24355 : Gladiator's Longing +24361 : Gladiator's Intoxication +24362 : Gladiator's Destiny +24363 : Gladiator's Triumphus +24364 : Gladiator's Nostalgia +24365 : Gladiator's Longing +24601 : Scarlet Vessel +24602 : Sundered Feather +24603 : Ornate Kabuto +24604 : Magnificent Tsuba +24605 : Storm Cage +24611 : Scarlet Vessel +24612 : Sundered Feather +24613 : Ornate Kabuto +24614 : Magnificent Tsuba +24615 : Storm Cage +24621 : Scarlet Vessel +24622 : Sundered Feather +24623 : Ornate Kabuto +24624 : Magnificent Tsuba +24625 : Storm Cage +24631 : Royal Silver Urn +24632 : Royal Plume +24633 : Royal Masque +24634 : Royal Flora +24635 : Royal Pocket Watch +24641 : Royal Silver Urn +24642 : Royal Plume +24643 : Royal Masque +24644 : Royal Flora +24645 : Royal Pocket Watch +24651 : Viridescent Venerer's Vessel +24652 : Viridescent Arrow Feather +24653 : Viridescent Venerer's Diadem +24654 : In Remembrance of Viridescent Fields +24655 : Viridescent Venerer's Determination +24661 : Surpassing Cup +24662 : Wise Doctor's Pinion +24663 : Mocking Mask +24664 : Stainless Bloom +24665 : Moment of Cessation +24671 : Royal Silver Urn +24672 : Royal Plume +24673 : Royal Masque +24674 : Royal Flora +24675 : Royal Pocket Watch +24681 : Witch's Heart Flames +24682 : Witch's Ever-Burning Plume +24683 : Witch's Scorching Hat +24684 : Witch's Flower of Blaze +24685 : Witch's End Time +24691 : Viridescent Venerer's Vessel +24692 : Viridescent Arrow Feather +24693 : Viridescent Venerer's Diadem +24694 : In Remembrance of Viridescent Fields +24695 : Viridescent Venerer's Determination +24701 : Noble's Pledging Vessel +24702 : Ceremonial War-Plume +24703 : General's Ancient Helm +24704 : Flower of Accolades +24705 : Orichalceous Time-Dial +24711 : Bloodstained Chevalier's Goblet +24712 : Bloodstained Black Plume +24713 : Bloodstained Iron Mask +24714 : Bloodstained Flower of Iron +24715 : Bloodstained Final Hour +24721 : Omen of Thunderstorm +24722 : Survivor of Catastrophe +24723 : Thunder Summoner's Crown +24724 : Thunderbird's Mercy +24725 : Hourglass of Thunder +24731 : Scarlet Vessel +24732 : Sundered Feather +24733 : Ornate Kabuto +24734 : Magnificent Tsuba +24735 : Storm Cage +24741 : Gladiator's Intoxication +24742 : Gladiator's Destiny +24743 : Mask of Solitude Basalt +24744 : Flower of Creviced Cliff +24745 : Sundial of Enduring Jade +24751 : Gladiator's Intoxication +24752 : Gladiator's Destiny +24753 : Thunder Summoner's Crown +24754 : Thunderbird's Mercy +24755 : Hourglass of Thunder +24761 : Gladiator's Intoxication +24762 : Gladiator's Destiny +24763 : Gladiator's Triumphus +24764 : Gladiator's Nostalgia +24765 : Gladiator's Longing +24771 : Scarlet Vessel +24772 : Sundered Feather +24773 : Ornate Kabuto +24774 : Magnificent Tsuba +24775 : Storm Cage +24781 : Summer Night's Waterballoon +24782 : Summer Night's Finale +24783 : Summer Night's Mask +24784 : Summer Night's Bloom +24785 : Summer Night's Moment +24791 : Maiden's Fleeting Leisure +24792 : Maiden's Heart-Stricken Infatuation +24793 : Maiden's Fading Beauty +24794 : Maiden's Distant Love +24795 : Maiden's Passing Youth +24801 : Scarlet Vessel +24802 : Sundered Feather +24803 : Ornate Kabuto +24804 : Magnificent Tsuba +24805 : Storm Cage +24811 : Calabash of Awakening +24812 : Plume of Luxury +24813 : Skeletal Hat +24814 : Bloom Times +24815 : Song of Life +24821 : Calabash of Awakening +24822 : Plume of Luxury +24823 : Skeletal Hat +24824 : Bloom Times +24825 : Song of Life +51110 : Goblet of the Sojourner +51111 : Goblet of the Sojourner +51112 : Goblet of the Sojourner +51113 : Goblet of the Sojourner +51114 : Goblet of the Sojourner +51120 : Feather of Homecoming +51121 : Feather of Homecoming +51122 : Feather of Homecoming +51123 : Feather of Homecoming +51124 : Feather of Homecoming +51130 : Crown of Parting +51131 : Crown of Parting +51132 : Crown of Parting +51133 : Crown of Parting +51134 : Crown of Parting +51140 : Heart of Comradeship +51141 : Heart of Comradeship +51142 : Heart of Comradeship +51143 : Heart of Comradeship +51144 : Heart of Comradeship +51150 : Sundial of the Sojourner +51151 : Sundial of the Sojourner +51152 : Sundial of the Sojourner +51153 : Sundial of the Sojourner +51154 : Sundial of the Sojourner +51210 : Goblet of the Sojourner +51211 : Goblet of the Sojourner +51212 : Goblet of the Sojourner +51213 : Goblet of the Sojourner +51214 : Goblet of the Sojourner +51220 : Feather of Homecoming +51221 : Feather of Homecoming +51222 : Feather of Homecoming +51223 : Feather of Homecoming +51224 : Feather of Homecoming +51230 : Crown of Parting +51231 : Crown of Parting +51232 : Crown of Parting +51233 : Crown of Parting +51234 : Crown of Parting +51240 : Heart of Comradeship +51241 : Heart of Comradeship +51242 : Heart of Comradeship +51243 : Heart of Comradeship +51244 : Heart of Comradeship +51250 : Sundial of the Sojourner +51251 : Sundial of the Sojourner +51252 : Sundial of the Sojourner +51253 : Sundial of the Sojourner +51254 : Sundial of the Sojourner +51310 : Goblet of the Sojourner +51311 : Goblet of the Sojourner +51312 : Goblet of the Sojourner +51313 : Goblet of the Sojourner +51314 : Goblet of the Sojourner +51320 : Feather of Homecoming +51321 : Feather of Homecoming +51322 : Feather of Homecoming +51323 : Feather of Homecoming +51324 : Feather of Homecoming +51330 : Crown of Parting +51331 : Crown of Parting +51332 : Crown of Parting +51333 : Crown of Parting +51334 : Crown of Parting +51340 : Heart of Comradeship +51341 : Heart of Comradeship +51342 : Heart of Comradeship +51343 : Heart of Comradeship +51344 : Heart of Comradeship +51350 : Sundial of the Sojourner +51351 : Sundial of the Sojourner +51352 : Sundial of the Sojourner +51353 : Sundial of the Sojourner +51354 : Sundial of the Sojourner +51410 : Goblet of the Sojourner +51411 : Goblet of the Sojourner +51412 : Goblet of the Sojourner +51413 : Goblet of the Sojourner +51414 : Goblet of the Sojourner +51420 : Feather of Homecoming +51421 : Feather of Homecoming +51422 : Feather of Homecoming +51423 : Feather of Homecoming +51424 : Feather of Homecoming +51430 : Crown of Parting +51431 : Crown of Parting +51432 : Crown of Parting +51433 : Crown of Parting +51434 : Crown of Parting +51440 : Heart of Comradeship +51441 : Heart of Comradeship +51442 : Heart of Comradeship +51443 : Heart of Comradeship +51444 : Heart of Comradeship +51450 : Sundial of the Sojourner +51451 : Sundial of the Sojourner +51452 : Sundial of the Sojourner +51453 : Sundial of the Sojourner +51454 : Sundial of the Sojourner +51510 : Goblet of the Sojourner +51511 : Goblet of the Sojourner +51512 : Goblet of the Sojourner +51513 : Goblet of the Sojourner +51514 : Goblet of the Sojourner +51520 : Feather of Homecoming +51521 : Feather of Homecoming +51522 : Feather of Homecoming +51523 : Feather of Homecoming +51524 : Feather of Homecoming +51530 : Crown of Parting +51531 : Crown of Parting +51532 : Crown of Parting +51533 : Crown of Parting +51534 : Crown of Parting +51540 : Heart of Comradeship +51541 : Heart of Comradeship +51542 : Heart of Comradeship +51543 : Heart of Comradeship +51544 : Heart of Comradeship +51550 : Sundial of the Sojourner +51551 : Sundial of the Sojourner +51552 : Sundial of the Sojourner +51553 : Sundial of the Sojourner +51554 : Sundial of the Sojourner +52110 : Outset of the Brave +52111 : Outset of the Brave +52112 : Outset of the Brave +52113 : Outset of the Brave +52114 : Outset of the Brave +52120 : Prospect of the Brave +52121 : Prospect of the Brave +52122 : Prospect of the Brave +52123 : Prospect of the Brave +52124 : Prospect of the Brave +52130 : Crown of the Brave +52131 : Crown of the Brave +52132 : Crown of the Brave +52133 : Crown of the Brave +52134 : Crown of the Brave +52140 : Medal of the Brave +52141 : Medal of the Brave +52142 : Medal of the Brave +52143 : Medal of the Brave +52144 : Medal of the Brave +52150 : Fortitude of the Brave +52151 : Fortitude of the Brave +52152 : Fortitude of the Brave +52153 : Fortitude of the Brave +52154 : Fortitude of the Brave +52210 : Outset of the Brave +52211 : Outset of the Brave +52212 : Outset of the Brave +52213 : Outset of the Brave +52214 : Outset of the Brave +52220 : Prospect of the Brave +52221 : Prospect of the Brave +52222 : Prospect of the Brave +52223 : Prospect of the Brave +52224 : Prospect of the Brave +52230 : Crown of the Brave +52231 : Crown of the Brave +52232 : Crown of the Brave +52233 : Crown of the Brave +52234 : Crown of the Brave +52240 : Medal of the Brave +52241 : Medal of the Brave +52242 : Medal of the Brave +52243 : Medal of the Brave +52244 : Medal of the Brave +52250 : Fortitude of the Brave +52251 : Fortitude of the Brave +52252 : Fortitude of the Brave +52253 : Fortitude of the Brave +52254 : Fortitude of the Brave +52310 : Outset of the Brave +52311 : Outset of the Brave +52312 : Outset of the Brave +52313 : Outset of the Brave +52314 : Outset of the Brave +52320 : Prospect of the Brave +52321 : Prospect of the Brave +52322 : Prospect of the Brave +52323 : Prospect of the Brave +52324 : Prospect of the Brave +52330 : Crown of the Brave +52331 : Crown of the Brave +52332 : Crown of the Brave +52333 : Crown of the Brave +52334 : Crown of the Brave +52340 : Medal of the Brave +52341 : Medal of the Brave +52342 : Medal of the Brave +52343 : Medal of the Brave +52344 : Medal of the Brave +52350 : Fortitude of the Brave +52351 : Fortitude of the Brave +52352 : Fortitude of the Brave +52353 : Fortitude of the Brave +52354 : Fortitude of the Brave +52410 : Outset of the Brave +52411 : Outset of the Brave +52412 : Outset of the Brave +52413 : Outset of the Brave +52414 : Outset of the Brave +52420 : Prospect of the Brave +52421 : Prospect of the Brave +52422 : Prospect of the Brave +52423 : Prospect of the Brave +52424 : Prospect of the Brave +52430 : Crown of the Brave +52431 : Crown of the Brave +52432 : Crown of the Brave +52433 : Crown of the Brave +52434 : Crown of the Brave +52440 : Medal of the Brave +52441 : Medal of the Brave +52442 : Medal of the Brave +52443 : Medal of the Brave +52444 : Medal of the Brave +52450 : Fortitude of the Brave +52451 : Fortitude of the Brave +52452 : Fortitude of the Brave +52453 : Fortitude of the Brave +52454 : Fortitude of the Brave +52510 : Outset of the Brave +52511 : Outset of the Brave +52512 : Outset of the Brave +52513 : Outset of the Brave +52514 : Outset of the Brave +52520 : Prospect of the Brave +52521 : Prospect of the Brave +52522 : Prospect of the Brave +52523 : Prospect of the Brave +52524 : Prospect of the Brave +52530 : Crown of the Brave +52531 : Crown of the Brave +52532 : Crown of the Brave +52533 : Crown of the Brave +52534 : Crown of the Brave +52540 : Medal of the Brave +52541 : Medal of the Brave +52542 : Medal of the Brave +52543 : Medal of the Brave +52544 : Medal of the Brave +52550 : Fortitude of the Brave +52551 : Fortitude of the Brave +52552 : Fortitude of the Brave +52553 : Fortitude of the Brave +52554 : Fortitude of the Brave +53110 : Guardian's Vessel +53111 : Guardian's Vessel +53112 : Guardian's Vessel +53113 : Guardian's Vessel +53114 : Guardian's Vessel +53120 : Guardian's Sigil +53121 : Guardian's Sigil +53122 : Guardian's Sigil +53123 : Guardian's Sigil +53124 : Guardian's Sigil +53130 : Guardian's Band +53131 : Guardian's Band +53132 : Guardian's Band +53133 : Guardian's Band +53134 : Guardian's Band +53140 : Guardian's Flower +53141 : Guardian's Flower +53142 : Guardian's Flower +53143 : Guardian's Flower +53144 : Guardian's Flower +53150 : Guardian's Clock +53151 : Guardian's Clock +53152 : Guardian's Clock +53153 : Guardian's Clock +53154 : Guardian's Clock +53210 : Guardian's Vessel +53211 : Guardian's Vessel +53212 : Guardian's Vessel +53213 : Guardian's Vessel +53214 : Guardian's Vessel +53220 : Guardian's Sigil +53221 : Guardian's Sigil +53222 : Guardian's Sigil +53223 : Guardian's Sigil +53224 : Guardian's Sigil +53230 : Guardian's Band +53231 : Guardian's Band +53232 : Guardian's Band +53233 : Guardian's Band +53234 : Guardian's Band +53240 : Guardian's Flower +53241 : Guardian's Flower +53242 : Guardian's Flower +53243 : Guardian's Flower +53244 : Guardian's Flower +53250 : Guardian's Clock +53251 : Guardian's Clock +53252 : Guardian's Clock +53253 : Guardian's Clock +53254 : Guardian's Clock +53310 : Guardian's Vessel +53311 : Guardian's Vessel +53312 : Guardian's Vessel +53313 : Guardian's Vessel +53314 : Guardian's Vessel +53320 : Guardian's Sigil +53321 : Guardian's Sigil +53322 : Guardian's Sigil +53323 : Guardian's Sigil +53324 : Guardian's Sigil +53330 : Guardian's Band +53331 : Guardian's Band +53332 : Guardian's Band +53333 : Guardian's Band +53334 : Guardian's Band +53340 : Guardian's Flower +53341 : Guardian's Flower +53342 : Guardian's Flower +53343 : Guardian's Flower +53344 : Guardian's Flower +53350 : Guardian's Clock +53351 : Guardian's Clock +53352 : Guardian's Clock +53353 : Guardian's Clock +53354 : Guardian's Clock +53410 : Guardian's Vessel +53411 : Guardian's Vessel +53412 : Guardian's Vessel +53413 : Guardian's Vessel +53414 : Guardian's Vessel +53420 : Guardian's Sigil +53421 : Guardian's Sigil +53422 : Guardian's Sigil +53423 : Guardian's Sigil +53424 : Guardian's Sigil +53430 : Guardian's Band +53431 : Guardian's Band +53432 : Guardian's Band +53433 : Guardian's Band +53434 : Guardian's Band +53440 : Guardian's Flower +53441 : Guardian's Flower +53442 : Guardian's Flower +53443 : Guardian's Flower +53444 : Guardian's Flower +53450 : Guardian's Clock +53451 : Guardian's Clock +53452 : Guardian's Clock +53453 : Guardian's Clock +53454 : Guardian's Clock +53510 : Guardian's Vessel +53511 : Guardian's Vessel +53512 : Guardian's Vessel +53513 : Guardian's Vessel +53514 : Guardian's Vessel +53520 : Guardian's Sigil +53521 : Guardian's Sigil +53522 : Guardian's Sigil +53523 : Guardian's Sigil +53524 : Guardian's Sigil +53530 : Guardian's Band +53531 : Guardian's Band +53532 : Guardian's Band +53533 : Guardian's Band +53534 : Guardian's Band +53540 : Guardian's Flower +53541 : Guardian's Flower +53542 : Guardian's Flower +53543 : Guardian's Flower +53544 : Guardian's Flower +53550 : Guardian's Clock +53551 : Guardian's Clock +53552 : Guardian's Clock +53553 : Guardian's Clock +53554 : Guardian's Clock +54110 : Tiny Miracle's Goblet +54111 : Tiny Miracle's Goblet +54112 : Tiny Miracle's Goblet +54113 : Tiny Miracle's Goblet +54114 : Tiny Miracle's Goblet +54120 : Tiny Miracle's Feather +54121 : Tiny Miracle's Feather +54122 : Tiny Miracle's Feather +54123 : Tiny Miracle's Feather +54124 : Tiny Miracle's Feather +54130 : Tiny Miracle's Earrings +54131 : Tiny Miracle's Earrings +54132 : Tiny Miracle's Earrings +54133 : Tiny Miracle's Earrings +54134 : Tiny Miracle's Earrings +54140 : Tiny Miracle's Flower +54141 : Tiny Miracle's Flower +54142 : Tiny Miracle's Flower +54143 : Tiny Miracle's Flower +54144 : Tiny Miracle's Flower +54150 : Tiny Miracle's Hourglass +54151 : Tiny Miracle's Hourglass +54152 : Tiny Miracle's Hourglass +54153 : Tiny Miracle's Hourglass +54154 : Tiny Miracle's Hourglass +54210 : Tiny Miracle's Goblet +54211 : Tiny Miracle's Goblet +54212 : Tiny Miracle's Goblet +54213 : Tiny Miracle's Goblet +54214 : Tiny Miracle's Goblet +54220 : Tiny Miracle's Feather +54221 : Tiny Miracle's Feather +54222 : Tiny Miracle's Feather +54223 : Tiny Miracle's Feather +54224 : Tiny Miracle's Feather +54230 : Tiny Miracle's Earrings +54231 : Tiny Miracle's Earrings +54232 : Tiny Miracle's Earrings +54233 : Tiny Miracle's Earrings +54234 : Tiny Miracle's Earrings +54240 : Tiny Miracle's Flower +54241 : Tiny Miracle's Flower +54242 : Tiny Miracle's Flower +54243 : Tiny Miracle's Flower +54244 : Tiny Miracle's Flower +54250 : Tiny Miracle's Hourglass +54251 : Tiny Miracle's Hourglass +54252 : Tiny Miracle's Hourglass +54253 : Tiny Miracle's Hourglass +54254 : Tiny Miracle's Hourglass +54310 : Tiny Miracle's Goblet +54311 : Tiny Miracle's Goblet +54312 : Tiny Miracle's Goblet +54313 : Tiny Miracle's Goblet +54314 : Tiny Miracle's Goblet +54320 : Tiny Miracle's Feather +54321 : Tiny Miracle's Feather +54322 : Tiny Miracle's Feather +54323 : Tiny Miracle's Feather +54324 : Tiny Miracle's Feather +54330 : Tiny Miracle's Earrings +54331 : Tiny Miracle's Earrings +54332 : Tiny Miracle's Earrings +54333 : Tiny Miracle's Earrings +54334 : Tiny Miracle's Earrings +54340 : Tiny Miracle's Flower +54341 : Tiny Miracle's Flower +54342 : Tiny Miracle's Flower +54343 : Tiny Miracle's Flower +54344 : Tiny Miracle's Flower +54350 : Tiny Miracle's Hourglass +54351 : Tiny Miracle's Hourglass +54352 : Tiny Miracle's Hourglass +54353 : Tiny Miracle's Hourglass +54354 : Tiny Miracle's Hourglass +54410 : Tiny Miracle's Goblet +54411 : Tiny Miracle's Goblet +54412 : Tiny Miracle's Goblet +54413 : Tiny Miracle's Goblet +54414 : Tiny Miracle's Goblet +54420 : Tiny Miracle's Feather +54421 : Tiny Miracle's Feather +54422 : Tiny Miracle's Feather +54423 : Tiny Miracle's Feather +54424 : Tiny Miracle's Feather +54430 : Tiny Miracle's Earrings +54431 : Tiny Miracle's Earrings +54432 : Tiny Miracle's Earrings +54433 : Tiny Miracle's Earrings +54434 : Tiny Miracle's Earrings +54440 : Tiny Miracle's Flower +54441 : Tiny Miracle's Flower +54442 : Tiny Miracle's Flower +54443 : Tiny Miracle's Flower +54444 : Tiny Miracle's Flower +54450 : Tiny Miracle's Hourglass +54451 : Tiny Miracle's Hourglass +54452 : Tiny Miracle's Hourglass +54453 : Tiny Miracle's Hourglass +54454 : Tiny Miracle's Hourglass +54510 : Tiny Miracle's Goblet +54511 : Tiny Miracle's Goblet +54512 : Tiny Miracle's Goblet +54513 : Tiny Miracle's Goblet +54514 : Tiny Miracle's Goblet +54520 : Tiny Miracle's Feather +54521 : Tiny Miracle's Feather +54522 : Tiny Miracle's Feather +54523 : Tiny Miracle's Feather +54524 : Tiny Miracle's Feather +54530 : Tiny Miracle's Earrings +54531 : Tiny Miracle's Earrings +54532 : Tiny Miracle's Earrings +54533 : Tiny Miracle's Earrings +54534 : Tiny Miracle's Earrings +54540 : Tiny Miracle's Flower +54541 : Tiny Miracle's Flower +54542 : Tiny Miracle's Flower +54543 : Tiny Miracle's Flower +54544 : Tiny Miracle's Flower +54550 : Tiny Miracle's Hourglass +54551 : Tiny Miracle's Hourglass +54552 : Tiny Miracle's Hourglass +54553 : Tiny Miracle's Hourglass +54554 : Tiny Miracle's Hourglass +55110 : Berserker's Bone Goblet +55111 : Berserker's Bone Goblet +55112 : Berserker's Bone Goblet +55113 : Berserker's Bone Goblet +55114 : Berserker's Bone Goblet +55120 : Berserker's Indigo Feather +55121 : Berserker's Indigo Feather +55122 : Berserker's Indigo Feather +55123 : Berserker's Indigo Feather +55124 : Berserker's Indigo Feather +55130 : Berserker's Battle Mask +55131 : Berserker's Battle Mask +55132 : Berserker's Battle Mask +55133 : Berserker's Battle Mask +55134 : Berserker's Battle Mask +55140 : Berserker's Rose +55141 : Berserker's Rose +55142 : Berserker's Rose +55143 : Berserker's Rose +55144 : Berserker's Rose +55150 : Berserker's Timepiece +55151 : Berserker's Timepiece +55152 : Berserker's Timepiece +55153 : Berserker's Timepiece +55154 : Berserker's Timepiece +55210 : Berserker's Bone Goblet +55211 : Berserker's Bone Goblet +55212 : Berserker's Bone Goblet +55213 : Berserker's Bone Goblet +55214 : Berserker's Bone Goblet +55220 : Berserker's Indigo Feather +55221 : Berserker's Indigo Feather +55222 : Berserker's Indigo Feather +55223 : Berserker's Indigo Feather +55224 : Berserker's Indigo Feather +55230 : Berserker's Battle Mask +55231 : Berserker's Battle Mask +55232 : Berserker's Battle Mask +55233 : Berserker's Battle Mask +55234 : Berserker's Battle Mask +55240 : Berserker's Rose +55241 : Berserker's Rose +55242 : Berserker's Rose +55243 : Berserker's Rose +55244 : Berserker's Rose +55250 : Berserker's Timepiece +55251 : Berserker's Timepiece +55252 : Berserker's Timepiece +55253 : Berserker's Timepiece +55254 : Berserker's Timepiece +55310 : Berserker's Bone Goblet +55311 : Berserker's Bone Goblet +55312 : Berserker's Bone Goblet +55313 : Berserker's Bone Goblet +55314 : Berserker's Bone Goblet +55320 : Berserker's Indigo Feather +55321 : Berserker's Indigo Feather +55322 : Berserker's Indigo Feather +55323 : Berserker's Indigo Feather +55324 : Berserker's Indigo Feather +55330 : Berserker's Battle Mask +55331 : Berserker's Battle Mask +55332 : Berserker's Battle Mask +55333 : Berserker's Battle Mask +55334 : Berserker's Battle Mask +55340 : Berserker's Rose +55341 : Berserker's Rose +55342 : Berserker's Rose +55343 : Berserker's Rose +55344 : Berserker's Rose +55350 : Berserker's Timepiece +55351 : Berserker's Timepiece +55352 : Berserker's Timepiece +55353 : Berserker's Timepiece +55354 : Berserker's Timepiece +55410 : Berserker's Bone Goblet +55411 : Berserker's Bone Goblet +55412 : Berserker's Bone Goblet +55413 : Berserker's Bone Goblet +55414 : Berserker's Bone Goblet +55420 : Berserker's Indigo Feather +55421 : Berserker's Indigo Feather +55422 : Berserker's Indigo Feather +55423 : Berserker's Indigo Feather +55424 : Berserker's Indigo Feather +55430 : Berserker's Battle Mask +55431 : Berserker's Battle Mask +55432 : Berserker's Battle Mask +55433 : Berserker's Battle Mask +55434 : Berserker's Battle Mask +55440 : Berserker's Rose +55441 : Berserker's Rose +55442 : Berserker's Rose +55443 : Berserker's Rose +55444 : Berserker's Rose +55450 : Berserker's Timepiece +55451 : Berserker's Timepiece +55452 : Berserker's Timepiece +55453 : Berserker's Timepiece +55454 : Berserker's Timepiece +55510 : Berserker's Bone Goblet +55511 : Berserker's Bone Goblet +55512 : Berserker's Bone Goblet +55513 : Berserker's Bone Goblet +55514 : Berserker's Bone Goblet +55520 : Berserker's Indigo Feather +55521 : Berserker's Indigo Feather +55522 : Berserker's Indigo Feather +55523 : Berserker's Indigo Feather +55524 : Berserker's Indigo Feather +55530 : Berserker's Battle Mask +55531 : Berserker's Battle Mask +55532 : Berserker's Battle Mask +55533 : Berserker's Battle Mask +55534 : Berserker's Battle Mask +55540 : Berserker's Rose +55541 : Berserker's Rose +55542 : Berserker's Rose +55543 : Berserker's Rose +55544 : Berserker's Rose +55550 : Berserker's Timepiece +55551 : Berserker's Timepiece +55552 : Berserker's Timepiece +55553 : Berserker's Timepiece +55554 : Berserker's Timepiece +56110 : Martial Artist's Wine Cup +56111 : Martial Artist's Wine Cup +56112 : Martial Artist's Wine Cup +56113 : Martial Artist's Wine Cup +56114 : Martial Artist's Wine Cup +56120 : Martial Artist's Feather Accessory +56121 : Martial Artist's Feather Accessory +56122 : Martial Artist's Feather Accessory +56123 : Martial Artist's Feather Accessory +56124 : Martial Artist's Feather Accessory +56130 : Martial Artist's Bandana +56131 : Martial Artist's Bandana +56132 : Martial Artist's Bandana +56133 : Martial Artist's Bandana +56134 : Martial Artist's Bandana +56140 : Martial Artist's Red Flower +56141 : Martial Artist's Red Flower +56142 : Martial Artist's Red Flower +56143 : Martial Artist's Red Flower +56144 : Martial Artist's Red Flower +56150 : Martial Artist's Water Hourglass +56151 : Martial Artist's Water Hourglass +56152 : Martial Artist's Water Hourglass +56153 : Martial Artist's Water Hourglass +56154 : Martial Artist's Water Hourglass +56210 : Martial Artist's Wine Cup +56211 : Martial Artist's Wine Cup +56212 : Martial Artist's Wine Cup +56213 : Martial Artist's Wine Cup +56214 : Martial Artist's Wine Cup +56220 : Martial Artist's Feather Accessory +56221 : Martial Artist's Feather Accessory +56222 : Martial Artist's Feather Accessory +56223 : Martial Artist's Feather Accessory +56224 : Martial Artist's Feather Accessory +56230 : Martial Artist's Bandana +56231 : Martial Artist's Bandana +56232 : Martial Artist's Bandana +56233 : Martial Artist's Bandana +56234 : Martial Artist's Bandana +56240 : Martial Artist's Red Flower +56241 : Martial Artist's Red Flower +56242 : Martial Artist's Red Flower +56243 : Martial Artist's Red Flower +56244 : Martial Artist's Red Flower +56250 : Martial Artist's Water Hourglass +56251 : Martial Artist's Water Hourglass +56252 : Martial Artist's Water Hourglass +56253 : Martial Artist's Water Hourglass +56254 : Martial Artist's Water Hourglass +56310 : Martial Artist's Wine Cup +56311 : Martial Artist's Wine Cup +56312 : Martial Artist's Wine Cup +56313 : Martial Artist's Wine Cup +56314 : Martial Artist's Wine Cup +56320 : Martial Artist's Feather Accessory +56321 : Martial Artist's Feather Accessory +56322 : Martial Artist's Feather Accessory +56323 : Martial Artist's Feather Accessory +56324 : Martial Artist's Feather Accessory +56330 : Martial Artist's Bandana +56331 : Martial Artist's Bandana +56332 : Martial Artist's Bandana +56333 : Martial Artist's Bandana +56334 : Martial Artist's Bandana +56340 : Martial Artist's Red Flower +56341 : Martial Artist's Red Flower +56342 : Martial Artist's Red Flower +56343 : Martial Artist's Red Flower +56344 : Martial Artist's Red Flower +56350 : Martial Artist's Water Hourglass +56351 : Martial Artist's Water Hourglass +56352 : Martial Artist's Water Hourglass +56353 : Martial Artist's Water Hourglass +56354 : Martial Artist's Water Hourglass +56410 : Martial Artist's Wine Cup +56411 : Martial Artist's Wine Cup +56412 : Martial Artist's Wine Cup +56413 : Martial Artist's Wine Cup +56414 : Martial Artist's Wine Cup +56420 : Martial Artist's Feather Accessory +56421 : Martial Artist's Feather Accessory +56422 : Martial Artist's Feather Accessory +56423 : Martial Artist's Feather Accessory +56424 : Martial Artist's Feather Accessory +56430 : Martial Artist's Bandana +56431 : Martial Artist's Bandana +56432 : Martial Artist's Bandana +56433 : Martial Artist's Bandana +56434 : Martial Artist's Bandana +56440 : Martial Artist's Red Flower +56441 : Martial Artist's Red Flower +56442 : Martial Artist's Red Flower +56443 : Martial Artist's Red Flower +56444 : Martial Artist's Red Flower +56450 : Martial Artist's Water Hourglass +56451 : Martial Artist's Water Hourglass +56452 : Martial Artist's Water Hourglass +56453 : Martial Artist's Water Hourglass +56454 : Martial Artist's Water Hourglass +56510 : Martial Artist's Wine Cup +56511 : Martial Artist's Wine Cup +56512 : Martial Artist's Wine Cup +56513 : Martial Artist's Wine Cup +56514 : Martial Artist's Wine Cup +56520 : Martial Artist's Feather Accessory +56521 : Martial Artist's Feather Accessory +56522 : Martial Artist's Feather Accessory +56523 : Martial Artist's Feather Accessory +56524 : Martial Artist's Feather Accessory +56530 : Martial Artist's Bandana +56531 : Martial Artist's Bandana +56532 : Martial Artist's Bandana +56533 : Martial Artist's Bandana +56534 : Martial Artist's Bandana +56540 : Martial Artist's Red Flower +56541 : Martial Artist's Red Flower +56542 : Martial Artist's Red Flower +56543 : Martial Artist's Red Flower +56544 : Martial Artist's Red Flower +56550 : Martial Artist's Water Hourglass +56551 : Martial Artist's Water Hourglass +56552 : Martial Artist's Water Hourglass +56553 : Martial Artist's Water Hourglass +56554 : Martial Artist's Water Hourglass +57110 : Instructor's Tea Cup +57111 : Instructor's Tea Cup +57112 : Instructor's Tea Cup +57113 : Instructor's Tea Cup +57114 : Instructor's Tea Cup +57120 : Instructor's Feather Accessory +57121 : Instructor's Feather Accessory +57122 : Instructor's Feather Accessory +57123 : Instructor's Feather Accessory +57124 : Instructor's Feather Accessory +57130 : Instructor's Cap +57131 : Instructor's Cap +57132 : Instructor's Cap +57133 : Instructor's Cap +57134 : Instructor's Cap +57140 : Instructor's Brooch +57141 : Instructor's Brooch +57142 : Instructor's Brooch +57143 : Instructor's Brooch +57144 : Instructor's Brooch +57150 : Instructor's Pocket Watch +57151 : Instructor's Pocket Watch +57152 : Instructor's Pocket Watch +57153 : Instructor's Pocket Watch +57154 : Instructor's Pocket Watch +57210 : Instructor's Tea Cup +57211 : Instructor's Tea Cup +57212 : Instructor's Tea Cup +57213 : Instructor's Tea Cup +57214 : Instructor's Tea Cup +57220 : Instructor's Feather Accessory +57221 : Instructor's Feather Accessory +57222 : Instructor's Feather Accessory +57223 : Instructor's Feather Accessory +57224 : Instructor's Feather Accessory +57230 : Instructor's Cap +57231 : Instructor's Cap +57232 : Instructor's Cap +57233 : Instructor's Cap +57234 : Instructor's Cap +57240 : Instructor's Brooch +57241 : Instructor's Brooch +57242 : Instructor's Brooch +57243 : Instructor's Brooch +57244 : Instructor's Brooch +57250 : Instructor's Pocket Watch +57251 : Instructor's Pocket Watch +57252 : Instructor's Pocket Watch +57253 : Instructor's Pocket Watch +57254 : Instructor's Pocket Watch +57310 : Instructor's Tea Cup +57311 : Instructor's Tea Cup +57312 : Instructor's Tea Cup +57313 : Instructor's Tea Cup +57314 : Instructor's Tea Cup +57320 : Instructor's Feather Accessory +57321 : Instructor's Feather Accessory +57322 : Instructor's Feather Accessory +57323 : Instructor's Feather Accessory +57324 : Instructor's Feather Accessory +57330 : Instructor's Cap +57331 : Instructor's Cap +57332 : Instructor's Cap +57333 : Instructor's Cap +57334 : Instructor's Cap +57340 : Instructor's Brooch +57341 : Instructor's Brooch +57342 : Instructor's Brooch +57343 : Instructor's Brooch +57344 : Instructor's Brooch +57350 : Instructor's Pocket Watch +57351 : Instructor's Pocket Watch +57352 : Instructor's Pocket Watch +57353 : Instructor's Pocket Watch +57354 : Instructor's Pocket Watch +57410 : Instructor's Tea Cup +57411 : Instructor's Tea Cup +57412 : Instructor's Tea Cup +57413 : Instructor's Tea Cup +57414 : Instructor's Tea Cup +57420 : Instructor's Feather Accessory +57421 : Instructor's Feather Accessory +57422 : Instructor's Feather Accessory +57423 : Instructor's Feather Accessory +57424 : Instructor's Feather Accessory +57430 : Instructor's Cap +57431 : Instructor's Cap +57432 : Instructor's Cap +57433 : Instructor's Cap +57434 : Instructor's Cap +57440 : Instructor's Brooch +57441 : Instructor's Brooch +57442 : Instructor's Brooch +57443 : Instructor's Brooch +57444 : Instructor's Brooch +57450 : Instructor's Pocket Watch +57451 : Instructor's Pocket Watch +57452 : Instructor's Pocket Watch +57453 : Instructor's Pocket Watch +57454 : Instructor's Pocket Watch +57510 : Instructor's Tea Cup +57511 : Instructor's Tea Cup +57512 : Instructor's Tea Cup +57513 : Instructor's Tea Cup +57514 : Instructor's Tea Cup +57520 : Instructor's Feather Accessory +57521 : Instructor's Feather Accessory +57522 : Instructor's Feather Accessory +57523 : Instructor's Feather Accessory +57524 : Instructor's Feather Accessory +57530 : Instructor's Cap +57531 : Instructor's Cap +57532 : Instructor's Cap +57533 : Instructor's Cap +57534 : Instructor's Cap +57540 : Instructor's Brooch +57541 : Instructor's Brooch +57542 : Instructor's Brooch +57543 : Instructor's Brooch +57544 : Instructor's Brooch +57550 : Instructor's Pocket Watch +57551 : Instructor's Pocket Watch +57552 : Instructor's Pocket Watch +57553 : Instructor's Pocket Watch +57554 : Instructor's Pocket Watch +58210 : Gambler's Dice Cup +58211 : Gambler's Dice Cup +58212 : Gambler's Dice Cup +58213 : Gambler's Dice Cup +58214 : Gambler's Dice Cup +58220 : Gambler's Feather Accessory +58221 : Gambler's Feather Accessory +58222 : Gambler's Feather Accessory +58223 : Gambler's Feather Accessory +58224 : Gambler's Feather Accessory +58230 : Gambler's Earrings +58231 : Gambler's Earrings +58232 : Gambler's Earrings +58233 : Gambler's Earrings +58234 : Gambler's Earrings +58240 : Gambler's Brooch +58241 : Gambler's Brooch +58242 : Gambler's Brooch +58243 : Gambler's Brooch +58244 : Gambler's Brooch +58250 : Gambler's Pocket Watch +58251 : Gambler's Pocket Watch +58252 : Gambler's Pocket Watch +58253 : Gambler's Pocket Watch +58254 : Gambler's Pocket Watch +58310 : Gambler's Dice Cup +58311 : Gambler's Dice Cup +58312 : Gambler's Dice Cup +58313 : Gambler's Dice Cup +58314 : Gambler's Dice Cup +58320 : Gambler's Feather Accessory +58321 : Gambler's Feather Accessory +58322 : Gambler's Feather Accessory +58323 : Gambler's Feather Accessory +58324 : Gambler's Feather Accessory +58330 : Gambler's Earrings +58331 : Gambler's Earrings +58332 : Gambler's Earrings +58333 : Gambler's Earrings +58334 : Gambler's Earrings +58340 : Gambler's Brooch +58341 : Gambler's Brooch +58342 : Gambler's Brooch +58343 : Gambler's Brooch +58344 : Gambler's Brooch +58350 : Gambler's Pocket Watch +58351 : Gambler's Pocket Watch +58352 : Gambler's Pocket Watch +58353 : Gambler's Pocket Watch +58354 : Gambler's Pocket Watch +58410 : Gambler's Dice Cup +58411 : Gambler's Dice Cup +58412 : Gambler's Dice Cup +58413 : Gambler's Dice Cup +58414 : Gambler's Dice Cup +58420 : Gambler's Feather Accessory +58421 : Gambler's Feather Accessory +58422 : Gambler's Feather Accessory +58423 : Gambler's Feather Accessory +58424 : Gambler's Feather Accessory +58430 : Gambler's Earrings +58431 : Gambler's Earrings +58432 : Gambler's Earrings +58433 : Gambler's Earrings +58434 : Gambler's Earrings +58440 : Gambler's Brooch +58441 : Gambler's Brooch +58442 : Gambler's Brooch +58443 : Gambler's Brooch +58444 : Gambler's Brooch +58450 : Gambler's Pocket Watch +58451 : Gambler's Pocket Watch +58452 : Gambler's Pocket Watch +58453 : Gambler's Pocket Watch +58454 : Gambler's Pocket Watch +58510 : Gambler's Dice Cup +58511 : Gambler's Dice Cup +58512 : Gambler's Dice Cup +58513 : Gambler's Dice Cup +58514 : Gambler's Dice Cup +58520 : Gambler's Feather Accessory +58521 : Gambler's Feather Accessory +58522 : Gambler's Feather Accessory +58523 : Gambler's Feather Accessory +58524 : Gambler's Feather Accessory +58530 : Gambler's Earrings +58531 : Gambler's Earrings +58532 : Gambler's Earrings +58533 : Gambler's Earrings +58534 : Gambler's Earrings +58540 : Gambler's Brooch +58541 : Gambler's Brooch +58542 : Gambler's Brooch +58543 : Gambler's Brooch +58544 : Gambler's Brooch +58550 : Gambler's Pocket Watch +58551 : Gambler's Pocket Watch +58552 : Gambler's Pocket Watch +58553 : Gambler's Pocket Watch +58554 : Gambler's Pocket Watch +59110 : Exile's Goblet +59111 : Exile's Goblet +59112 : Exile's Goblet +59113 : Exile's Goblet +59114 : Exile's Goblet +59120 : Exile's Feather +59121 : Exile's Feather +59122 : Exile's Feather +59123 : Exile's Feather +59124 : Exile's Feather +59130 : Exile's Circlet +59131 : Exile's Circlet +59132 : Exile's Circlet +59133 : Exile's Circlet +59134 : Exile's Circlet +59140 : Exile's Flower +59141 : Exile's Flower +59142 : Exile's Flower +59143 : Exile's Flower +59144 : Exile's Flower +59150 : Exile's Pocket Watch +59151 : Exile's Pocket Watch +59152 : Exile's Pocket Watch +59153 : Exile's Pocket Watch +59154 : Exile's Pocket Watch +59210 : Exile's Goblet +59211 : Exile's Goblet +59212 : Exile's Goblet +59213 : Exile's Goblet +59214 : Exile's Goblet +59220 : Exile's Feather +59221 : Exile's Feather +59222 : Exile's Feather +59223 : Exile's Feather +59224 : Exile's Feather +59230 : Exile's Circlet +59231 : Exile's Circlet +59232 : Exile's Circlet +59233 : Exile's Circlet +59234 : Exile's Circlet +59240 : Exile's Flower +59241 : Exile's Flower +59242 : Exile's Flower +59243 : Exile's Flower +59244 : Exile's Flower +59250 : Exile's Pocket Watch +59251 : Exile's Pocket Watch +59252 : Exile's Pocket Watch +59253 : Exile's Pocket Watch +59254 : Exile's Pocket Watch +59310 : Exile's Goblet +59311 : Exile's Goblet +59312 : Exile's Goblet +59313 : Exile's Goblet +59314 : Exile's Goblet +59320 : Exile's Feather +59321 : Exile's Feather +59322 : Exile's Feather +59323 : Exile's Feather +59324 : Exile's Feather +59330 : Exile's Circlet +59331 : Exile's Circlet +59332 : Exile's Circlet +59333 : Exile's Circlet +59334 : Exile's Circlet +59340 : Exile's Flower +59341 : Exile's Flower +59342 : Exile's Flower +59343 : Exile's Flower +59344 : Exile's Flower +59350 : Exile's Pocket Watch +59351 : Exile's Pocket Watch +59352 : Exile's Pocket Watch +59353 : Exile's Pocket Watch +59354 : Exile's Pocket Watch +59410 : Exile's Goblet +59411 : Exile's Goblet +59412 : Exile's Goblet +59413 : Exile's Goblet +59414 : Exile's Goblet +59420 : Exile's Feather +59421 : Exile's Feather +59422 : Exile's Feather +59423 : Exile's Feather +59424 : Exile's Feather +59430 : Exile's Circlet +59431 : Exile's Circlet +59432 : Exile's Circlet +59433 : Exile's Circlet +59434 : Exile's Circlet +59440 : Exile's Flower +59441 : Exile's Flower +59442 : Exile's Flower +59443 : Exile's Flower +59444 : Exile's Flower +59450 : Exile's Pocket Watch +59451 : Exile's Pocket Watch +59452 : Exile's Pocket Watch +59453 : Exile's Pocket Watch +59454 : Exile's Pocket Watch +59510 : Exile's Goblet +59511 : Exile's Goblet +59512 : Exile's Goblet +59513 : Exile's Goblet +59514 : Exile's Goblet +59520 : Exile's Feather +59521 : Exile's Feather +59522 : Exile's Feather +59523 : Exile's Feather +59524 : Exile's Feather +59530 : Exile's Circlet +59531 : Exile's Circlet +59532 : Exile's Circlet +59533 : Exile's Circlet +59534 : Exile's Circlet +59540 : Exile's Flower +59541 : Exile's Flower +59542 : Exile's Flower +59543 : Exile's Flower +59544 : Exile's Flower +59550 : Exile's Pocket Watch +59551 : Exile's Pocket Watch +59552 : Exile's Pocket Watch +59553 : Exile's Pocket Watch +59554 : Exile's Pocket Watch +60110 : Adventurer's Golden Goblet +60111 : Adventurer's Golden Goblet +60112 : Adventurer's Golden Goblet +60113 : Adventurer's Golden Goblet +60114 : Adventurer's Golden Goblet +60120 : Adventurer's Tail Feather +60121 : Adventurer's Tail Feather +60122 : Adventurer's Tail Feather +60123 : Adventurer's Tail Feather +60124 : Adventurer's Tail Feather +60130 : Adventurer's Bandana +60131 : Adventurer's Bandana +60132 : Adventurer's Bandana +60133 : Adventurer's Bandana +60134 : Adventurer's Bandana +60140 : Adventurer's Flower +60141 : Adventurer's Flower +60142 : Adventurer's Flower +60143 : Adventurer's Flower +60144 : Adventurer's Flower +60150 : Adventurer's Pocket Watch +60151 : Adventurer's Pocket Watch +60152 : Adventurer's Pocket Watch +60153 : Adventurer's Pocket Watch +60154 : Adventurer's Pocket Watch +60210 : Adventurer's Golden Goblet +60211 : Adventurer's Golden Goblet +60212 : Adventurer's Golden Goblet +60213 : Adventurer's Golden Goblet +60214 : Adventurer's Golden Goblet +60220 : Adventurer's Tail Feather +60221 : Adventurer's Tail Feather +60222 : Adventurer's Tail Feather +60223 : Adventurer's Tail Feather +60224 : Adventurer's Tail Feather +60230 : Adventurer's Bandana +60231 : Adventurer's Bandana +60232 : Adventurer's Bandana +60233 : Adventurer's Bandana +60234 : Adventurer's Bandana +60240 : Adventurer's Flower +60241 : Adventurer's Flower +60242 : Adventurer's Flower +60243 : Adventurer's Flower +60244 : Adventurer's Flower +60250 : Adventurer's Pocket Watch +60251 : Adventurer's Pocket Watch +60252 : Adventurer's Pocket Watch +60253 : Adventurer's Pocket Watch +60254 : Adventurer's Pocket Watch +60310 : Adventurer's Golden Goblet +60311 : Adventurer's Golden Goblet +60312 : Adventurer's Golden Goblet +60313 : Adventurer's Golden Goblet +60314 : Adventurer's Golden Goblet +60320 : Adventurer's Tail Feather +60321 : Adventurer's Tail Feather +60322 : Adventurer's Tail Feather +60323 : Adventurer's Tail Feather +60324 : Adventurer's Tail Feather +60330 : Adventurer's Bandana +60331 : Adventurer's Bandana +60332 : Adventurer's Bandana +60333 : Adventurer's Bandana +60334 : Adventurer's Bandana +60340 : Adventurer's Flower +60341 : Adventurer's Flower +60342 : Adventurer's Flower +60343 : Adventurer's Flower +60344 : Adventurer's Flower +60350 : Adventurer's Pocket Watch +60351 : Adventurer's Pocket Watch +60352 : Adventurer's Pocket Watch +60353 : Adventurer's Pocket Watch +60354 : Adventurer's Pocket Watch +60410 : Adventurer's Golden Goblet +60411 : Adventurer's Golden Goblet +60412 : Adventurer's Golden Goblet +60413 : Adventurer's Golden Goblet +60414 : Adventurer's Golden Goblet +60420 : Adventurer's Tail Feather +60421 : Adventurer's Tail Feather +60422 : Adventurer's Tail Feather +60423 : Adventurer's Tail Feather +60424 : Adventurer's Tail Feather +60430 : Adventurer's Bandana +60431 : Adventurer's Bandana +60432 : Adventurer's Bandana +60433 : Adventurer's Bandana +60434 : Adventurer's Bandana +60440 : Adventurer's Flower +60441 : Adventurer's Flower +60442 : Adventurer's Flower +60443 : Adventurer's Flower +60444 : Adventurer's Flower +60450 : Adventurer's Pocket Watch +60451 : Adventurer's Pocket Watch +60452 : Adventurer's Pocket Watch +60453 : Adventurer's Pocket Watch +60454 : Adventurer's Pocket Watch +61110 : Lucky Dog's Goblet +61111 : Lucky Dog's Goblet +61112 : Lucky Dog's Goblet +61113 : Lucky Dog's Goblet +61114 : Lucky Dog's Goblet +61120 : Lucky Dog's Eagle Feather +61121 : Lucky Dog's Eagle Feather +61122 : Lucky Dog's Eagle Feather +61123 : Lucky Dog's Eagle Feather +61124 : Lucky Dog's Eagle Feather +61130 : Lucky Dog's Silver Circlet +61131 : Lucky Dog's Silver Circlet +61132 : Lucky Dog's Silver Circlet +61133 : Lucky Dog's Silver Circlet +61134 : Lucky Dog's Silver Circlet +61140 : Lucky Dog's Clover +61141 : Lucky Dog's Clover +61142 : Lucky Dog's Clover +61143 : Lucky Dog's Clover +61144 : Lucky Dog's Clover +61150 : Lucky Dog's Hourglass +61151 : Lucky Dog's Hourglass +61152 : Lucky Dog's Hourglass +61153 : Lucky Dog's Hourglass +61154 : Lucky Dog's Hourglass +61210 : Lucky Dog's Goblet +61211 : Lucky Dog's Goblet +61212 : Lucky Dog's Goblet +61213 : Lucky Dog's Goblet +61214 : Lucky Dog's Goblet +61220 : Lucky Dog's Eagle Feather +61221 : Lucky Dog's Eagle Feather +61222 : Lucky Dog's Eagle Feather +61223 : Lucky Dog's Eagle Feather +61224 : Lucky Dog's Eagle Feather +61230 : Lucky Dog's Silver Circlet +61231 : Lucky Dog's Silver Circlet +61232 : Lucky Dog's Silver Circlet +61233 : Lucky Dog's Silver Circlet +61234 : Lucky Dog's Silver Circlet +61240 : Lucky Dog's Clover +61241 : Lucky Dog's Clover +61242 : Lucky Dog's Clover +61243 : Lucky Dog's Clover +61244 : Lucky Dog's Clover +61250 : Lucky Dog's Hourglass +61251 : Lucky Dog's Hourglass +61252 : Lucky Dog's Hourglass +61253 : Lucky Dog's Hourglass +61254 : Lucky Dog's Hourglass +61310 : Lucky Dog's Goblet +61311 : Lucky Dog's Goblet +61312 : Lucky Dog's Goblet +61313 : Lucky Dog's Goblet +61314 : Lucky Dog's Goblet +61320 : Lucky Dog's Eagle Feather +61321 : Lucky Dog's Eagle Feather +61322 : Lucky Dog's Eagle Feather +61323 : Lucky Dog's Eagle Feather +61324 : Lucky Dog's Eagle Feather +61330 : Lucky Dog's Silver Circlet +61331 : Lucky Dog's Silver Circlet +61332 : Lucky Dog's Silver Circlet +61333 : Lucky Dog's Silver Circlet +61334 : Lucky Dog's Silver Circlet +61340 : Lucky Dog's Clover +61341 : Lucky Dog's Clover +61342 : Lucky Dog's Clover +61343 : Lucky Dog's Clover +61344 : Lucky Dog's Clover +61350 : Lucky Dog's Hourglass +61351 : Lucky Dog's Hourglass +61352 : Lucky Dog's Hourglass +61353 : Lucky Dog's Hourglass +61354 : Lucky Dog's Hourglass +61410 : Lucky Dog's Goblet +61411 : Lucky Dog's Goblet +61412 : Lucky Dog's Goblet +61413 : Lucky Dog's Goblet +61414 : Lucky Dog's Goblet +61420 : Lucky Dog's Eagle Feather +61421 : Lucky Dog's Eagle Feather +61422 : Lucky Dog's Eagle Feather +61423 : Lucky Dog's Eagle Feather +61424 : Lucky Dog's Eagle Feather +61430 : Lucky Dog's Silver Circlet +61431 : Lucky Dog's Silver Circlet +61432 : Lucky Dog's Silver Circlet +61433 : Lucky Dog's Silver Circlet +61434 : Lucky Dog's Silver Circlet +61440 : Lucky Dog's Clover +61441 : Lucky Dog's Clover +61442 : Lucky Dog's Clover +61443 : Lucky Dog's Clover +61444 : Lucky Dog's Clover +61450 : Lucky Dog's Hourglass +61451 : Lucky Dog's Hourglass +61452 : Lucky Dog's Hourglass +61453 : Lucky Dog's Hourglass +61454 : Lucky Dog's Hourglass +62110 : Scholar's Ink Cup +62111 : Scholar's Ink Cup +62112 : Scholar's Ink Cup +62113 : Scholar's Ink Cup +62114 : Scholar's Ink Cup +62120 : Scholar's Quill Pen +62121 : Scholar's Quill Pen +62122 : Scholar's Quill Pen +62123 : Scholar's Quill Pen +62124 : Scholar's Quill Pen +62130 : Scholar's Lens +62131 : Scholar's Lens +62132 : Scholar's Lens +62133 : Scholar's Lens +62134 : Scholar's Lens +62140 : Scholar's Bookmark +62141 : Scholar's Bookmark +62142 : Scholar's Bookmark +62143 : Scholar's Bookmark +62144 : Scholar's Bookmark +62150 : Scholar's Clock +62151 : Scholar's Clock +62152 : Scholar's Clock +62153 : Scholar's Clock +62154 : Scholar's Clock +62210 : Scholar's Ink Cup +62211 : Scholar's Ink Cup +62212 : Scholar's Ink Cup +62213 : Scholar's Ink Cup +62214 : Scholar's Ink Cup +62220 : Scholar's Quill Pen +62221 : Scholar's Quill Pen +62222 : Scholar's Quill Pen +62223 : Scholar's Quill Pen +62224 : Scholar's Quill Pen +62230 : Scholar's Lens +62231 : Scholar's Lens +62232 : Scholar's Lens +62233 : Scholar's Lens +62234 : Scholar's Lens +62240 : Scholar's Bookmark +62241 : Scholar's Bookmark +62242 : Scholar's Bookmark +62243 : Scholar's Bookmark +62244 : Scholar's Bookmark +62250 : Scholar's Clock +62251 : Scholar's Clock +62252 : Scholar's Clock +62253 : Scholar's Clock +62254 : Scholar's Clock +62310 : Scholar's Ink Cup +62311 : Scholar's Ink Cup +62312 : Scholar's Ink Cup +62313 : Scholar's Ink Cup +62314 : Scholar's Ink Cup +62320 : Scholar's Quill Pen +62321 : Scholar's Quill Pen +62322 : Scholar's Quill Pen +62323 : Scholar's Quill Pen +62324 : Scholar's Quill Pen +62330 : Scholar's Lens +62331 : Scholar's Lens +62332 : Scholar's Lens +62333 : Scholar's Lens +62334 : Scholar's Lens +62340 : Scholar's Bookmark +62341 : Scholar's Bookmark +62342 : Scholar's Bookmark +62343 : Scholar's Bookmark +62344 : Scholar's Bookmark +62350 : Scholar's Clock +62351 : Scholar's Clock +62352 : Scholar's Clock +62353 : Scholar's Clock +62354 : Scholar's Clock +62410 : Scholar's Ink Cup +62411 : Scholar's Ink Cup +62412 : Scholar's Ink Cup +62413 : Scholar's Ink Cup +62414 : Scholar's Ink Cup +62420 : Scholar's Quill Pen +62421 : Scholar's Quill Pen +62422 : Scholar's Quill Pen +62423 : Scholar's Quill Pen +62424 : Scholar's Quill Pen +62430 : Scholar's Lens +62431 : Scholar's Lens +62432 : Scholar's Lens +62433 : Scholar's Lens +62434 : Scholar's Lens +62440 : Scholar's Bookmark +62441 : Scholar's Bookmark +62442 : Scholar's Bookmark +62443 : Scholar's Bookmark +62444 : Scholar's Bookmark +62450 : Scholar's Clock +62451 : Scholar's Clock +62452 : Scholar's Clock +62453 : Scholar's Clock +62454 : Scholar's Clock +62510 : Scholar's Ink Cup +62511 : Scholar's Ink Cup +62512 : Scholar's Ink Cup +62513 : Scholar's Ink Cup +62514 : Scholar's Ink Cup +62520 : Scholar's Quill Pen +62521 : Scholar's Quill Pen +62522 : Scholar's Quill Pen +62523 : Scholar's Quill Pen +62524 : Scholar's Quill Pen +62530 : Scholar's Lens +62531 : Scholar's Lens +62532 : Scholar's Lens +62533 : Scholar's Lens +62534 : Scholar's Lens +62540 : Scholar's Bookmark +62541 : Scholar's Bookmark +62542 : Scholar's Bookmark +62543 : Scholar's Bookmark +62544 : Scholar's Bookmark +62550 : Scholar's Clock +62551 : Scholar's Clock +62552 : Scholar's Clock +62553 : Scholar's Clock +62554 : Scholar's Clock +63110 : Traveling Doctor's Medicine Pot +63111 : Traveling Doctor's Medicine Pot +63112 : Traveling Doctor's Medicine Pot +63113 : Traveling Doctor's Medicine Pot +63114 : Traveling Doctor's Medicine Pot +63120 : Traveling Doctor's Owl Feather +63121 : Traveling Doctor's Owl Feather +63122 : Traveling Doctor's Owl Feather +63123 : Traveling Doctor's Owl Feather +63124 : Traveling Doctor's Owl Feather +63130 : Traveling Doctor's Handkerchief +63131 : Traveling Doctor's Handkerchief +63132 : Traveling Doctor's Handkerchief +63133 : Traveling Doctor's Handkerchief +63134 : Traveling Doctor's Handkerchief +63140 : Traveling Doctor's Silver Lotus +63141 : Traveling Doctor's Silver Lotus +63142 : Traveling Doctor's Silver Lotus +63143 : Traveling Doctor's Silver Lotus +63144 : Traveling Doctor's Silver Lotus +63150 : Traveling Doctor's Pocket Watch +63151 : Traveling Doctor's Pocket Watch +63152 : Traveling Doctor's Pocket Watch +63153 : Traveling Doctor's Pocket Watch +63154 : Traveling Doctor's Pocket Watch +63210 : Traveling Doctor's Medicine Pot +63211 : Traveling Doctor's Medicine Pot +63212 : Traveling Doctor's Medicine Pot +63213 : Traveling Doctor's Medicine Pot +63214 : Traveling Doctor's Medicine Pot +63220 : Traveling Doctor's Owl Feather +63221 : Traveling Doctor's Owl Feather +63222 : Traveling Doctor's Owl Feather +63223 : Traveling Doctor's Owl Feather +63224 : Traveling Doctor's Owl Feather +63230 : Traveling Doctor's Handkerchief +63231 : Traveling Doctor's Handkerchief +63232 : Traveling Doctor's Handkerchief +63233 : Traveling Doctor's Handkerchief +63234 : Traveling Doctor's Handkerchief +63240 : Traveling Doctor's Silver Lotus +63241 : Traveling Doctor's Silver Lotus +63242 : Traveling Doctor's Silver Lotus +63243 : Traveling Doctor's Silver Lotus +63244 : Traveling Doctor's Silver Lotus +63250 : Traveling Doctor's Pocket Watch +63251 : Traveling Doctor's Pocket Watch +63252 : Traveling Doctor's Pocket Watch +63253 : Traveling Doctor's Pocket Watch +63254 : Traveling Doctor's Pocket Watch +63310 : Traveling Doctor's Medicine Pot +63311 : Traveling Doctor's Medicine Pot +63312 : Traveling Doctor's Medicine Pot +63313 : Traveling Doctor's Medicine Pot +63314 : Traveling Doctor's Medicine Pot +63320 : Traveling Doctor's Owl Feather +63321 : Traveling Doctor's Owl Feather +63322 : Traveling Doctor's Owl Feather +63323 : Traveling Doctor's Owl Feather +63324 : Traveling Doctor's Owl Feather +63330 : Traveling Doctor's Handkerchief +63331 : Traveling Doctor's Handkerchief +63332 : Traveling Doctor's Handkerchief +63333 : Traveling Doctor's Handkerchief +63334 : Traveling Doctor's Handkerchief +63340 : Traveling Doctor's Silver Lotus +63341 : Traveling Doctor's Silver Lotus +63342 : Traveling Doctor's Silver Lotus +63343 : Traveling Doctor's Silver Lotus +63344 : Traveling Doctor's Silver Lotus +63350 : Traveling Doctor's Pocket Watch +63351 : Traveling Doctor's Pocket Watch +63352 : Traveling Doctor's Pocket Watch +63353 : Traveling Doctor's Pocket Watch +63354 : Traveling Doctor's Pocket Watch +63410 : Traveling Doctor's Medicine Pot +63411 : Traveling Doctor's Medicine Pot +63412 : Traveling Doctor's Medicine Pot +63413 : Traveling Doctor's Medicine Pot +63414 : Traveling Doctor's Medicine Pot +63420 : Traveling Doctor's Owl Feather +63421 : Traveling Doctor's Owl Feather +63422 : Traveling Doctor's Owl Feather +63423 : Traveling Doctor's Owl Feather +63424 : Traveling Doctor's Owl Feather +63430 : Traveling Doctor's Handkerchief +63431 : Traveling Doctor's Handkerchief +63432 : Traveling Doctor's Handkerchief +63433 : Traveling Doctor's Handkerchief +63434 : Traveling Doctor's Handkerchief +63440 : Traveling Doctor's Silver Lotus +63441 : Traveling Doctor's Silver Lotus +63442 : Traveling Doctor's Silver Lotus +63443 : Traveling Doctor's Silver Lotus +63444 : Traveling Doctor's Silver Lotus +63450 : Traveling Doctor's Pocket Watch +63451 : Traveling Doctor's Pocket Watch +63452 : Traveling Doctor's Pocket Watch +63453 : Traveling Doctor's Pocket Watch +63454 : Traveling Doctor's Pocket Watch +71310 : Frost-Weaved Dignity +71311 : Frost-Weaved Dignity +71312 : Frost-Weaved Dignity +71313 : Frost-Weaved Dignity +71314 : Frost-Weaved Dignity +71320 : Icebreaker's Resolve +71321 : Icebreaker's Resolve +71322 : Icebreaker's Resolve +71323 : Icebreaker's Resolve +71324 : Icebreaker's Resolve +71330 : Broken Rime's Echo +71331 : Broken Rime's Echo +71332 : Broken Rime's Echo +71333 : Broken Rime's Echo +71334 : Broken Rime's Echo +71340 : Snowswept Memory +71341 : Snowswept Memory +71342 : Snowswept Memory +71343 : Snowswept Memory +71344 : Snowswept Memory +71350 : Frozen Homeland's Demise +71351 : Frozen Homeland's Demise +71352 : Frozen Homeland's Demise +71353 : Frozen Homeland's Demise +71354 : Frozen Homeland's Demise +71410 : Frost-Weaved Dignity +71411 : Frost-Weaved Dignity +71412 : Frost-Weaved Dignity +71413 : Frost-Weaved Dignity +71414 : Frost-Weaved Dignity +71420 : Icebreaker's Resolve +71421 : Icebreaker's Resolve +71422 : Icebreaker's Resolve +71423 : Icebreaker's Resolve +71424 : Icebreaker's Resolve +71430 : Broken Rime's Echo +71431 : Broken Rime's Echo +71432 : Broken Rime's Echo +71433 : Broken Rime's Echo +71434 : Broken Rime's Echo +71440 : Snowswept Memory +71441 : Snowswept Memory +71442 : Snowswept Memory +71443 : Snowswept Memory +71444 : Snowswept Memory +71450 : Frozen Homeland's Demise +71451 : Frozen Homeland's Demise +71452 : Frozen Homeland's Demise +71453 : Frozen Homeland's Demise +71454 : Frozen Homeland's Demise +71510 : Frost-Weaved Dignity +71511 : Frost-Weaved Dignity +71512 : Frost-Weaved Dignity +71513 : Frost-Weaved Dignity +71514 : Frost-Weaved Dignity +71520 : Icebreaker's Resolve +71521 : Icebreaker's Resolve +71522 : Icebreaker's Resolve +71523 : Icebreaker's Resolve +71524 : Icebreaker's Resolve +71530 : Broken Rime's Echo +71531 : Broken Rime's Echo +71532 : Broken Rime's Echo +71533 : Broken Rime's Echo +71534 : Broken Rime's Echo +71540 : Snowswept Memory +71541 : Snowswept Memory +71542 : Snowswept Memory +71543 : Snowswept Memory +71544 : Snowswept Memory +71550 : Frozen Homeland's Demise +71551 : Frozen Homeland's Demise +71552 : Frozen Homeland's Demise +71553 : Frozen Homeland's Demise +71554 : Frozen Homeland's Demise +72310 : Thundersoother's Goblet +72311 : Thundersoother's Goblet +72312 : Thundersoother's Goblet +72313 : Thundersoother's Goblet +72314 : Thundersoother's Goblet +72320 : Thundersoother's Plume +72321 : Thundersoother's Plume +72322 : Thundersoother's Plume +72323 : Thundersoother's Plume +72324 : Thundersoother's Plume +72330 : Thundersoother's Diadem +72331 : Thundersoother's Diadem +72332 : Thundersoother's Diadem +72333 : Thundersoother's Diadem +72334 : Thundersoother's Diadem +72340 : Thundersoother's Heart +72341 : Thundersoother's Heart +72342 : Thundersoother's Heart +72343 : Thundersoother's Heart +72344 : Thundersoother's Heart +72350 : Hour of Soothing Thunder +72351 : Hour of Soothing Thunder +72352 : Hour of Soothing Thunder +72353 : Hour of Soothing Thunder +72354 : Hour of Soothing Thunder +72410 : Thundersoother's Goblet +72411 : Thundersoother's Goblet +72412 : Thundersoother's Goblet +72413 : Thundersoother's Goblet +72414 : Thundersoother's Goblet +72420 : Thundersoother's Plume +72421 : Thundersoother's Plume +72422 : Thundersoother's Plume +72423 : Thundersoother's Plume +72424 : Thundersoother's Plume +72430 : Thundersoother's Diadem +72431 : Thundersoother's Diadem +72432 : Thundersoother's Diadem +72433 : Thundersoother's Diadem +72434 : Thundersoother's Diadem +72440 : Thundersoother's Heart +72441 : Thundersoother's Heart +72442 : Thundersoother's Heart +72443 : Thundersoother's Heart +72444 : Thundersoother's Heart +72450 : Hour of Soothing Thunder +72451 : Hour of Soothing Thunder +72452 : Hour of Soothing Thunder +72453 : Hour of Soothing Thunder +72454 : Hour of Soothing Thunder +72510 : Thundersoother's Goblet +72511 : Thundersoother's Goblet +72512 : Thundersoother's Goblet +72513 : Thundersoother's Goblet +72514 : Thundersoother's Goblet +72520 : Thundersoother's Plume +72521 : Thundersoother's Plume +72522 : Thundersoother's Plume +72523 : Thundersoother's Plume +72524 : Thundersoother's Plume +72530 : Thundersoother's Diadem +72531 : Thundersoother's Diadem +72532 : Thundersoother's Diadem +72533 : Thundersoother's Diadem +72534 : Thundersoother's Diadem +72540 : Thundersoother's Heart +72541 : Thundersoother's Heart +72542 : Thundersoother's Heart +72543 : Thundersoother's Heart +72544 : Thundersoother's Heart +72550 : Hour of Soothing Thunder +72551 : Hour of Soothing Thunder +72552 : Hour of Soothing Thunder +72553 : Hour of Soothing Thunder +72554 : Hour of Soothing Thunder +73310 : Lavawalker's Epiphany +73311 : Lavawalker's Epiphany +73312 : Lavawalker's Epiphany +73313 : Lavawalker's Epiphany +73314 : Lavawalker's Epiphany +73320 : Lavawalker's Salvation +73321 : Lavawalker's Salvation +73322 : Lavawalker's Salvation +73323 : Lavawalker's Salvation +73324 : Lavawalker's Salvation +73330 : Lavawalker's Wisdom +73331 : Lavawalker's Wisdom +73332 : Lavawalker's Wisdom +73333 : Lavawalker's Wisdom +73334 : Lavawalker's Wisdom +73340 : Lavawalker's Resolution +73341 : Lavawalker's Resolution +73342 : Lavawalker's Resolution +73343 : Lavawalker's Resolution +73344 : Lavawalker's Resolution +73350 : Lavawalker's Torment +73351 : Lavawalker's Torment +73352 : Lavawalker's Torment +73353 : Lavawalker's Torment +73354 : Lavawalker's Torment +73410 : Lavawalker's Epiphany +73411 : Lavawalker's Epiphany +73412 : Lavawalker's Epiphany +73413 : Lavawalker's Epiphany +73414 : Lavawalker's Epiphany +73420 : Lavawalker's Salvation +73421 : Lavawalker's Salvation +73422 : Lavawalker's Salvation +73423 : Lavawalker's Salvation +73424 : Lavawalker's Salvation +73430 : Lavawalker's Wisdom +73431 : Lavawalker's Wisdom +73432 : Lavawalker's Wisdom +73433 : Lavawalker's Wisdom +73434 : Lavawalker's Wisdom +73440 : Lavawalker's Resolution +73441 : Lavawalker's Resolution +73442 : Lavawalker's Resolution +73443 : Lavawalker's Resolution +73444 : Lavawalker's Resolution +73450 : Lavawalker's Torment +73451 : Lavawalker's Torment +73452 : Lavawalker's Torment +73453 : Lavawalker's Torment +73454 : Lavawalker's Torment +73510 : Lavawalker's Epiphany +73511 : Lavawalker's Epiphany +73512 : Lavawalker's Epiphany +73513 : Lavawalker's Epiphany +73514 : Lavawalker's Epiphany +73520 : Lavawalker's Salvation +73521 : Lavawalker's Salvation +73522 : Lavawalker's Salvation +73523 : Lavawalker's Salvation +73524 : Lavawalker's Salvation +73530 : Lavawalker's Wisdom +73531 : Lavawalker's Wisdom +73532 : Lavawalker's Wisdom +73533 : Lavawalker's Wisdom +73534 : Lavawalker's Wisdom +73540 : Lavawalker's Resolution +73541 : Lavawalker's Resolution +73542 : Lavawalker's Resolution +73543 : Lavawalker's Resolution +73544 : Lavawalker's Resolution +73550 : Lavawalker's Torment +73551 : Lavawalker's Torment +73552 : Lavawalker's Torment +73553 : Lavawalker's Torment +73554 : Lavawalker's Torment +74310 : Maiden's Fleeting Leisure +74311 : Maiden's Fleeting Leisure +74312 : Maiden's Fleeting Leisure +74313 : Maiden's Fleeting Leisure +74314 : Maiden's Fleeting Leisure +74320 : Maiden's Heart-stricken Infatuation +74321 : Maiden's Heart-stricken Infatuation +74322 : Maiden's Heart-stricken Infatuation +74323 : Maiden's Heart-stricken Infatuation +74324 : Maiden's Heart-stricken Infatuation +74330 : Maiden's Fading Beauty +74331 : Maiden's Fading Beauty +74332 : Maiden's Fading Beauty +74333 : Maiden's Fading Beauty +74334 : Maiden's Fading Beauty +74340 : Maiden's Distant Love +74341 : Maiden's Distant Love +74342 : Maiden's Distant Love +74343 : Maiden's Distant Love +74344 : Maiden's Distant Love +74350 : Maiden's Passing Youth +74351 : Maiden's Passing Youth +74352 : Maiden's Passing Youth +74353 : Maiden's Passing Youth +74354 : Maiden's Passing Youth +74410 : Maiden's Fleeting Leisure +74411 : Maiden's Fleeting Leisure +74412 : Maiden's Fleeting Leisure +74413 : Maiden's Fleeting Leisure +74414 : Maiden's Fleeting Leisure +74420 : Maiden's Heart-stricken Infatuation +74421 : Maiden's Heart-stricken Infatuation +74422 : Maiden's Heart-stricken Infatuation +74423 : Maiden's Heart-stricken Infatuation +74424 : Maiden's Heart-stricken Infatuation +74430 : Maiden's Fading Beauty +74431 : Maiden's Fading Beauty +74432 : Maiden's Fading Beauty +74433 : Maiden's Fading Beauty +74434 : Maiden's Fading Beauty +74440 : Maiden's Distant Love +74441 : Maiden's Distant Love +74442 : Maiden's Distant Love +74443 : Maiden's Distant Love +74444 : Maiden's Distant Love +74450 : Maiden's Passing Youth +74451 : Maiden's Passing Youth +74452 : Maiden's Passing Youth +74453 : Maiden's Passing Youth +74454 : Maiden's Passing Youth +74510 : Maiden's Fleeting Leisure +74511 : Maiden's Fleeting Leisure +74512 : Maiden's Fleeting Leisure +74513 : Maiden's Fleeting Leisure +74514 : Maiden's Fleeting Leisure +74520 : Maiden's Heart-stricken Infatuation +74521 : Maiden's Heart-stricken Infatuation +74522 : Maiden's Heart-stricken Infatuation +74523 : Maiden's Heart-stricken Infatuation +74524 : Maiden's Heart-stricken Infatuation +74530 : Maiden's Fading Beauty +74531 : Maiden's Fading Beauty +74532 : Maiden's Fading Beauty +74533 : Maiden's Fading Beauty +74534 : Maiden's Fading Beauty +74540 : Maiden's Distant Love +74541 : Maiden's Distant Love +74542 : Maiden's Distant Love +74543 : Maiden's Distant Love +74544 : Maiden's Distant Love +74550 : Maiden's Passing Youth +74551 : Maiden's Passing Youth +74552 : Maiden's Passing Youth +74553 : Maiden's Passing Youth +74554 : Maiden's Passing Youth +75310 : Gladiator's Intoxication +75311 : Gladiator's Intoxication +75312 : Gladiator's Intoxication +75313 : Gladiator's Intoxication +75314 : Gladiator's Intoxication +75320 : Gladiator's Destiny +75321 : Gladiator's Destiny +75322 : Gladiator's Destiny +75323 : Gladiator's Destiny +75324 : Gladiator's Destiny +75330 : Gladiator's Triumphus +75331 : Gladiator's Triumphus +75332 : Gladiator's Triumphus +75333 : Gladiator's Triumphus +75334 : Gladiator's Triumphus +75340 : Gladiator's Nostalgia +75341 : Gladiator's Nostalgia +75342 : Gladiator's Nostalgia +75343 : Gladiator's Nostalgia +75344 : Gladiator's Nostalgia +75350 : Gladiator's Longing +75351 : Gladiator's Longing +75352 : Gladiator's Longing +75353 : Gladiator's Longing +75354 : Gladiator's Longing +75410 : Gladiator's Intoxication +75411 : Gladiator's Intoxication +75412 : Gladiator's Intoxication +75413 : Gladiator's Intoxication +75414 : Gladiator's Intoxication +75420 : Gladiator's Destiny +75421 : Gladiator's Destiny +75422 : Gladiator's Destiny +75423 : Gladiator's Destiny +75424 : Gladiator's Destiny +75430 : Gladiator's Triumphus +75431 : Gladiator's Triumphus +75432 : Gladiator's Triumphus +75433 : Gladiator's Triumphus +75434 : Gladiator's Triumphus +75440 : Gladiator's Nostalgia +75441 : Gladiator's Nostalgia +75442 : Gladiator's Nostalgia +75443 : Gladiator's Nostalgia +75444 : Gladiator's Nostalgia +75450 : Gladiator's Longing +75451 : Gladiator's Longing +75452 : Gladiator's Longing +75453 : Gladiator's Longing +75454 : Gladiator's Longing +75510 : Gladiator's Intoxication +75511 : Gladiator's Intoxication +75512 : Gladiator's Intoxication +75513 : Gladiator's Intoxication +75514 : Gladiator's Intoxication +75520 : Gladiator's Destiny +75521 : Gladiator's Destiny +75522 : Gladiator's Destiny +75523 : Gladiator's Destiny +75524 : Gladiator's Destiny +75530 : Gladiator's Triumphus +75531 : Gladiator's Triumphus +75532 : Gladiator's Triumphus +75533 : Gladiator's Triumphus +75534 : Gladiator's Triumphus +75540 : Gladiator's Nostalgia +75541 : Gladiator's Nostalgia +75542 : Gladiator's Nostalgia +75543 : Gladiator's Nostalgia +75544 : Gladiator's Nostalgia +75550 : Gladiator's Longing +75551 : Gladiator's Longing +75552 : Gladiator's Longing +75553 : Gladiator's Longing +75554 : Gladiator's Longing +76310 : Viridescent Venerer's Vessel +76311 : Viridescent Venerer's Vessel +76312 : Viridescent Venerer's Vessel +76313 : Viridescent Venerer's Vessel +76314 : Viridescent Venerer's Vessel +76320 : Viridescent Arrow Feather +76321 : Viridescent Arrow Feather +76322 : Viridescent Arrow Feather +76323 : Viridescent Arrow Feather +76324 : Viridescent Arrow Feather +76330 : Viridescent Venerer's Diadem +76331 : Viridescent Venerer's Diadem +76332 : Viridescent Venerer's Diadem +76333 : Viridescent Venerer's Diadem +76334 : Viridescent Venerer's Diadem +76340 : In Remembrance of Viridescent Fields +76341 : In Remembrance of Viridescent Fields +76342 : In Remembrance of Viridescent Fields +76343 : In Remembrance of Viridescent Fields +76344 : In Remembrance of Viridescent Fields +76350 : Viridescent Venerer's Determination +76351 : Viridescent Venerer's Determination +76352 : Viridescent Venerer's Determination +76353 : Viridescent Venerer's Determination +76354 : Viridescent Venerer's Determination +76410 : Viridescent Venerer's Vessel +76411 : Viridescent Venerer's Vessel +76412 : Viridescent Venerer's Vessel +76413 : Viridescent Venerer's Vessel +76414 : Viridescent Venerer's Vessel +76420 : Viridescent Arrow Feather +76421 : Viridescent Arrow Feather +76422 : Viridescent Arrow Feather +76423 : Viridescent Arrow Feather +76424 : Viridescent Arrow Feather +76430 : Viridescent Venerer's Diadem +76431 : Viridescent Venerer's Diadem +76432 : Viridescent Venerer's Diadem +76433 : Viridescent Venerer's Diadem +76434 : Viridescent Venerer's Diadem +76440 : In Remembrance of Viridescent Fields +76441 : In Remembrance of Viridescent Fields +76442 : In Remembrance of Viridescent Fields +76443 : In Remembrance of Viridescent Fields +76444 : In Remembrance of Viridescent Fields +76450 : Viridescent Venerer's Determination +76451 : Viridescent Venerer's Determination +76452 : Viridescent Venerer's Determination +76453 : Viridescent Venerer's Determination +76454 : Viridescent Venerer's Determination +76510 : Viridescent Venerer's Vessel +76511 : Viridescent Venerer's Vessel +76512 : Viridescent Venerer's Vessel +76513 : Viridescent Venerer's Vessel +76514 : Viridescent Venerer's Vessel +76520 : Viridescent Arrow Feather +76521 : Viridescent Arrow Feather +76522 : Viridescent Arrow Feather +76523 : Viridescent Arrow Feather +76524 : Viridescent Arrow Feather +76530 : Viridescent Venerer's Diadem +76531 : Viridescent Venerer's Diadem +76532 : Viridescent Venerer's Diadem +76533 : Viridescent Venerer's Diadem +76534 : Viridescent Venerer's Diadem +76540 : In Remembrance of Viridescent Fields +76541 : In Remembrance of Viridescent Fields +76542 : In Remembrance of Viridescent Fields +76543 : In Remembrance of Viridescent Fields +76544 : In Remembrance of Viridescent Fields +76550 : Viridescent Venerer's Determination +76551 : Viridescent Venerer's Determination +76552 : Viridescent Venerer's Determination +76553 : Viridescent Venerer's Determination +76554 : Viridescent Venerer's Determination +77310 : Wanderer's String-Kettle +77311 : Wanderer's String-Kettle +77312 : Wanderer's String-Kettle +77313 : Wanderer's String-Kettle +77314 : Wanderer's String-Kettle +77320 : Bard's Arrow Feather +77321 : Bard's Arrow Feather +77322 : Bard's Arrow Feather +77323 : Bard's Arrow Feather +77324 : Bard's Arrow Feather +77330 : Conductor's Top Hat +77331 : Conductor's Top Hat +77332 : Conductor's Top Hat +77333 : Conductor's Top Hat +77334 : Conductor's Top Hat +77340 : Troupe's Dawnlight +77341 : Troupe's Dawnlight +77342 : Troupe's Dawnlight +77343 : Troupe's Dawnlight +77344 : Troupe's Dawnlight +77350 : Concert's Final Hour +77351 : Concert's Final Hour +77352 : Concert's Final Hour +77353 : Concert's Final Hour +77354 : Concert's Final Hour +77410 : Wanderer's String-Kettle +77411 : Wanderer's String-Kettle +77412 : Wanderer's String-Kettle +77413 : Wanderer's String-Kettle +77414 : Wanderer's String-Kettle +77420 : Bard's Arrow Feather +77421 : Bard's Arrow Feather +77422 : Bard's Arrow Feather +77423 : Bard's Arrow Feather +77424 : Bard's Arrow Feather +77430 : Conductor's Top Hat +77431 : Conductor's Top Hat +77432 : Conductor's Top Hat +77433 : Conductor's Top Hat +77434 : Conductor's Top Hat +77440 : Troupe's Dawnlight +77441 : Troupe's Dawnlight +77442 : Troupe's Dawnlight +77443 : Troupe's Dawnlight +77444 : Troupe's Dawnlight +77450 : Concert's Final Hour +77451 : Concert's Final Hour +77452 : Concert's Final Hour +77453 : Concert's Final Hour +77454 : Concert's Final Hour +77510 : Wanderer's String-Kettle +77511 : Wanderer's String-Kettle +77512 : Wanderer's String-Kettle +77513 : Wanderer's String-Kettle +77514 : Wanderer's String-Kettle +77520 : Bard's Arrow Feather +77521 : Bard's Arrow Feather +77522 : Bard's Arrow Feather +77523 : Bard's Arrow Feather +77524 : Bard's Arrow Feather +77530 : Conductor's Top Hat +77531 : Conductor's Top Hat +77532 : Conductor's Top Hat +77533 : Conductor's Top Hat +77534 : Conductor's Top Hat +77540 : Troupe's Dawnlight +77541 : Troupe's Dawnlight +77542 : Troupe's Dawnlight +77543 : Troupe's Dawnlight +77544 : Troupe's Dawnlight +77550 : Concert's Final Hour +77551 : Concert's Final Hour +77552 : Concert's Final Hour +77553 : Concert's Final Hour +77554 : Concert's Final Hour +78310 : Goblet of Aquilo +78311 : Goblet of Aquilo +78312 : Goblet of Aquilo +78313 : Goblet of Aquilo +78314 : Goblet of Aquilo +78320 : Plume of Snow +78321 : Plume of Snow +78322 : Plume of Snow +78323 : Plume of Snow +78324 : Plume of Snow +78330 : Crown of Glacier +78331 : Crown of Glacier +78332 : Crown of Glacier +78333 : Crown of Glacier +78334 : Crown of Glacier +78340 : Heart of Frost +78341 : Heart of Frost +78342 : Heart of Frost +78343 : Heart of Frost +78344 : Heart of Frost +78350 : Glacial Sand +78351 : Glacial Sand +78352 : Glacial Sand +78353 : Glacial Sand +78354 : Glacial Sand +78410 : Goblet of Aquilo +78411 : Goblet of Aquilo +78412 : Goblet of Aquilo +78413 : Goblet of Aquilo +78414 : Goblet of Aquilo +78420 : Plume of Snow +78421 : Plume of Snow +78422 : Plume of Snow +78423 : Plume of Snow +78424 : Plume of Snow +78430 : Crown of Glacier +78431 : Crown of Glacier +78432 : Crown of Glacier +78433 : Crown of Glacier +78434 : Crown of Glacier +78440 : Heart of Frost +78441 : Heart of Frost +78442 : Heart of Frost +78443 : Heart of Frost +78444 : Heart of Frost +78450 : Glacial Sand +78451 : Glacial Sand +78452 : Glacial Sand +78453 : Glacial Sand +78454 : Glacial Sand +78510 : Goblet of Aquilo +78511 : Goblet of Aquilo +78512 : Goblet of Aquilo +78513 : Goblet of Aquilo +78514 : Goblet of Aquilo +78520 : Plume of Snow +78521 : Plume of Snow +78522 : Plume of Snow +78523 : Plume of Snow +78524 : Plume of Snow +78530 : Crown of Glacier +78531 : Crown of Glacier +78532 : Crown of Glacier +78533 : Crown of Glacier +78534 : Crown of Glacier +78540 : Heart of Frost +78541 : Heart of Frost +78542 : Heart of Frost +78543 : Heart of Frost +78544 : Heart of Frost +78550 : Glacial Sand +78551 : Glacial Sand +78552 : Glacial Sand +78553 : Glacial Sand +78554 : Glacial Sand +79310 : Omen of Thunderstorm +79311 : Omen of Thunderstorm +79312 : Omen of Thunderstorm +79313 : Omen of Thunderstorm +79314 : Omen of Thunderstorm +79320 : Survivor of Catastrophe +79321 : Survivor of Catastrophe +79322 : Survivor of Catastrophe +79323 : Survivor of Catastrophe +79324 : Survivor of Catastrophe +79330 : Thunder Summoner's Crown +79331 : Thunder Summoner's Crown +79332 : Thunder Summoner's Crown +79333 : Thunder Summoner's Crown +79334 : Thunder Summoner's Crown +79340 : Thunderbird's Mercy +79341 : Thunderbird's Mercy +79342 : Thunderbird's Mercy +79343 : Thunderbird's Mercy +79344 : Thunderbird's Mercy +79350 : Hourglass of Thunder +79351 : Hourglass of Thunder +79352 : Hourglass of Thunder +79353 : Hourglass of Thunder +79354 : Hourglass of Thunder +79410 : Omen of Thunderstorm +79411 : Omen of Thunderstorm +79412 : Omen of Thunderstorm +79413 : Omen of Thunderstorm +79414 : Omen of Thunderstorm +79420 : Survivor of Catastrophe +79421 : Survivor of Catastrophe +79422 : Survivor of Catastrophe +79423 : Survivor of Catastrophe +79424 : Survivor of Catastrophe +79430 : Thunder Summoner's Crown +79431 : Thunder Summoner's Crown +79432 : Thunder Summoner's Crown +79433 : Thunder Summoner's Crown +79434 : Thunder Summoner's Crown +79440 : Thunderbird's Mercy +79441 : Thunderbird's Mercy +79442 : Thunderbird's Mercy +79443 : Thunderbird's Mercy +79444 : Thunderbird's Mercy +79450 : Hourglass of Thunder +79451 : Hourglass of Thunder +79452 : Hourglass of Thunder +79453 : Hourglass of Thunder +79454 : Hourglass of Thunder +79510 : Omen of Thunderstorm +79511 : Omen of Thunderstorm +79512 : Omen of Thunderstorm +79513 : Omen of Thunderstorm +79514 : Omen of Thunderstorm +79520 : Survivor of Catastrophe +79521 : Survivor of Catastrophe +79522 : Survivor of Catastrophe +79523 : Survivor of Catastrophe +79524 : Survivor of Catastrophe +79530 : Thunder Summoner's Crown +79531 : Thunder Summoner's Crown +79532 : Thunder Summoner's Crown +79533 : Thunder Summoner's Crown +79534 : Thunder Summoner's Crown +79540 : Thunderbird's Mercy +79541 : Thunderbird's Mercy +79542 : Thunderbird's Mercy +79543 : Thunderbird's Mercy +79544 : Thunderbird's Mercy +79550 : Hourglass of Thunder +79551 : Hourglass of Thunder +79552 : Hourglass of Thunder +79553 : Hourglass of Thunder +79554 : Hourglass of Thunder +80310 : Witch's Heart Flames +80311 : Witch's Heart Flames +80312 : Witch's Heart Flames +80313 : Witch's Heart Flames +80314 : Witch's Heart Flames +80320 : Witch's Ever-Burning Plume +80321 : Witch's Ever-Burning Plume +80322 : Witch's Ever-Burning Plume +80323 : Witch's Ever-Burning Plume +80324 : Witch's Ever-Burning Plume +80330 : Witch's Scorching Hat +80331 : Witch's Scorching Hat +80332 : Witch's Scorching Hat +80333 : Witch's Scorching Hat +80334 : Witch's Scorching Hat +80340 : Witch's Flower of Blaze +80341 : Witch's Flower of Blaze +80342 : Witch's Flower of Blaze +80343 : Witch's Flower of Blaze +80344 : Witch's Flower of Blaze +80350 : Witch's End Time +80351 : Witch's End Time +80352 : Witch's End Time +80353 : Witch's End Time +80354 : Witch's End Time +80410 : Witch's Heart Flames +80411 : Witch's Heart Flames +80412 : Witch's Heart Flames +80413 : Witch's Heart Flames +80414 : Witch's Heart Flames +80420 : Witch's Ever-Burning Plume +80421 : Witch's Ever-Burning Plume +80422 : Witch's Ever-Burning Plume +80423 : Witch's Ever-Burning Plume +80424 : Witch's Ever-Burning Plume +80430 : Witch's Scorching Hat +80431 : Witch's Scorching Hat +80432 : Witch's Scorching Hat +80433 : Witch's Scorching Hat +80434 : Witch's Scorching Hat +80440 : Witch's Flower of Blaze +80441 : Witch's Flower of Blaze +80442 : Witch's Flower of Blaze +80443 : Witch's Flower of Blaze +80444 : Witch's Flower of Blaze +80450 : Witch's End Time +80451 : Witch's End Time +80452 : Witch's End Time +80453 : Witch's End Time +80454 : Witch's End Time +80510 : Witch's Heart Flames +80511 : Witch's Heart Flames +80512 : Witch's Heart Flames +80513 : Witch's Heart Flames +80514 : Witch's Heart Flames +80520 : Witch's Ever-Burning Plume +80521 : Witch's Ever-Burning Plume +80522 : Witch's Ever-Burning Plume +80523 : Witch's Ever-Burning Plume +80524 : Witch's Ever-Burning Plume +80530 : Witch's Scorching Hat +80531 : Witch's Scorching Hat +80532 : Witch's Scorching Hat +80533 : Witch's Scorching Hat +80534 : Witch's Scorching Hat +80540 : Witch's Flower of Blaze +80541 : Witch's Flower of Blaze +80542 : Witch's Flower of Blaze +80543 : Witch's Flower of Blaze +80544 : Witch's Flower of Blaze +80550 : Witch's End Time +80551 : Witch's End Time +80552 : Witch's End Time +80553 : Witch's End Time +80554 : Witch's End Time +81310 : Royal Silver Urn +81311 : Royal Silver Urn +81312 : Royal Silver Urn +81313 : Royal Silver Urn +81314 : Royal Silver Urn +81320 : Royal Plume +81321 : Royal Plume +81322 : Royal Plume +81323 : Royal Plume +81324 : Royal Plume +81330 : Royal Masque +81331 : Royal Masque +81332 : Royal Masque +81333 : Royal Masque +81334 : Royal Masque +81340 : Royal Flora +81341 : Royal Flora +81342 : Royal Flora +81343 : Royal Flora +81344 : Royal Flora +81350 : Royal Pocket Watch +81351 : Royal Pocket Watch +81352 : Royal Pocket Watch +81353 : Royal Pocket Watch +81354 : Royal Pocket Watch +81410 : Royal Silver Urn +81411 : Royal Silver Urn +81412 : Royal Silver Urn +81413 : Royal Silver Urn +81414 : Royal Silver Urn +81420 : Royal Plume +81421 : Royal Plume +81422 : Royal Plume +81423 : Royal Plume +81424 : Royal Plume +81430 : Royal Masque +81431 : Royal Masque +81432 : Royal Masque +81433 : Royal Masque +81434 : Royal Masque +81440 : Royal Flora +81441 : Royal Flora +81442 : Royal Flora +81443 : Royal Flora +81444 : Royal Flora +81450 : Royal Pocket Watch +81451 : Royal Pocket Watch +81452 : Royal Pocket Watch +81453 : Royal Pocket Watch +81454 : Royal Pocket Watch +81510 : Royal Silver Urn +81511 : Royal Silver Urn +81512 : Royal Silver Urn +81513 : Royal Silver Urn +81514 : Royal Silver Urn +81520 : Royal Plume +81521 : Royal Plume +81522 : Royal Plume +81523 : Royal Plume +81524 : Royal Plume +81530 : Royal Masque +81531 : Royal Masque +81532 : Royal Masque +81533 : Royal Masque +81534 : Royal Masque +81540 : Royal Flora +81541 : Royal Flora +81542 : Royal Flora +81543 : Royal Flora +81544 : Royal Flora +81550 : Royal Pocket Watch +81551 : Royal Pocket Watch +81552 : Royal Pocket Watch +81553 : Royal Pocket Watch +81554 : Royal Pocket Watch +82310 : Bloodstained Chevalier's Goblet +82311 : Bloodstained Chevalier's Goblet +82312 : Bloodstained Chevalier's Goblet +82313 : Bloodstained Chevalier's Goblet +82314 : Bloodstained Chevalier's Goblet +82320 : Bloodstained Black Plume +82321 : Bloodstained Black Plume +82322 : Bloodstained Black Plume +82323 : Bloodstained Black Plume +82324 : Bloodstained Black Plume +82330 : Bloodstained Iron Mask +82331 : Bloodstained Iron Mask +82332 : Bloodstained Iron Mask +82333 : Bloodstained Iron Mask +82334 : Bloodstained Iron Mask +82340 : Bloodstained Flower of Iron +82341 : Bloodstained Flower of Iron +82342 : Bloodstained Flower of Iron +82343 : Bloodstained Flower of Iron +82344 : Bloodstained Flower of Iron +82350 : Bloodstained Final Hour +82351 : Bloodstained Final Hour +82352 : Bloodstained Final Hour +82353 : Bloodstained Final Hour +82354 : Bloodstained Final Hour +82410 : Bloodstained Chevalier's Goblet +82411 : Bloodstained Chevalier's Goblet +82412 : Bloodstained Chevalier's Goblet +82413 : Bloodstained Chevalier's Goblet +82414 : Bloodstained Chevalier's Goblet +82420 : Bloodstained Black Plume +82421 : Bloodstained Black Plume +82422 : Bloodstained Black Plume +82423 : Bloodstained Black Plume +82424 : Bloodstained Black Plume +82430 : Bloodstained Iron Mask +82431 : Bloodstained Iron Mask +82432 : Bloodstained Iron Mask +82433 : Bloodstained Iron Mask +82434 : Bloodstained Iron Mask +82440 : Bloodstained Flower of Iron +82441 : Bloodstained Flower of Iron +82442 : Bloodstained Flower of Iron +82443 : Bloodstained Flower of Iron +82444 : Bloodstained Flower of Iron +82450 : Bloodstained Final Hour +82451 : Bloodstained Final Hour +82452 : Bloodstained Final Hour +82453 : Bloodstained Final Hour +82454 : Bloodstained Final Hour +82510 : Bloodstained Chevalier's Goblet +82511 : Bloodstained Chevalier's Goblet +82512 : Bloodstained Chevalier's Goblet +82513 : Bloodstained Chevalier's Goblet +82514 : Bloodstained Chevalier's Goblet +82520 : Bloodstained Black Plume +82521 : Bloodstained Black Plume +82522 : Bloodstained Black Plume +82523 : Bloodstained Black Plume +82524 : Bloodstained Black Plume +82530 : Bloodstained Iron Mask +82531 : Bloodstained Iron Mask +82532 : Bloodstained Iron Mask +82533 : Bloodstained Iron Mask +82534 : Bloodstained Iron Mask +82540 : Bloodstained Flower of Iron +82541 : Bloodstained Flower of Iron +82542 : Bloodstained Flower of Iron +82543 : Bloodstained Flower of Iron +82544 : Bloodstained Flower of Iron +82550 : Bloodstained Final Hour +82551 : Bloodstained Final Hour +82552 : Bloodstained Final Hour +82553 : Bloodstained Final Hour +82554 : Bloodstained Final Hour +83330 : Tiara of Flame +83331 : Tiara of Flame +83332 : Tiara of Flame +83333 : Tiara of Flame +83334 : Tiara of Flame +83430 : Tiara of Flame +83431 : Tiara of Flame +83432 : Tiara of Flame +83433 : Tiara of Flame +83434 : Tiara of Flame +83530 : Tiara of Flame +83531 : Tiara of Flame +83532 : Tiara of Flame +83533 : Tiara of Flame +83534 : Tiara of Flame +84330 : Tiara of Torrents +84331 : Tiara of Torrents +84332 : Tiara of Torrents +84333 : Tiara of Torrents +84334 : Tiara of Torrents +84430 : Tiara of Torrents +84431 : Tiara of Torrents +84432 : Tiara of Torrents +84433 : Tiara of Torrents +84434 : Tiara of Torrents +84530 : Tiara of Torrents +84531 : Tiara of Torrents +84532 : Tiara of Torrents +84533 : Tiara of Torrents +84534 : Tiara of Torrents +85330 : Tiara of Thunder +85331 : Tiara of Thunder +85332 : Tiara of Thunder +85333 : Tiara of Thunder +85334 : Tiara of Thunder +85430 : Tiara of Thunder +85431 : Tiara of Thunder +85432 : Tiara of Thunder +85433 : Tiara of Thunder +85434 : Tiara of Thunder +85530 : Tiara of Thunder +85531 : Tiara of Thunder +85532 : Tiara of Thunder +85533 : Tiara of Thunder +85534 : Tiara of Thunder +86330 : Tiara of Gales +86331 : Tiara of Gales +86332 : Tiara of Gales +86333 : Tiara of Gales +86334 : Tiara of Gales +86430 : Tiara of Gales +86431 : Tiara of Gales +86432 : Tiara of Gales +86433 : Tiara of Gales +86434 : Tiara of Gales +86530 : Tiara of Gales +86531 : Tiara of Gales +86532 : Tiara of Gales +86533 : Tiara of Gales +86534 : Tiara of Gales +87330 : Tiara of Frost +87331 : Tiara of Frost +87332 : Tiara of Frost +87333 : Tiara of Frost +87334 : Tiara of Frost +87430 : Tiara of Frost +87431 : Tiara of Frost +87432 : Tiara of Frost +87433 : Tiara of Frost +87434 : Tiara of Frost +87530 : Tiara of Frost +87531 : Tiara of Frost +87532 : Tiara of Frost +87533 : Tiara of Frost +87534 : Tiara of Frost +88310 : Goblet of Chiseled Crag +88311 : Goblet of Chiseled Crag +88312 : Goblet of Chiseled Crag +88313 : Goblet of Chiseled Crag +88314 : Goblet of Chiseled Crag +88320 : Feather of Jagged Peaks +88321 : Feather of Jagged Peaks +88322 : Feather of Jagged Peaks +88323 : Feather of Jagged Peaks +88324 : Feather of Jagged Peaks +88330 : Mask of Solitude Basalt +88331 : Mask of Solitude Basalt +88332 : Mask of Solitude Basalt +88333 : Mask of Solitude Basalt +88334 : Mask of Solitude Basalt +88340 : Flower of Creviced Cliff +88341 : Flower of Creviced Cliff +88342 : Flower of Creviced Cliff +88343 : Flower of Creviced Cliff +88344 : Flower of Creviced Cliff +88350 : Sundial of Enduring Jade +88351 : Sundial of Enduring Jade +88352 : Sundial of Enduring Jade +88353 : Sundial of Enduring Jade +88354 : Sundial of Enduring Jade +88410 : Goblet of Chiseled Crag +88411 : Goblet of Chiseled Crag +88412 : Goblet of Chiseled Crag +88413 : Goblet of Chiseled Crag +88414 : Goblet of Chiseled Crag +88420 : Feather of Jagged Peaks +88421 : Feather of Jagged Peaks +88422 : Feather of Jagged Peaks +88423 : Feather of Jagged Peaks +88424 : Feather of Jagged Peaks +88430 : Mask of Solitude Basalt +88431 : Mask of Solitude Basalt +88432 : Mask of Solitude Basalt +88433 : Mask of Solitude Basalt +88434 : Mask of Solitude Basalt +88440 : Flower of Creviced Cliff +88441 : Flower of Creviced Cliff +88442 : Flower of Creviced Cliff +88443 : Flower of Creviced Cliff +88444 : Flower of Creviced Cliff +88450 : Sundial of Enduring Jade +88451 : Sundial of Enduring Jade +88452 : Sundial of Enduring Jade +88453 : Sundial of Enduring Jade +88454 : Sundial of Enduring Jade +88510 : Goblet of Chiseled Crag +88511 : Goblet of Chiseled Crag +88512 : Goblet of Chiseled Crag +88513 : Goblet of Chiseled Crag +88514 : Goblet of Chiseled Crag +88520 : Feather of Jagged Peaks +88521 : Feather of Jagged Peaks +88522 : Feather of Jagged Peaks +88523 : Feather of Jagged Peaks +88524 : Feather of Jagged Peaks +88530 : Mask of Solitude Basalt +88531 : Mask of Solitude Basalt +88532 : Mask of Solitude Basalt +88533 : Mask of Solitude Basalt +88534 : Mask of Solitude Basalt +88540 : Flower of Creviced Cliff +88541 : Flower of Creviced Cliff +88542 : Flower of Creviced Cliff +88543 : Flower of Creviced Cliff +88544 : Flower of Creviced Cliff +88550 : Sundial of Enduring Jade +88551 : Sundial of Enduring Jade +88552 : Sundial of Enduring Jade +88553 : Sundial of Enduring Jade +88554 : Sundial of Enduring Jade +89310 : Summer Night's Waterballoon +89311 : Summer Night's Waterballoon +89312 : Summer Night's Waterballoon +89313 : Summer Night's Waterballoon +89314 : Summer Night's Waterballoon +89320 : Summer Night's Finale +89321 : Summer Night's Finale +89322 : Summer Night's Finale +89323 : Summer Night's Finale +89324 : Summer Night's Finale +89330 : Summer Night's Mask +89331 : Summer Night's Mask +89332 : Summer Night's Mask +89333 : Summer Night's Mask +89334 : Summer Night's Mask +89340 : Summer Night's Bloom +89341 : Summer Night's Bloom +89342 : Summer Night's Bloom +89343 : Summer Night's Bloom +89344 : Summer Night's Bloom +89350 : Summer Night's Moment +89351 : Summer Night's Moment +89352 : Summer Night's Moment +89353 : Summer Night's Moment +89354 : Summer Night's Moment +89410 : Summer Night's Waterballoon +89411 : Summer Night's Waterballoon +89412 : Summer Night's Waterballoon +89413 : Summer Night's Waterballoon +89414 : Summer Night's Waterballoon +89420 : Summer Night's Finale +89421 : Summer Night's Finale +89422 : Summer Night's Finale +89423 : Summer Night's Finale +89424 : Summer Night's Finale +89430 : Summer Night's Mask +89431 : Summer Night's Mask +89432 : Summer Night's Mask +89433 : Summer Night's Mask +89434 : Summer Night's Mask +89440 : Summer Night's Bloom +89441 : Summer Night's Bloom +89442 : Summer Night's Bloom +89443 : Summer Night's Bloom +89444 : Summer Night's Bloom +89450 : Summer Night's Moment +89451 : Summer Night's Moment +89452 : Summer Night's Moment +89453 : Summer Night's Moment +89454 : Summer Night's Moment +89510 : Summer Night's Waterballoon +89511 : Summer Night's Waterballoon +89512 : Summer Night's Waterballoon +89513 : Summer Night's Waterballoon +89514 : Summer Night's Waterballoon +89520 : Summer Night's Finale +89521 : Summer Night's Finale +89522 : Summer Night's Finale +89523 : Summer Night's Finale +89524 : Summer Night's Finale +89530 : Summer Night's Mask +89531 : Summer Night's Mask +89532 : Summer Night's Mask +89533 : Summer Night's Mask +89534 : Summer Night's Mask +89540 : Summer Night's Bloom +89541 : Summer Night's Bloom +89542 : Summer Night's Bloom +89543 : Summer Night's Bloom +89544 : Summer Night's Bloom +89550 : Summer Night's Moment +89551 : Summer Night's Moment +89552 : Summer Night's Moment +89553 : Summer Night's Moment +89554 : Summer Night's Moment +90310 : Goblet of Thundering Deep +90311 : Goblet of Thundering Deep +90312 : Goblet of Thundering Deep +90313 : Goblet of Thundering Deep +90314 : Goblet of Thundering Deep +90320 : Gust of Nostalgia +90321 : Gust of Nostalgia +90322 : Gust of Nostalgia +90323 : Gust of Nostalgia +90324 : Gust of Nostalgia +90330 : Wine-Stained Tricorne +90331 : Wine-Stained Tricorne +90332 : Wine-Stained Tricorne +90333 : Wine-Stained Tricorne +90334 : Wine-Stained Tricorne +90340 : Gilded Corsage +90341 : Gilded Corsage +90342 : Gilded Corsage +90343 : Gilded Corsage +90344 : Gilded Corsage +90350 : Copper Compass +90351 : Copper Compass +90352 : Copper Compass +90353 : Copper Compass +90354 : Copper Compass +90410 : Goblet of Thundering Deep +90411 : Goblet of Thundering Deep +90412 : Goblet of Thundering Deep +90413 : Goblet of Thundering Deep +90414 : Goblet of Thundering Deep +90420 : Gust of Nostalgia +90421 : Gust of Nostalgia +90422 : Gust of Nostalgia +90423 : Gust of Nostalgia +90424 : Gust of Nostalgia +90430 : Wine-Stained Tricorne +90431 : Wine-Stained Tricorne +90432 : Wine-Stained Tricorne +90433 : Wine-Stained Tricorne +90434 : Wine-Stained Tricorne +90440 : Gilded Corsage +90441 : Gilded Corsage +90442 : Gilded Corsage +90443 : Gilded Corsage +90444 : Gilded Corsage +90450 : Copper Compass +90451 : Copper Compass +90452 : Copper Compass +90453 : Copper Compass +90454 : Copper Compass +90510 : Goblet of Thundering Deep +90511 : Goblet of Thundering Deep +90512 : Goblet of Thundering Deep +90513 : Goblet of Thundering Deep +90514 : Goblet of Thundering Deep +90520 : Gust of Nostalgia +90521 : Gust of Nostalgia +90522 : Gust of Nostalgia +90523 : Gust of Nostalgia +90524 : Gust of Nostalgia +90530 : Wine-Stained Tricorne +90531 : Wine-Stained Tricorne +90532 : Wine-Stained Tricorne +90533 : Wine-Stained Tricorne +90534 : Wine-Stained Tricorne +90540 : Gilded Corsage +90541 : Gilded Corsage +90542 : Gilded Corsage +90543 : Gilded Corsage +90544 : Gilded Corsage +90550 : Copper Compass +90551 : Copper Compass +90552 : Copper Compass +90553 : Copper Compass +90554 : Copper Compass +91310 : Noble's Pledging Vessel +91311 : Noble's Pledging Vessel +91312 : Noble's Pledging Vessel +91313 : Noble's Pledging Vessel +91314 : Noble's Pledging Vessel +91320 : Ceremonial War-Plume +91321 : Ceremonial War-Plume +91322 : Ceremonial War-Plume +91323 : Ceremonial War-Plume +91324 : Ceremonial War-Plume +91330 : General's Ancient Helm +91331 : General's Ancient Helm +91332 : General's Ancient Helm +91333 : General's Ancient Helm +91334 : General's Ancient Helm +91340 : Flower of Accolades +91341 : Flower of Accolades +91342 : Flower of Accolades +91343 : Flower of Accolades +91344 : Flower of Accolades +91350 : Orichalceous Time-Dial +91351 : Orichalceous Time-Dial +91352 : Orichalceous Time-Dial +91353 : Orichalceous Time-Dial +91354 : Orichalceous Time-Dial +91410 : Noble's Pledging Vessel +91411 : Noble's Pledging Vessel +91412 : Noble's Pledging Vessel +91413 : Noble's Pledging Vessel +91414 : Noble's Pledging Vessel +91420 : Ceremonial War-Plume +91421 : Ceremonial War-Plume +91422 : Ceremonial War-Plume +91423 : Ceremonial War-Plume +91424 : Ceremonial War-Plume +91430 : General's Ancient Helm +91431 : General's Ancient Helm +91432 : General's Ancient Helm +91433 : General's Ancient Helm +91434 : General's Ancient Helm +91440 : Flower of Accolades +91441 : Flower of Accolades +91442 : Flower of Accolades +91443 : Flower of Accolades +91444 : Flower of Accolades +91450 : Orichalceous Time-Dial +91451 : Orichalceous Time-Dial +91452 : Orichalceous Time-Dial +91453 : Orichalceous Time-Dial +91454 : Orichalceous Time-Dial +91510 : Noble's Pledging Vessel +91511 : Noble's Pledging Vessel +91512 : Noble's Pledging Vessel +91513 : Noble's Pledging Vessel +91514 : Noble's Pledging Vessel +91520 : Ceremonial War-Plume +91521 : Ceremonial War-Plume +91522 : Ceremonial War-Plume +91523 : Ceremonial War-Plume +91524 : Ceremonial War-Plume +91530 : General's Ancient Helm +91531 : General's Ancient Helm +91532 : General's Ancient Helm +91533 : General's Ancient Helm +91534 : General's Ancient Helm +91540 : Flower of Accolades +91541 : Flower of Accolades +91542 : Flower of Accolades +91543 : Flower of Accolades +91544 : Flower of Accolades +91550 : Orichalceous Time-Dial +91551 : Orichalceous Time-Dial +91552 : Orichalceous Time-Dial +91553 : Orichalceous Time-Dial +91554 : Orichalceous Time-Dial +92310 : Surpassing Cup +92311 : Surpassing Cup +92312 : Surpassing Cup +92313 : Surpassing Cup +92314 : Surpassing Cup +92320 : Wise Doctor's Pinion +92321 : Wise Doctor's Pinion +92322 : Wise Doctor's Pinion +92323 : Wise Doctor's Pinion +92324 : Wise Doctor's Pinion +92330 : Mocking Mask +92331 : Mocking Mask +92332 : Mocking Mask +92333 : Mocking Mask +92334 : Mocking Mask +92340 : Stainless Bloom +92341 : Stainless Bloom +92342 : Stainless Bloom +92343 : Stainless Bloom +92344 : Stainless Bloom +92350 : Moment of Cessation +92351 : Moment of Cessation +92352 : Moment of Cessation +92353 : Moment of Cessation +92354 : Moment of Cessation +92410 : Surpassing Cup +92411 : Surpassing Cup +92412 : Surpassing Cup +92413 : Surpassing Cup +92414 : Surpassing Cup +92420 : Wise Doctor's Pinion +92421 : Wise Doctor's Pinion +92422 : Wise Doctor's Pinion +92423 : Wise Doctor's Pinion +92424 : Wise Doctor's Pinion +92430 : Mocking Mask +92431 : Mocking Mask +92432 : Mocking Mask +92433 : Mocking Mask +92434 : Mocking Mask +92440 : Stainless Bloom +92441 : Stainless Bloom +92442 : Stainless Bloom +92443 : Stainless Bloom +92444 : Stainless Bloom +92450 : Moment of Cessation +92451 : Moment of Cessation +92452 : Moment of Cessation +92453 : Moment of Cessation +92454 : Moment of Cessation +92510 : Surpassing Cup +92511 : Surpassing Cup +92512 : Surpassing Cup +92513 : Surpassing Cup +92514 : Surpassing Cup +92520 : Wise Doctor's Pinion +92521 : Wise Doctor's Pinion +92522 : Wise Doctor's Pinion +92523 : Wise Doctor's Pinion +92524 : Wise Doctor's Pinion +92530 : Mocking Mask +92531 : Mocking Mask +92532 : Mocking Mask +92533 : Mocking Mask +92534 : Mocking Mask +92540 : Stainless Bloom +92541 : Stainless Bloom +92542 : Stainless Bloom +92543 : Stainless Bloom +92544 : Stainless Bloom +92550 : Moment of Cessation +92551 : Moment of Cessation +92552 : Moment of Cessation +92553 : Moment of Cessation +92554 : Moment of Cessation +93412 : Hopeful Heart +93413 : Hopeful Heart +93422 : Shaft of Remembrance +93423 : Shaft of Remembrance +93432 : Capricious Visage +93433 : Capricious Visage +93442 : Entangling Bloom +93443 : Entangling Bloom +93452 : Morning Dew's Moment +93453 : Morning Dew's Moment +93513 : Hopeful Heart +93514 : Hopeful Heart +93523 : Shaft of Remembrance +93524 : Shaft of Remembrance +93533 : Capricious Visage +93534 : Capricious Visage +93543 : Entangling Bloom +93544 : Entangling Bloom +93553 : Morning Dew's Moment +93554 : Morning Dew's Moment +94412 : Scarlet Vessel +94413 : Scarlet Vessel +94422 : Sundered Feather +94423 : Sundered Feather +94432 : Ornate Kabuto +94433 : Ornate Kabuto +94442 : Magnificent Tsuba +94443 : Magnificent Tsuba +94452 : Storm Cage +94453 : Storm Cage +94513 : Scarlet Vessel +94514 : Scarlet Vessel +94523 : Sundered Feather +94524 : Sundered Feather +94533 : Ornate Kabuto +94534 : Ornate Kabuto +94543 : Magnificent Tsuba +94544 : Magnificent Tsuba +94553 : Storm Cage +94554 : Storm Cage +95412 : Calabash of Awakening +95413 : Calabash of Awakening +95422 : Plume of Luxury +95423 : Plume of Luxury +95432 : Skeletal Hat +95433 : Skeletal Hat +95442 : Bloom Times +95443 : Bloom Times +95452 : Song of Life +95453 : Song of Life +95513 : Calabash of Awakening +95514 : Calabash of Awakening +95523 : Plume of Luxury +95524 : Plume of Luxury +95533 : Skeletal Hat +95534 : Skeletal Hat +95543 : Bloom Times +95544 : Bloom Times +95553 : Song of Life +95554 : Song of Life +96412 : Pearl Cage +96413 : Pearl Cage +96422 : Deep Palace's Plume +96423 : Deep Palace's Plume +96432 : Crown of Watatsumi +96433 : Crown of Watatsumi +96442 : Sea-Dyed Blossom +96443 : Sea-Dyed Blossom +96452 : Cowry of Parting +96453 : Cowry of Parting +96513 : Pearl Cage +96514 : Pearl Cage +96523 : Deep Palace's Plume +96524 : Deep Palace's Plume +96533 : Crown of Watatsumi +96534 : Crown of Watatsumi +96543 : Sea-Dyed Blossom +96544 : Sea-Dyed Blossom +96553 : Cowry of Parting +96554 : Cowry of Parting +97412 : Moment of the Pact +97413 : Moment of the Pact +97422 : Feather of Nascent Light +97423 : Feather of Nascent Light +97432 : Thundering Poise +97433 : Thundering Poise +97442 : Flowering Life +97443 : Flowering Life +97452 : Solar Relic +97453 : Solar Relic +97513 : Moment of the Pact +97514 : Moment of the Pact +97523 : Feather of Nascent Light +97524 : Feather of Nascent Light +97533 : Thundering Poise +97534 : Thundering Poise +97543 : Flowering Life +97544 : Flowering Life +97553 : Solar Relic +97554 : Solar Relic +98412 : Chalice of the Font +98413 : Chalice of the Font +98422 : Jade Leaf +98423 : Jade Leaf +98432 : Flowing Rings +98433 : Flowing Rings +98442 : Soulscent Bloom +98443 : Soulscent Bloom +98452 : Symbol of Felicitation +98453 : Symbol of Felicitation +98513 : Chalice of the Font +98514 : Chalice of the Font +98523 : Jade Leaf +98524 : Jade Leaf +98533 : Flowing Rings +98534 : Flowing Rings +98543 : Soulscent Bloom +98544 : Soulscent Bloom +98553 : Symbol of Felicitation +98554 : Symbol of Felicitation +99310 : Lord of Wind over Firmament's Cup +99311 : Lord of Wind over Firmament's Cup +99312 : Lord of Wind over Firmament's Cup +99313 : Lord of Wind over Firmament's Cup +99314 : Lord of Wind over Firmament's Cup +99320 : Lord of Wind over Firmament's Feather +99321 : Lord of Wind over Firmament's Feather +99322 : Lord of Wind over Firmament's Feather +99323 : Lord of Wind over Firmament's Feather +99324 : Lord of Wind over Firmament's Feather +99330 : Lord of Wind over Firmament's Crown +99331 : Lord of Wind over Firmament's Crown +99332 : Lord of Wind over Firmament's Crown +99333 : Lord of Wind over Firmament's Crown +99334 : Lord of Wind over Firmament's Crown +99340 : Lord of Wind over Firmament's Flower +99341 : Lord of Wind over Firmament's Flower +99342 : Lord of Wind over Firmament's Flower +99343 : Lord of Wind over Firmament's Flower +99344 : Lord of Wind over Firmament's Flower +99350 : Lord of Wind over Firmament's Hourglass +99351 : Lord of Wind over Firmament's Hourglass +99352 : Lord of Wind over Firmament's Hourglass +99353 : Lord of Wind over Firmament's Hourglass +99354 : Lord of Wind over Firmament's Hourglass +99410 : Lord of Wind over Firmament's Cup +99411 : Lord of Wind over Firmament's Cup +99412 : Lord of Wind over Firmament's Cup +99413 : Lord of Wind over Firmament's Cup +99414 : Lord of Wind over Firmament's Cup +99420 : Lord of Wind over Firmament's Feather +99421 : Lord of Wind over Firmament's Feather +99422 : Lord of Wind over Firmament's Feather +99423 : Lord of Wind over Firmament's Feather +99424 : Lord of Wind over Firmament's Feather +99430 : Lord of Wind over Firmament's Crown +99431 : Lord of Wind over Firmament's Crown +99432 : Lord of Wind over Firmament's Crown +99433 : Lord of Wind over Firmament's Crown +99434 : Lord of Wind over Firmament's Crown +99440 : Lord of Wind over Firmament's Flower +99441 : Lord of Wind over Firmament's Flower +99442 : Lord of Wind over Firmament's Flower +99443 : Lord of Wind over Firmament's Flower +99444 : Lord of Wind over Firmament's Flower +99450 : Lord of Wind over Firmament's Hourglass +99451 : Lord of Wind over Firmament's Hourglass +99452 : Lord of Wind over Firmament's Hourglass +99453 : Lord of Wind over Firmament's Hourglass +99454 : Lord of Wind over Firmament's Hourglass +99510 : Lord of Wind over Firmament's Cup +99511 : Lord of Wind over Firmament's Cup +99512 : Lord of Wind over Firmament's Cup +99513 : Lord of Wind over Firmament's Cup +99514 : Lord of Wind over Firmament's Cup +99520 : Lord of Wind over Firmament's Feather +99521 : Lord of Wind over Firmament's Feather +99522 : Lord of Wind over Firmament's Feather +99523 : Lord of Wind over Firmament's Feather +99524 : Lord of Wind over Firmament's Feather +99530 : Lord of Wind over Firmament's Crown +99531 : Lord of Wind over Firmament's Crown +99532 : Lord of Wind over Firmament's Crown +99533 : Lord of Wind over Firmament's Crown +99534 : Lord of Wind over Firmament's Crown +99540 : Lord of Wind over Firmament's Flower +99541 : Lord of Wind over Firmament's Flower +99542 : Lord of Wind over Firmament's Flower +99543 : Lord of Wind over Firmament's Flower +99544 : Lord of Wind over Firmament's Flower +99550 : Lord of Wind over Firmament's Hourglass +99551 : Lord of Wind over Firmament's Hourglass +99552 : Lord of Wind over Firmament's Hourglass +99553 : Lord of Wind over Firmament's Hourglass +99554 : Lord of Wind over Firmament's Hourglass +100001 : Apple +100002 : Sunsettia +100003 : A Piece of Paper +100004 : Stolen Items +100006 : Hilichurl Antidote +100007 : Climbing Finish Line Garland +100008 : Gliding Finish Line Garland +100009 : Gliding Finish Line Garland +100010 : Gliding Champion Cup +100011 : Mushroom +100012 : Sweet Flower +100013 : Carrot +100014 : Radish +100015 : Snapdragon +100016 : Mint +100017 : Wheat +100018 : Cabbage +100019 : Silver Lotus +100020 : Pinecone +100021 : Wolfhook +100022 : Valberry +100023 : Cecilia +100024 : Windwheel Aster +100025 : Philanemo Mushroom +100026 : Lotus Head +100027 : Jueyun Chili +100028 : Noctilucous Jade +100029 : Silk Flower +100030 : Glaze Lily +100031 : Qingxin +100032 : Horsetail +100033 : Starconch +100034 : Violetgrass +100051 : Berry +100052 : Mist Flower Corolla +100053 : Flaming Flower Stamen +100054 : Electro Crystal +100055 : Small Lamp Grass +100056 : Calla Lily +100057 : Dandelion Seed +100058 : Cor Lapis +100061 : Raw Meat +100062 : Bird Egg +100063 : Matsutake +100064 : Fowl +100072 : Butterfly Wings +100073 : Crab +100074 : Crab Roe +100075 : Salt +100076 : Onion +100077 : Pepper +100078 : Milk +100079 : Tomato +100080 : Potato +100081 : Frog +100082 : Luminescent Spine +100083 : Lizard Tail +100084 : Fish +100085 : Crystal Core +100086 : Raw Meat (S) +100087 : Fowl (S) +100088 : Tofu +100089 : Almond +100090 : Loach Pearl +100091 : Bamboo Shoot +100092 : Rice +100093 : Shrimp Meat +100094 : Chilled Meat +100095 : Unagi Meat +100101 : Jean's Document Package +100102 : Extreme Escape +100103 : Incomplete Score (Part 1) +100104 : Incomplete Score (Part 2) +100105 : Private Letter from Lisa to Jean +100106 : Autumn Night +100107 : Tasty-Looking Potion +100108 : Potion +100109 : Barbara's Treatment +100110 : Incomplete Poem (Part 1) +100111 : Incomplete Poem (Part 2) +100112 : Incomplete Poem (Part 3) +100113 : Inscription Rubbing +100114 : Form Restoration Potion +100115 : Holy Lyre der Himmel +100120 : Cricket Hair +100121 : Cricket (White) +100122 : Cricket (Blue) +100123 : Cricket (Purple) +100124 : Cricket (Gold) +100125 : Hydro Amber +100126 : Anemo Amber +100131 : Random Loot (A) +100132 : Random Loot (B) +100133 : Random Loot (A) +100134 : Random Loot (B) +100135 : Crimson Crystal +100136 : Seal Clue 101 +100137 : Seal Clue 102 +100138 : Seal Clue 103 +100139 : Seal Clue 201 +100140 : Seal Clue 202 +100141 : Seal Clue 203 +100142 : Seal Clue 301 +100143 : Seal Clue 302 +100144 : Seal Clue 303 +100145 : Break Seal 1 +100146 : Break Seal 2 +100147 : Break Seal 3 +100148 : Investigate the Seal of Stormterror's Lair +100149 : Break the seal of Stormterror's Lair +100151 : Fragmented Memory (Wind) +100152 : Sword Cemetery Seal 1 +100153 : Sword Cemetery Seal 2 +100154 : Sword Cemetery Seal 3 +100158 : Teardrop Crystal +100159 : Teardrop Crystal +100160 : Teardrop Crystal +100161 : Holy Lyre der Himmel +100162 : Partially Repaired Holy Lyre der Himmel +100163 : Completely Repaired Holy Lyre der Himmel +100164 : Clear Dvalin Tear +100165 : Damaged Holy Lyre der Himmel +100171 : Treasure Clue (I) +100172 : Treasure Clue (II) +100173 : Treasure Map +100174 : Universal Temporary Interaction +100175 : Hidden Key +100176 : Black Key +100177 : Scene Interaction +100178 : Vera's Melancholy (I) +100179 : Vera's Melancholy (II) +100180 : Vera's Melancholy (III) +100181 : Along with Divinity: Prologue +100182 : The Legend of Vennessa (I) +100183 : The Legend of Vennessa (II) +100184 : Poster +100185 : Poster +100186 : Mondstadt General Goods Order Board +100187 : Cat's Tail Tavern Message Board +100188 : The Fox in the Dandelion Sea (I) +100189 : The Fox in the Dandelion Sea (II) +100190 : The Fox in the Dandelion Sea (III) +100191 : The Fox in the Dandelion Sea (V) +100192 : The Fox in the Dandelion Sea (VI) +100193 : The Fox in the Dandelion Sea (VII) +100194 : The Fox in the Dandelion Sea (X) +100195 : The Fox in the Dandelion Sea (XI) +100196 : Hilichurl Ballad Selection (I) +100197 : Hilichurl Ballad Selection (II) +100198 : Vera's Melancholy (V) +100199 : Vera's Melancholy (IX) +100200 : Vera's Melancholy (X) +100201 : Breeze Amidst the Forest - Ballad Selection Excerpt +100202 : The Boar Princess (I) +100203 : The Boar Princess (II) +100204 : The Boar Princess (III) +100205 : The Boar Princess (IV) +100206 : The Boar Princess (V) +100207 : The Boar Princess (VII) +100208 : The Mondstadt Tower (I) +100210 : Elemental Mark +100211 : Broken-off Branch +100212 : Fabric Piece +100213 : Breeze Amidst the Forest Supplement: The Dragon Tome +100214 : Letter from the Abyss Order +100215 : The Pale Princess and the Six Pygmies (I) +100216 : The Pale Princess and the Six Pygmies (II) +100217 : The Pale Princess and the Six Pygmies (III) +100218 : The Pale Princess and the Six Pygmies (IV) +100219 : The Pale Princess and the Six Pygmies (V) +100220 : The Pale Princess and the Six Pygmies (VI) +100221 : The Pale Princess and the Six Pygmies (VII) +100222 : 1000 Years of Loneliness +100223 : Teyvat Travel Guide - Mondstadt +100224 : Wind, Courage, and Wings +100225 : Hunting Trap +100226 : Diary of Roald the Adventurer: Qingce Village +100227 : Diary of Roald the Adventurer: Luhua Pool +100228 : Diary of Roald the Adventurer: Yaoguang Shoal +100229 : Letter for Dongdong +100230 : Someone's Diary I: Yaoguang Shoal +100231 : Scattered Page +100232 : Intact Tome +100233 : Hearty Mushrooms +100234 : Crunchy Carrots +100235 : A Plump Cabbage +100236 : Gliding Instruction Manual +100237 : Azurite +100238 : Vermillionite +100239 : Someone's Diary II: Guili Plains +100240 : Someone's Diary III: Jueyun Karst +100241 : Someone's Diary IV: Liyue Harbor +100242 : Letter to the Treasure Hoarders +100243 : Nephrite Ring +100244 : Delicious Golden Crab +100245 : "Of Mountains and Seas" +100246 : Draft Manuscript of "Hyakunin Ikki: The Greatest Battle" +100301 : Wyatt's Red Key +100302 : Wyatt's Black Key +100303 : Coin Pouch +100304 : Meal Fee Pouch +100305 : Delicious Sticky Honey Roast +100306 : Sturdy Plank +100307 : Fragile Wooden Plank +100308 : A Bundle of Ropes +100309 : Meal Fee Pouch +100310 : Lost Coin Pouch +100311 : Meal Fee Pouch +100312 : Delicious Fried Radish Balls +100313 : Delicious Calla Lily Seafood Soup +100314 : Bag of Goods +100315 : Processed Noctilucous Jade +100316 : "Mondstadt Sunset" +100317 : "Margaret" +100318 : "Charged Attack" +100319 : "Pearl" +100320 : Messy "Mondstadt Sunset" +100321 : Unusual "Margaret" +100322 : Bizarre "Charged Attack" +100323 : Unusual "Pearl" +100324 : Odd Cocktail +100325 : Messy Cocktail +100326 : Bizarre Cocktail +100327 : Unusual Beer +100328 : Barely Drinkable Cocktail +100329 : Unknown Cocktail +100330 : Plain Liquor +100331 : (TEST) Cocktail 16 +100332 : (TEST) Cocktail 17 +100333 : (TEST) Cocktail 18 +100334 : (TEST) Cocktail 19 +100335 : (TEST) Cocktail 20 +100336 : (TEST) Cocktail 21 +100337 : (TEST) Cocktail 22 +100338 : (TEST) Cocktail 23 +100339 : (TEST) Cocktail 24 +100340 : (TEST) Cocktail 25 +100341 : (TEST) Cocktail 26 +100342 : (TEST) Cocktail 27 +100343 : (TEST) Cocktail 28 +100344 : (TEST) Cocktail 29 +100345 : (TEST) Cocktail 30 +100346 : (TEST) Cocktail 31 +100347 : (TEST) Cocktail 32 +100348 : Godwin's Letter +100349 : Someone's Drifting Bottle +100350 : (TEST) Klee's Notebook +100351 : Tunner's Cough Syrup +100352 : Draff's Letter +100353 : Materials for Training Dummy +100354 : Sara's Letter +100355 : Clean Radish +100356 : Guy's Letter +100357 : Quinn's Special +100358 : Margaret's Special +100359 : Jack's Special +100360 : Draff's Special +100361 : Teyvat Travel Guide - Liyue +100362 : Letter +100363 : A Huge Bag of Mora +100364 : Legend of the Shattered Halberd (VI) +100365 : Intact Training Dummy +100366 : Legend of the Geo Archon: God of the Stove +100367 : Legend of the Geo Archon: The Groundbreaker +100368 : Legend of the Geo Archon: God of Wealth +100369 : Legend of the Geo Archon: God of History +100370 : The Wrath of Haishan +100371 : +100372 : +100373 : Ring of Raining Blades (I) +100374 : Ring of Raining Blades (II) +100375 : +100376 : Meal Box by Smiley Yanxiao for Jiangxue +100377 : A log of ships coming in and out by Little Lulu +100378 : A log of ships coming in and out by Little Lulu +100379 : A log of ships coming in and out by Little Lulu +100380 : A log of ships coming in and out by Little Fei +100381 : A log of ships coming in and out by Little Fei +100382 : A log of ships coming in and out by Little Fei +100383 : A log of ships coming in and out by Little Meng +100384 : A log of ships coming in and out by Little Meng +100385 : A log of ships coming in and out by Little Meng +100386 : Sealed Package +100387 : First Apprentice of Guhua +100388 : Diary of Roald the Adventurer: Guyun Stone Forest +100389 : Diary of Roald the Adventurer: Sal Terrae +100390 : Diary of Roald the Adventurer: Qingyun Peak, Jueyun Karst +100391 : Diary of Roald the Adventurer: Aocang Lake, Jueyun Karst +100392 : Treasure Map of Lone Gorge +100393 : Treasure Map of Lone Gorge +100394 : Treasure Map of Lone Gorge +100395 : Poorly-Sealed Box +100396 : Tightly-Sealed Box +100397 : +100398 : Katheryne's Letter +100399 : Records of Jueyun: Stone Beasts +100400 : Records of Jueyun: Palace Beneath the Sea +100401 : Verses of Equilibrium +100402 : Records of the Gallant: The Hermit +100403 : Customs of Liyue: Flower Ball +100404 : Stone Tablet Compilations: Vol. I +100405 : Humor From Tianheng +100406 : Hilichurl Cultural Customs (I) +100407 : Hilichurl Cultural Customs (II) +100408 : Hilichurl Cultural Customs (IV) +100409 : History of Kings and Clans: Prologue +100410 : Biography of Gunnhildr +100411 : Ballads of the Squire (I) +100412 : Ballads of the Squire (II) +100413 : Teyvat Wilderness Survivalist's Recipes +100414 : Treasure Map of Giant's Steps +100415 : Treasure Map of Giant's Steps +100416 : Treasure Map of Giant's Steps +100417 : Treasure Map of The Vast Blue +100418 : Treasure Map of The Vast Blue +100419 : Treasure Map of The Vast Blue +100420 : +100421 : +100422 : +100423 : +100424 : +100425 : +100426 : Yakshas: The Guardian Adepti +100427 : Witness Sigil +100428 : Special Almond Tofu +100429 : Dropped Package +100430 : Sigil of Permission +100431 : Klee's Wooden Sign +100432 : Legend of the Shattered Halberd (I) +100433 : Legend of the Shattered Halberd (II) +100434 : Legend of the Shattered Halberd (III) +100435 : Legend of the Shattered Halberd (IV) +100436 : Legend of the Shattered Halberd (V) +100437 : Heart's Desire: Moonlight +100438 : Heart's Desire: Crystal Glaze +100439 : Heart's Desire: Sapphire +100440 : Heart's Desire: Stone Heart +100441 : Diary of Roald the Adventurer: Qingxu Pool +100442 : Traveler's Notes +100443 : Traveler's Notes +100444 : Traveler's Notes +100445 : Traveler's Notes +100450 : Censer +100451 : Seven-Star Lamp +100452 : Letter from Starsnatcher +100453 : Special Mondstadt Hash Brown +100454 : Dendro-Processed Berry +100455 : Thick Hydro Slime Condensate +100456 : Wind-Caressed Aster +100457 : Collected Fragment +100458 : Collected Fragment +100459 : Collected Fragment +100460 : Transcription from a stone tablet +100461 : Transcription from a stone tablet +100462 : Transcription from a stone tablet +100463 : Transcription from a stone tablet +100464 : Transcription from a stone tablet +100465 : Transcription from a ruin +100466 : Transcription from a ruin +100467 : Hidden Treasure of Qingce +100468 : +100469 : Draft Lines of Hilichurlian Poetry +100470 : +100471 : +100472 : A Letter by Timmie +100473 : Marjorie's Recommended Gift +100474 : A Gift from Quinn +100475 : Sara's Special Dish +100476 : Traveling Merchant's Package +100477 : Box of Goods Invoices +100478 : Box of Goods Invoices +100479 : Box of Goods Invoices +100480 : Heart of Clear Springs (I) +100481 : Heart of Clear Springs (II) +100482 : Heart of Clear Springs (III) +100483 : Heart of Clear Springs (IV) +100484 : Linling's Anthology of Selected Poetry +100485 : Goods Invoice +100486 : Invoice of Goods Quantities +100487 : Golden House Maiden +100488 : Valley Weaver +100489 : Fate's Yearning +100490 : Golden House Maiden Essential Oil +100491 : Valley Weaver Essential Oil +100492 : Fate's Yearning Essential Oil +100493 : Bao'er's Empty Box +100494 : Heavy Box +100495 : Sopping Wet Page +100496 : A Huge Bag of Mora +100497 : Golden House Maiden Perfume +100498 : Valley Weaver Perfume +100499 : Fate's Yearning Perfume +100500 : A Box of Gadgets +100501 : Cleansing Bell +100502 : Guizhong Ballista Maintenance Material +100503 : A Record of Qiming and Zhihua's Conversation +100504 : A Record of Sisi and Chaoxi's Conversation +100505 : A Record of Little Meng, Little Fei, and Little Lulu's Conversation +100506 : Norma's Order +100507 : Hilichurl Ballad: Recital Draft +100508 : Hilichurl Ballad: Narrative Draft +100509 : Hilichurl Ballad: Lyrical Draft +100510 : Vile's Gift +100511 : Stolen Relic +100512 : Madame Ping's Box +100513 : A Torn Out Page +100514 : Page of Scribbled Writing +100515 : Noctilucous Jade Sample +100516 : A Bag of Mora +100517 : Mitachurl Loot +100518 : Treasure Hoarder Loot +100519 : Ruin Guard Loot +100520 : Noctilucous Jade Sample +100521 : Noctilucous Jade Sample +100522 : Everlasting Incense +100523 : Guizhong Ballista Maintenance Material +100524 : Sturdy Wooden Plank +100525 : Box of Leaves +100526 : +100527 : +100528 : Treasure Hoarder's Key +100529 : Alrani's Note +100530 : Nameless Treasure +100531 : Nameless Treasure +100532 : Nameless Treasure +100533 : Stone of Remembrance +100534 : Dull Ring +100535 : Vermeer's Paintbrushes +100536 : Vermeer's Paints +100537 : Black and White Sketch +100538 : Color Sketch +100539 : Nameless Sketch +100540 : Strange Stone +100541 : Fresh Qingxin +100542 : Good Hunter's Specialty Dish +100543 : Flora's Bookmark +100544 : Special Beverage from Angel's Share +100545 : Special Perfume +100546 : Mint Essential Oil +100547 : Tasty Slime Condensate +100548 : Extra-Sweet Sweet Flower +100549 : Fresh Sweet Flower +100550 : Fresh Cecilia +100551 : Fresh Windwheel Aster +100552 : Fresh Small Lamp Grass +100553 : Strange Cocktail Ingredient +100554 : Teucer's Mora Pouch +100555 : Childe and Teucer's Mora Pouch +100556 : Plump Sunsettia +100557 : Merchant Poster +100558 : Merchant Poster +100559 : Merchant Poster +100560 : Jiayi's Gifts +100561 : Treasure Hoarder's Map +100562 : Ragged Notebook +100563 : Strange Stone +100564 : Knights of Favonius Handbook - 5th Edition +100565 : Tales From the Waves: Rising Tide +100566 : Tales From the Waves: Wild Storm +100567 : Tales From the Waves: Receding Torrent +100568 : Hex & Hound (I) +100569 : Hex & Hound (II) +100570 : Hex & Hound (III) +100571 : Hex & Hound (IV) +100572 : Hex & Hound (V) +100573 : Moonlit Bamboo Forest (I) +100574 : Moonlit Bamboo Forest (II) +100575 : Moonlit Bamboo Forest (III) +100576 : Moonlit Bamboo Forest (IV) +100577 : A Drunkard's Tale (I) +100578 : A Drunkard's Tale (II) +100579 : A Drunkard's Tale (III) +100580 : A Drunkard's Tale (IV) +100581 : +100582 : +100583 : "Dwelling in the Clouds" Blueprints +100584 : Tainted Blood +100585 : Monolith Fragment +100586 : Rex Incognito (I) +100587 : Rex Incognito (II) +100588 : Rex Incognito (III) +100589 : Rex Incognito (IV) +100590 : Legend of the Lone Sword (I) +100591 : Legend of the Lone Sword (II) +100592 : Legend of the Lone Sword (III) +100593 : Legend of the Lone Sword (IV) +100594 : Little Liu's Gifts +100595 : Chaoxi's Reply to Cui'er +100596 : Little Yue's Gift +100597 : Yinxing's Letter to Bolai +100598 : Clerk Zhao's Invoice for Jiangzhou +100599 : Clerk Zhao's Invoice for Nervous An +100600 : Cui'er's Letter to Chaoxi +100601 : Thick Notebook +100602 : Jack's Map +100603 : Jack's Adventurer Handbook +100604 : Cage Key +100605 : Sugar-Frosted Slime +100606 : Wild Glaze Lily +100607 : The Fox in the Dandelion Sea (IV) +100608 : The Fox in the Dandelion Sea (VIII) +100609 : The Fox in the Dandelion Sea (IX) +100610 : The Boar Princess (VI) +100611 : Vera's Melancholy (IV) +100612 : Vera's Melancholy (VI) +100613 : Vera's Melancholy (VII) +100614 : Vera's Melancholy (VIII) +100615 : Hilichurl Cultural Customs (III) +100616 : +100617 : "Of Mountains and Seas" +100618 : Strange Tooth +100619 : Vitalized Dragontooth +100620 : Princess's Box +100621 : Priest's Box +100622 : Scribe's Box +100623 : Very Ordinary-Looking Sweet Flower +100624 : Customs of Liyue: Receiving God +100625 : Mr. Cyclops Action Figure +100626 : Little Liu's Letter +100627 : Used Training Dummy +100628 : Crude Sack +100629 : Mysterious Stone Tablet +100630 : Treasure Hoarder Scouting Report +100631 : Viktor's Lost Box +100632 : Notice Paper +100633 : Old Business Permit +100634 : Business Premises and Safety Certificates +100635 : Approved Exit Permit +100636 : Great Snowboar King Meat +100637 : Records of Jueyun: Wuwang +100638 : Records of Jueyun: Mountain Spirits +100639 : Meadow of Gems +100640 : Customs of Liyue: Silk Flowers +100641 : Customs of Liyue: Glaze Lilies +100642 : String of Pearls (I) +100643 : String of Pearls (II) +100644 : String of Pearls (III) +100645 : Ancient Investigation Journal: Part I +100646 : Special Mondstadt Hash Brown +100647 : Special Almond Tofu +100648 : Special Jewelry Soup +100649 : Special Sweet Madame +100650 : Special Matsutake Meat Rolls +100651 : Special Jade Parcels +100652 : Special Flaming Red Bolognese +100653 : Special Black-Back Perch Stew +100654 : Special Mora Meat +100655 : Special Tea Break Pancake +100656 : Special Come and Get It +100657 : Special Jueyun Chili Chicken +100658 : Special Mondstadt Hash Brown +100659 : Special Black-Back Perch Stew +100660 : Special Come and Get It +100661 : Special Mondstadt Grilled Fish +100662 : Special Stir-Fried Filet +100663 : Special Lotus Seed and Bird Egg Soup +100664 : Special Fisherman's Toast +100665 : Special Almond Tofu +100666 : Special Jewelry Soup +100667 : Orders +100668 : +100669 : +100670 : +100671 : +100672 : +100673 : +100674 : +100675 : +100676 : +100677 : +100678 : +100679 : +100680 : +100681 : Jiayi's Letter +100682 : Nostalgic Jueyun Chili Chicken +100683 : Luxurious Toybox +100684 : Congzi's Plaustrite Shards +100685 : Custom-Made Xiao Lantern +100686 : Glory's Dandelion Seeds +100687 : Letter to Cyrus +100688 : Qingzhou's Signature +100689 : Package of Fresh Flowers +100690 : Package of Fresh Flowers +100691 : Rex Incognito (IV) +100692 : Ancient Investigation Journal: Part II +100693 : Ancient Investigation Journal: Part III +100694 : +100695 : +100696 : +100697 : +100698 : +100699 : Invoice From Second Life +100700 : Package of Fresh Flowers +100701 : Package of Fresh Flowers +100702 : Package of Fresh Flowers +100703 : Thank-You Letter +100704 : Experimental Potion +100705 : Chilled Meat +100706 : Diary of Roald the Adventurer: Dragonspine +100707 : Kamera Picture +100708 : Kamera Picture +100709 : Sigil of Permission +100710 : Harris' Special Cream Stew +100711 : Treasure Map +100712 : Strange Note +100713 : A Bag of Mora +100714 : Water-Logged Box +100715 : Meadow of Gems +100716 : Starsilver Catalyst +100717 : Starsilver Catalyst +100718 : Starsilver Catalyst +100719 : Starsilver Catalyst +100720 : Starsilver Catalyst +100721 : +100722 : +100723 : Dummy's Xiao Lantern +100724 : Unnamed Mingxiao Lantern +100725 : +100726 : Herbalist Gui's Medicine +100727 : Starsilver Catalyst +100728 : Dandelion Seed +100729 : Siyu's Xiao Lantern +100730 : Records of Jueyun: Qilin +100731 : Records of Jueyun: Hidden Jade +100732 : Records of the Gallant: Black Raccoons +100733 : Records of the Gallant: Dust +100734 : Hex & Hound (VI) +100735 : Hex & Hound (VII) +100736 : Hex & Hound (VIII) +100737 : Aunt Qiao's Almond Tofu +100738 : Zhuyu's Golden Shrimp Balls +100739 : Ominous Dish +100740 : Lost Adventure Notebook +100741 : Broken Xiao Lantern Lampshade +100742 : Hard Iron Chunk +100743 : Hard Crystal Chunk +100744 : Red Wolfhook +100745 : Fresh Jueyun Chili +100746 : Handpicked Gift +100747 : Lantern Rite Gift +100748 : Pyro Whopperflower Nectar +100749 : Wanmin Restaurant Take-Away +100750 : Strange Box +100751 : Inscribed Xiao Lantern +100752 : Soil Sample +100753 : Fresh Qingxin +100754 : Slime-Swallowed Calla Lily +100755 : Fresh Lotus Head +100756 : Plank +100757 : Fresh Raw Meat +100758 : High-Quality Chilled Meat +100759 : Picture of Windblume Festival +100760 : Picture of Windblume Festival +100761 : Picture of Windblume Festival +100762 : Wondrous Lovely Flower +100763 : Watch Out! +100764 : Fresh Valberry +100765 : Pyro Slime Condensate +100766 : Special Bottle +100767 : Notes of Some Kind +100768 : Ward +100769 : Ward +100770 : Ioroi's Ward +100771 : Scroll-Shaped Ward +100772 : Key-Shaped Ward +100773 : +100774 : Old Key +100775 : Old Stone Slate +100776 : Old Stone Slate +100777 : Old Stone Slate +100778 : Old Stone Slate +100779 : Rather Fine Dandelion Seeds +100780 : Rather Fine Windwheel Aster +100781 : Special Beverage +100782 : Special Beverage +100783 : Hex & Hound (IX) +100784 : Hex & Hound (X) +100785 : Hex & Hound (XI) +100786 : String of Pearls (IV) +100787 : String of Pearls (V) +100788 : Handy Handbook of Hilichurlian +100789 : Bamboo Slip +100790 : Bamboo Slip +100791 : Bamboo Slip +100792 : Bamboo Slip +100793 : Bamboo Slip +100794 : Bamboo Slip +100795 : Bamboo Slip +100796 : Bamboo Slip +100797 : Bamboo Slip +100798 : Fortune Slip +100799 : Fortune Slip +100800 : Fortune Slip +100801 : Fortune Slip +100802 : Fortune Slip +100803 : Fortune Slip +100804 : Fortune Slip +100805 : Fortune Slip +100806 : Fortune Slip +100807 : Strange Fortune Slip +100808 : Strange Fortune Slip +100809 : Strange Fortune Slip +100810 : Strange Fortune Slip +100811 : Picture of Cape Oath +100812 : Picture of Starsnatch Cliff +100813 : Picture of Windrise +100814 : Cyrus' Letter to Iris +100815 : Picture of Dragonspine +100816 : The Crux Clash Champion Medal +100817 : Well-Packaged Gebratenes Fleisch mit Sauerkraut +100818 : Tea Break Pancake Cooked by Lily +100819 : Mysterious Mechanical Part +100820 : Pale Yellow Crystal +100821 : Pale Red Crystal +100822 : Pale Blue Crystal +100823 : Pale Yellow Scale +100824 : Pale Blue Scale +100825 : Pale Red Scale +100826 : Cat Food +100827 : Cat Toy +100828 : Fresh Fish Scales +100829 : Some Strange... Drink? +100830 : Purse by the Dried-Up Well +100831 : Archaic Stone +100832 : Slightly Damaged Wooden Plank +100833 : Somewhat Rotten Wooden Plank +100834 : +100835 : Smaragdus Jadeite +100836 : Smaragdus Nephrite Fragment +100837 : The Jade Mystery's Affidavit +100838 : Ministry of Civil Affairs' Affidavit +100839 : Bubu Pharmacy's Affidavit +100840 : Fresh Slime Condensate +100841 : Minacious Isle Mural +100842 : Broken Isle Mural +100843 : Nameless Island Mural +100844 : Twinning Isle Mural +100845 : Illegible Notes +100846 : Fresh Fish +100847 : +100848 : +100849 : Ragged List of Goods +100850 : Cargo Bag Fished Out From Water +100851 : Nameless Islet Mural +100852 : Clear Image +100853 : Somewhat Clear Image +100854 : Rather Foggy Image +100855 : A Discarded Blade +100856 : A Jug of Wine +100857 : A Masterless Blade +100858 : Bag of Flower Seeds +100859 : Mysterious Conch +100860 : +100861 : The Sage Aetolia Will Die Tomorrow +100862 : The Honest Cat's Little Lie +100863 : Literature Club +100864 : Rust-Worn Key +100865 : Mask of Memories +100866 : The Violet Oni's Blade +100867 : The Crimson Oni's Blade +100868 : Fortune Slip +100869 : Fortune Slip +100870 : Fortune Slip +100871 : Fortune Slip +100872 : Fortune Slip +100873 : Fortune Slip +100874 : Fortune Slip +100875 : Chang the Ninth's Gift +100876 : Zhenyu's Gift +100880 : Cage Key +100881 : Metal Key +100882 : Atsuko's Letter +100883 : Illegible Fortune Slip +100884 : Damaged Note +100885 : Luxurious Silk Cloth +100886 : Special Recipe: Mushroom Pizza +100887 : +100888 : +100889 : Chef Mao's Special Jueyun Chili Chicken +100890 : Xiangling's Handwritten Notes +100891 : Yellowed Letter +100892 : Vahid's Kneaded Onigiri +100893 : Naganohara Fireworks Note +100894 : Spirit Pearl +100895 : Key of the Moon-bathed Deep +100896 : Strange Bottle +100897 : Water Welling With "Wishes" +100898 : Spiritherb Water +100899 : Rinzou's Letter +100900 : Rinzou's Signet +100901 : Hidden Ledger +100902 : Komore Teahouse Invitation Letter +100903 : A Love Letter(?) +100904 : Cooked Meat +100905 : "The Seventh Samurai" Script +100906 : +100907 : A Note Left by Someone +100908 : Bamboo Slip +100909 : Bamboo Slip +100910 : Bamboo Slip +100911 : Bamboo Slip +100912 : Bamboo Slip +100913 : Bamboo Slip +100914 : Bamboo Slip +100915 : +100916 : Lightly-Perfumed Letter +100917 : Travel Permit +100918 : Kujou Kamaji's Letter +100919 : Snack Box +100920 : Dull Golden Bridle +100921 : Golden Bridle +100922 : Reins of Revival Fragment (The Narrows) +100923 : Reins of Revival Fragment (Temple) +100924 : Reins of Revival Fragment (Serpent's Heart) +100925 : Reins of Revival +100926 : Offerings of The Narrows +100927 : Offerings of the Temple +100928 : Offerings of the Serpent's Heart +100929 : The Serpent and Drakes of Tokoyokoku +100930 : Bathysmal Vishap Experimental Records +100931 : Before Sun and Moon +100932 : Hydrological Studies in Byakuyakoku +100933 : In the Light, Beneath the Shadow +100934 : Key Sigil +100935 : Key Sigil +100936 : Key Sigil +100937 : Key Sigil +100938 : Key Sigil +100939 : Bloodbranch Coral +100940 : Divine Bridle +100941 : Date's Medal of Recognition +100942 : Date's Medal of Recognition +100943 : Secret Room Key +100944 : Waters of Lethe +100945 : Dragonbone Orb +100946 : Key to Some Place +100947 : Key to Some Place +100948 : Key to Some Place +100949 : Sun-Dried Sweet Flower +100950 : Peculiar Pinion +100951 : Maushiro +100952 : Maushiro +100953 : +100954 : +100955 : An Onikabuto Affected by Tatarigami +100956 : Missing Component(s) +100957 : Funerary Mask +100958 : Musoujin Gorge: Rock Pillar Pearl +100959 : Musoujin Gorge: Rock Pillar Warding Stone +100960 : Serpent's Head: Rock Pillar Pearl +100961 : Serpent's Head: Rock Pillar Warding Stone +100962 : Jakotsu Mine: Rock Pillar Pearl +100963 : Jakotsu Mine: Rock Pillar Warding Stone +100964 : Fort Mumei: Rock Pillar Pearl +100965 : Fort Mumei: Rock Pillar Warding Stone +100966 : Naku Weed Seed +100967 : High-Quality Chilled Meat +100968 : Piping-Hot Braised Meat +100969 : Family Letter +100970 : Tattered Letter +100971 : Pharmacist's Notebook (I) +100972 : Pharmacist's Notebook (II) +100973 : Pharmacist's Notebook (III) +100974 : Unsealed Letter +100975 : Inaba Tousaburou Kyuuzou's Final Words +100976 : Star-Shaped Gem +100977 : Stone Slate +100978 : Kamuijima Cannon Map +100979 : Secret Notes +100980 : High-Quality Rice +100981 : Fragrant Rice Pudding +100982 : Anemo Slime-Swallowed Bamboo Shoots +100983 : Piping-Hot Oncidium Tofu +100984 : Fossil Bag +100985 : "Treasury" Key +100986 : Incomplete Notes +100987 : Tattered Paper +100988 : Picture Commemorating Seirai Island +100989 : Picture Commemorating Seirai Island (II) +100990 : Picture Commemorating Seirai Island (III) +100991 : Picture Commemorating Seirai Island (IV) +100992 : Fujiwara Toshiko's Treasure Map +100993 : A Bag of Beans +100994 : +100995 : Right-Side Photo +100996 : Left-Side Photo +100997 : Inferior Starsilver +100998 : Quality Starsilver +100999 : Key +101000 : Box of Clothes +101001 : Iron Chunk +101002 : White Iron Chunk +101003 : Crystal Chunk +101004 : Magical Crystal Chunk +101005 : Scarlet Quartz +101006 : Starsilver +101007 : Scarlet Quartz +101008 : Amethyst Lump +101101 : Northlander Sword Billet +101102 : Northlander Bow Billet +101103 : Northlander Claymore Billet +101104 : Northlander Catalyst Billet +101105 : Northlander Polearm Billet +101106 : Northlander Sword +101107 : Northlander Bow +101108 : Northlander Claymore +101109 : Northlander Catalyst +101110 : Northlander Polearm +101201 : Onikabuto +101202 : Sakura Bloom +101203 : Crystal Marrow +101204 : Dendrobium +101205 : Naku Weed +101206 : Sea Ganoderma +101207 : Sango Pearl +101208 : Amakumo Fruit +101209 : Fluorescent Fungus +101210 : Seagrass +101211 : Lavender Melon +101212 : Starshroom +101301 : Birch Wood +101302 : Cuihua Wood +101303 : Pine Wood +101304 : Sandbearer Wood +101305 : Bamboo Segment +101306 : +101307 : Fragrant Cedar Wood +101308 : Fir Wood +101309 : Yumemiru Wood +101310 : Maple Wood +101311 : Aralia Wood +101312 : Otogi Wood +101401 : Fabric +101402 : Red Dye +101403 : Yellow Dye +101404 : Blue Dye +101501 : Torn Page: Toki Alley Tales (Prologue) +101502 : Torn Page: Toki Alley Tales (I) +101503 : Torn Page: Toki Alley Tales (II) +101504 : Torn Page: Toki Alley Tales (III) +101505 : Torn Page: Toki Alley Tales (IV) +101506 : Torn Page: Toki Alley Tales (V) +101507 : Toki Alley Tales (Prologue) +101508 : Toki Alley Tales (I) +101509 : Toki Alley Tales (II) +101510 : Toki Alley Tales (III) +101511 : Toki Alley Tales (IV) +101512 : Toki Alley Tales (V) +101513 : Pass Permit +101514 : Dango Milk +101515 : Realm Dispatch +101516 : +101517 : Special Sakura Bloom +101518 : Thunder Sakura Crab +101519 : Fresh Seagrass +101520 : Fresh Sakura Bloom +101521 : Fresh Snapdragon +101522 : Fresh Bird Egg +101523 : New Chronicles of the Six Kitsune: Prologue +101524 : New Chronicles of the Six Kitsune (I) +101525 : New Chronicles of the Six Kitsune (II) +101526 : New Chronicles of the Six Kitsune (III) +101527 : New Chronicles of the Six Kitsune (IV) +101528 : Sangonomiya Chronicles +101529 : The Saga of Hamavaran (Preface) +101530 : The Saga of Hamavaran (I) +101531 : The Saga of Hamavaran (II) +101532 : A Legend of Sword (I) +101533 : A Legend of Sword (II) +101534 : A Legend of Sword (III) +101535 : A Legend of Sword (IV) +101536 : A Legend of Sword (V) +101537 : Sacred Sakura Cleansing Summary +101538 : Fresh Mushroom +101539 : Crab Bait +101540 : Someone's Diary V: Jinren Island +101541 : Diary of Roald the Adventurer: Ritou +101542 : Grand Narukami Shrine Omamori +101543 : Official Tenryou Commission Document +101544 : Tenryou Commission Secret Letter +101545 : Supersized Firework +101546 : Special Magical Crystal Ore +101547 : Ore Slag +101548 : Princess Mina of the Fallen Nation (I) +101549 : Princess Mina of the Fallen Nation (II) +101550 : Princess Mina of the Fallen Nation (III) +101551 : Princess Mina of the Fallen Nation (IV) +101552 : Princess Mina of the Fallen Nation (V) +101553 : Princess Mina of the Fallen Nation (VI) +101554 : Flowers for Princess Fischl (0) +101555 : +101556 : +101557 : +101558 : Teyvat Travel Guide - Inazuma +101559 : Drifting Bottle With Letter +101560 : Onibudou +101561 : Grand Narukami Shrine Omamori +101570 : Lucky Omamori +101571 : Box of Nails +101572 : Planks +101573 : Rope +101574 : +101575 : Kito's Sachet +101576 : Treasure Map Fragment +101577 : Treasure Map Fragment +101578 : Treasure Map Fragment +101579 : Treasure Map Fragment +101580 : A Treasure Map Left for Shitoki +101581 : Makiri's Charm +101582 : General Purpose Directional Conduction Component +101583 : Rust-Worn Key +101584 : Heavy Key +101585 : Intact Key +101586 : Sumida's Letter +101587 : New Firework Model +101588 : New Chronicles of the Six Kitsune (V) +101589 : Northland Bank Check +101590 : Scrawled Treasure Map +101591 : Kiminami Anna's Invigorating Kitty Meal +101592 : Autake Slate +101593 : General Purpose Directional Conduction Component +101594 : General Purpose Directional Conduction Component +101595 : General Purpose Directional Conduction Component +101596 : A Preliminary Study of Sangonomiya Folk Belief +101597 : The Life of Mouun the Shrine Maiden +101598 : Debates on the "Viceroy of the East" +101599 : Treasured Tales of the Chouken Shinkageuchi (I) +101600 : Mysterious Stone +101601 : Diary of Roald the Adventurer: Tsurumi Island +101602 : Fresh Meat +101603 : Fresh Fish +101604 : Bag of Retrieved Items +101605 : Repaired Comb +101606 : Mysterious Flyer +101607 : Rigorous Schedule +101608 : Simple Schedule +101609 : Starsplinter Iron +101610 : Subrosium +101611 : Wonder Core +101612 : Adepti Sigil +101613 : Records of a Changing Village +101614 : Ragged Notebook +101615 : Mountainous Miscellany +101616 : Neatly-Written Note +101617 : Little Meng's Drifting Bottle +101618 : Lumenstone +101619 : Muning's Note +101620 : Treasure Map Fragment +101621 : Treasure Hoarders' Treasure Map +101622 : Storehouse Security Key No. 1 +101623 : Storehouse Security Key No. 2 +101624 : A Set of Cannonballs +101625 : Special Unmoving Essential Oil +101626 : Key to a Stony Hall +101627 : Photo of a Strange Rock +101628 : Academia Recommendation Letter +101629 : Orb of the Blue Depths +101630 : Metal Key +101631 : Miner's Key +101632 : Blessings of Wisdom +101633 : Mountainator Cannonball (Fuse Attached) +101634 : Toy Doll +101635 : Flower of Farsight +101636 : Skyfeather +101637 : Sundial of Ages +101638 : Cup of Commons +101639 : Helm of Warding +101640 : Warrior's Spear +101641 : Brass Ring +101642 : Archaic Stone +101643 : Shriveled Seed +101644 : Lumenstone Ore +101645 : Yue Chuan's Drifting Bottle +101648 : Hiraizumi's Goods +101649 : Cell Key +101650 : Freshly-Picked Calla Lily +101651 : Freshly-Picked Small Lamp Grass +101652 : Freshly-Picked Cecilia +101654 : Ruin Machine Core +101655 : Date's Key +101656 : Pile of Lavender Melons +101657 : Fine Incense +101658 : +101659 : Curious Cube +101660 : A Note Someone Stuffed You +101661 : Special Bamboo Slip +101662 : "Final Instructions" +101663 : Bag of Clothes +101664 : Special Fortune Slip +101665 : Strange Object +101666 : Bedrock Key Location Diagram +101667 : Light Mora Purse +101668 : Full Mora Purse +101669 : Plump Fish +101670 : Beautifully-Written Note +101671 : Yun Jin's Personal Letter +101672 : Lyudochka's Letter +101673 : Lyudochka's Mora Purse +101674 : Fatui Code Sheet +101675 : Light Purse +101676 : Marjorie's Gift +101677 : Viktor's Gift +101678 : Fresh Wolfhooks +101679 : Lyudochka's Fortune Slip +101680 : The Serpent and Drakes of Tokoyokoku +101681 : Before Sun and Moon +101682 : Hydrological Studies in Byakuyakoku +101683 : Bathysmal Vishap Experimental Records +101684 : In the Light, Beneath the Shadow +101685 : The Miraculous Adventures of the Traveler +101686 : The Miraculous Adventures of the Traveler +101687 : The Miraculous Adventures of the Traveler +101688 : The Miraculous Adventures of the Traveler +101689 : +101690 : Muning's Note +101691 : Frostglaze Crystal +101692 : Light Realm Sigil +101693 : Light Realm Core +101694 : Bloodied Sergeant's Insignia +101695 : Corporal Nikolay's Diary +101696 : Corporal Nikolay's Diary +101697 : Mora Purse +101698 : A Firsthand Guide to Summoning Spirits +101699 : Dream Sakura +101700 : Aphotium Ore +101701 : Tokoyo Legume +101702 : Husk Gem +101703 : Fragmented Accessory +101704 : Fragmented Accessory +101706 : Tsumi's Map +101707 : Hakuen Michimitsu Amenoma +101708 : Wooden Cage Key +101709 : Damaged Stone Slate +101710 : Mysterious Stone Slate +101711 : Yanbo's Note +101712 : Nikolay's Letter +101713 : +101714 : Fragrant Seasoning +101715 : Fragrant Vegetarian Abalone +101719 : Fragrant Mint Salad +101720 : Fragrant Triple-Layered Consommé +101724 : Zhiqiong's Letter +101725 : Arrival Schedule +101726 : Five Kasen Summary +101727 : The Five Kasen's Splendor: Suikou +101728 : The Five Kasen's Splendor: Aoi no Okina +101729 : The Five Kasen's Splendor: Akahito +101730 : The Five Kasen's Splendor: Sumizome +101731 : The Five Kasen's Splendor: Sumizome +101732 : Ancient Forging Blueprint +101733 : Kaedehara Yoshinori's Letter +101734 : Taliesin's Manuscript +101737 : Fragrant Stir-Fried Shrimp +101738 : Fragrant Golden Shrimp Balls +101739 : Fragrant Qingce Stir Fry +101740 : Fragrant Black-Back Perch Stew +101741 : Fragrant Stir-Fried Filet +101742 : Fragrant Grilled Tiger Fish +101743 : Fragrant Crab Roe Tofu +101744 : Fragrant Golden Crab +101745 : Fragrant Jewelry Soup +101746 : Fragrant Bamboo Shoot Soup +101747 : Fragrant Noodles with Mountain Delicacies +101748 : Fragrant Mora Meat +101749 : Fragrant Stir-Fried Fish Noodles +101750 : Fragrant Universal Peace +101751 : Fragrant Rice Buns +101752 : Fragrant Almond Tofu +101753 : Fragrant Lotus Flower Crisp +101754 : Sayu's Salary +101755 : Statue of Her Excellency, the Almighty Narukami Ogosho, God of Thunder +101756 : Kokomi's Shopping List +101757 : Toy Fox +101766 : A Legend of Sword (VI) +101767 : Shogun Almighty: Reborn as Raiden With Unlimited Power +101768 : Pretty Please, Kitsune Guuji? +101769 : Let's Go, Dodoco! +101782 : Jinwu's Soup +101783 : +101784 : +101785 : +101786 : +101787 : +101788 : +101789 : +101790 : +101791 : +101792 : +101793 : +101794 : +101795 : Bag of Ornaments +101797 : Let's Go, Dodoco! +102001 : Pyro Shard +102002 : Hydro Shard +102003 : Dendro Shard +102004 : Electro Shard +102005 : Anemo Shard +102006 : Cryo Shard +102007 : Geo Shard +102008 : Primordial Elemental Shard +103001 : Pyro Jikaka +103002 : Hydro Jikaka +103003 : Dendro Jikaka +103004 : Electro Jikaka +103005 : Anemo Jikaka +103006 : Cryo Jikaka +103007 : Geo Jikaka +103008 : Standard Jikaka +104001 : Wanderer's Advice +104002 : Adventurer's Experience +104003 : Hero's Wit +104011 : Enhancement Ore +104012 : Fine Enhancement Ore +104013 : Mystic Enhancement Ore +104101 : Brilliant Diamond Sliver +104102 : Brilliant Diamond Fragment +104103 : Brilliant Diamond Chunk +104104 : Brilliant Diamond Gemstone +104111 : Agnidus Agate Sliver +104112 : Agnidus Agate Fragment +104113 : Agnidus Agate Chunk +104114 : Agnidus Agate Gemstone +104121 : Varunada Lazurite Sliver +104122 : Varunada Lazurite Fragment +104123 : Varunada Lazurite Chunk +104124 : Varunada Lazurite Gemstone +104131 : Nagadus Emerald Sliver +104132 : Nagadus Emerald Fragment +104133 : Nagadus Emerald Chunk +104134 : Nagadus Emerald Gemstone +104141 : Vajrada Amethyst Sliver +104142 : Vajrada Amethyst Fragment +104143 : Vajrada Amethyst Chunk +104144 : Vajrada Amethyst Gemstone +104151 : Vayuda Turquoise Sliver +104152 : Vayuda Turquoise Fragment +104153 : Vayuda Turquoise Chunk +104154 : Vayuda Turquoise Gemstone +104161 : Shivada Jade Sliver +104162 : Shivada Jade Fragment +104163 : Shivada Jade Chunk +104164 : Shivada Jade Gemstone +104171 : Prithiva Topaz Sliver +104172 : Prithiva Topaz Fragment +104173 : Prithiva Topaz Chunk +104174 : Prithiva Topaz Gemstone +104201 : Dust of Azoth +104301 : Teachings of Freedom +104302 : Guide to Freedom +104303 : Philosophies of Freedom +104304 : Teachings of Resistance +104305 : Guide to Resistance +104306 : Philosophies of Resistance +104307 : Teachings of Ballad +104308 : Guide to Ballad +104309 : Philosophies of Ballad +104310 : Teachings of Prosperity +104311 : Guide to Prosperity +104312 : Philosophies of Prosperity +104313 : Teachings of Diligence +104314 : Guide to Diligence +104315 : Philosophies of Diligence +104316 : Teachings of Gold +104317 : Guide to Gold +104318 : Philosophies of Gold +104319 : Crown of Insight +104320 : Teachings of Transience +104321 : Guide to Transience +104322 : Philosophies of Transience +104323 : Teachings of Elegance +104324 : Guide to Elegance +104325 : Philosophies of Elegance +104326 : Teachings of Light +104327 : Guide to Light +104328 : Philosophies of Light +105001 : Sanctifying Droplet +105002 : Sanctifying Unction +105003 : Sanctifying Essence +105004 : Sanctifying Essence +106000 : Test Stamina Growth Item +106001 : Test Temporary stamina Growth Item +107001 : Anemoculus +107002 : Elemental Dust +107003 : Geoculus +107004 : Adventure Treasure Pack +107005 : Skyrider Greatsword Chest +107006 : Mondstadt Shrine of Depths Key +107007 : Liyue Shrine of Depths Key +107008 : Inazuma Shrine of Depths Key +107009 : Fragile Resin +107010 : Crimson Agate +107011 : Crimson Agate (Display) +107012 : Transient Resin +107013 : Vial of Adeptal Speed +107014 : Electroculus +107015 : Moonchase Charm +107016 : Lumenspar +108000 : Dish +108001 : Suspicious Fisherman's Toast +108002 : Fisherman's Toast +108003 : Delicious Fisherman's Toast +108004 : Suspicious Teyvat Fried Egg +108005 : Teyvat Fried Egg +108006 : Delicious Teyvat Fried Egg +108007 : Suspicious Steak +108008 : Steak +108009 : Delicious Steak +108010 : Outrider's Champion Steak! +108011 : Suspicious Chicken-Mushroom Skewer +108012 : Chicken-Mushroom Skewer +108013 : Delicious Chicken-Mushroom Skewer +108014 : Fruity Skewers +108015 : Suspicious Flaming Red Bolognese +108016 : Flaming Red Bolognese +108017 : Delicious Flaming Red Bolognese +108018 : Mysterious Bolognese +108019 : Suspicious Radish Veggie Soup +108020 : Radish Veggie Soup +108021 : Delicious Radish Veggie Soup +108022 : Suspicious Tea Break Pancake +108023 : Tea Break Pancake +108024 : Delicious Tea Break Pancake +108025 : Suspicious Fried Radish Balls +108026 : Fried Radish Balls +108027 : Delicious Fried Radish Balls +108028 : Suspicious Satisfying Salad +108029 : Satisfying Salad +108030 : Delicious Satisfying Salad +108031 : Suspicious Sweet Madame +108032 : Sweet Madame +108033 : Delicious Sweet Madame +108034 : Suspicious Northern Smoked Chicken +108035 : Northern Smoked Chicken +108036 : Delicious Northern Smoked Chicken +108037 : Suspicious Cream Stew +108038 : Cream Stew +108039 : Delicious Cream Stew +108040 : Spicy Stew +108041 : Suspicious Mushroom Pizza +108042 : Mushroom Pizza +108043 : Delicious Mushroom Pizza +108044 : Invigorating Pizza +108045 : Suspicious Mondstadt Hash Brown +108046 : Mondstadt Hash Brown +108047 : Delicious Mondstadt Hash Brown +108048 : Puppy-Paw Hash Brown +108049 : Suspicious Calla Lily Seafood Soup +108050 : Calla Lily Seafood Soup +108051 : Delicious Calla Lily Seafood Soup +108052 : Suspicious Sautéed Matsutake +108053 : Sautéed Matsutake +108054 : Delicious Sautéed Matsutake +108055 : Suspicious "Pile 'Em Up" +108056 : "Pile 'Em Up" +108057 : Delicious "Pile 'Em Up" +108058 : "Once Upon a Time in Mondstadt" +108059 : Suspicious Cold Cut Platter +108060 : Cold Cut Platter +108061 : Delicious Cold Cut Platter +108062 : Suspicious Sticky Honey Roast +108063 : Sticky Honey Roast +108064 : Delicious Sticky Honey Roast +108065 : Suspicious Crab, Ham & Veggie Bake +108066 : Crab, Ham & Veggie Bake +108067 : Delicious Crab, Ham & Veggie Bake +108068 : Suspicious Jade Parcels +108069 : Jade Parcels +108070 : Delicious Jade Parcels +108071 : Suspicious Zhongyuan Chop Suey +108072 : Zhongyuan Chop Suey +108073 : Delicious Zhongyuan Chop Suey +108074 : Suspicious Black-Back Perch Stew +108075 : Black-Back Perch Stew +108076 : Delicious Black-Back Perch Stew +108077 : Suspicious Squirrel Fish +108078 : Squirrel Fish +108079 : Delicious Squirrel Fish +108080 : Suspicious Almond Tofu +108081 : Almond Tofu +108082 : Delicious Almond Tofu +108083 : Suspicious Jueyun Chili Chicken +108084 : Jueyun Chili Chicken +108085 : Delicious Jueyun Chili Chicken +108086 : Suspicious Jewelry Soup +108087 : Jewelry Soup +108088 : Delicious Jewelry Soup +108089 : Suspicious Matsutake Meat Rolls +108090 : Matsutake Meat Rolls +108091 : Delicious Matsutake Meat Rolls +108092 : Suspicious Mora Meat +108093 : Mora Meat +108094 : Delicious Mora Meat +108095 : Suspicious Mondstadt Grilled Fish +108096 : Mondstadt Grilled Fish +108097 : Delicious Mondstadt Grilled Fish +108098 : Suspicious Stir-Fried Filet +108099 : Stir-Fried Filet +108100 : Delicious Stir-Fried Filet +108101 : Suspicious Golden Crab +108102 : Golden Crab +108103 : Delicious Golden Crab +108104 : Suspicious Crystal Shrimp +108105 : Crystal Shrimp +108106 : Delicious Crystal Shrimp +108107 : Suspicious Grilled Tiger Fish +108108 : Grilled Tiger Fish +108109 : Delicious Grilled Tiger Fish +108110 : Suspicious Barbatos Ratatouille +108111 : Barbatos Ratatouille +108112 : Delicious Barbatos Ratatouille +108113 : A Buoyant Breeze +108114 : Der Weisheit Letzter Schluss (Life) +108115 : Fish-Flavored Toast +108116 : Teyvat Charred Egg +108117 : Die Heilige Sinfonie +108118 : Lighter-Than-Air Pancake +108119 : Suspicious Lotus Seed and Bird Egg Soup +108120 : Lotus Seed and Bird Egg Soup +108121 : Delicious Lotus Seed and Bird Egg Soup +108122 : Suspicious Adeptus' Temptation +108123 : Adeptus' Temptation +108124 : Delicious Adeptus' Temptation +108125 : Suspicious Golden Shrimp Balls +108126 : Golden Shrimp Balls +108127 : Delicious Golden Shrimp Balls +108128 : Suspicious Qingce Stir Fry +108129 : Qingce Stir Fry +108130 : Delicious Qingce Stir Fry +108131 : Suspicious Come and Get It +108132 : Come and Get It +108133 : Delicious Come and Get It +108134 : Definitely Not Bar Food! +108135 : Wanmin Restaurant's Boiled Fish +108136 : All-Delicacy Parcels +108137 : "Sweet Dream" +108138 : Flash-Fried Filet +108139 : Qiankun Mora Meat +108140 : No Tomorrow +108141 : Suspicious Noodles with Mountain Delicacies +108142 : Noodles with Mountain Delicacies +108143 : Delicious Noodles with Mountain Delicacies +108144 : Cold Noodles with Mountain Delicacies +108145 : Survival Grilled Fish +108146 : Nutritious Meal (V.593) +108147 : Holy Water +108148 : Pop's Teas +108149 : Wolfhook Juice +108150 : Berry & Mint Burst +108151 : Apple Cider +108152 : Suspicious Bamboo Shoot Soup +108153 : Bamboo Shoot Soup +108154 : Delicious Bamboo Shoot Soup +108155 : Suspicious Triple-Layered Consommé +108156 : Triple-Layered Consommé +108157 : Delicious Triple-Layered Consommé +108158 : Suspicious Tianshu Meat +108159 : Tianshu Meat +108160 : Delicious Tianshu Meat +108161 : Suspicious Lotus Flower Crisp +108162 : Lotus Flower Crisp +108163 : Delicious Lotus Flower Crisp +108164 : Suspicious Moon Pie +108165 : Moon Pie +108166 : Delicious Moon Pie +108167 : Suspicious Adventurer's Breakfast Sandwich +108168 : Adventurer's Breakfast Sandwich +108169 : Delicious Adventurer's Breakfast Sandwich +108170 : Suspicious Northern Apple Stew +108171 : Northern Apple Stew +108172 : Delicious Northern Apple Stew +108173 : Slow-Cooked Bamboo Shoot Soup +108174 : Rockin' Riffin' Chicken! +108175 : A Prize Catch +108176 : Suspicious Crab Roe Tofu +108177 : Crab Roe Tofu +108178 : Delicious Crab Roe Tofu +108179 : Suspicious Fullmoon Egg +108180 : Fullmoon Egg +108181 : Delicious Fullmoon Egg +108182 : Suspicious Cured Pork Dry Hotpot +108183 : Cured Pork Dry Hotpot +108184 : Delicious Cured Pork Dry Hotpot +108185 : Suspicious Stir-Fried Fish Noodles +108186 : Stir-Fried Fish Noodles +108187 : Delicious Stir-Fried Fish Noodles +108188 : Suspicious Vegetarian Abalone +108189 : Vegetarian Abalone +108190 : Delicious Vegetarian Abalone +108191 : Suspicious Stone Harbor Delicacies +108192 : Stone Harbor Delicacies +108193 : Delicious Stone Harbor Delicacies +108194 : Suspicious Stir-Fried Shrimp +108195 : Stir-Fried Shrimp +108196 : Delicious Stir-Fried Shrimp +108197 : Suspicious Rice Buns +108198 : Rice Buns +108199 : Delicious Rice Buns +108200 : Ghostly March +108201 : Suspicious Universal Peace +108202 : Universal Peace +108203 : Delicious Universal Peace +108204 : Suspicious Goulash +108205 : Goulash +108206 : Delicious Goulash +108207 : Suspicious Sunshine Sprat +108208 : Sunshine Sprat +108209 : Delicious Sunshine Sprat +108210 : Suspicious Jueyun Guoba +108211 : Jueyun Guoba +108212 : Delicious Jueyun Guoba +108213 : Prosperous Peace +108214 : Woodland Dream +108215 : Lantern Rite Special Grilled Tiger Fish +108216 : Lantern Rite Special Fried Radish Balls +108217 : Lantern Rite Special Lotus Seed and Bird Egg Soup +108218 : Lantern Rite Special Jewelry Soup +108219 : Lantern Rite Special Noodles with Mountain Delicacies +108220 : Lantern Rite Special Come and Get It +108221 : Lantern Rite Special Triple-Layered Consommé +108222 : Suspicious Crispy Potato Shrimp Platter +108223 : Crispy Potato Shrimp Platter +108224 : Delicious Crispy Potato Shrimp Platter +108225 : Suspicious Mint Jelly +108226 : Mint Jelly +108227 : Delicious Mint Jelly +108228 : Suspicious Mint Salad +108229 : Mint Salad +108230 : Delicious Mint Salad +108231 : Suspicious Minty Meat Rolls +108232 : Minty Meat Rolls +108233 : Delicious Minty Meat Rolls +108234 : Dinner of Judgment +108235 : Suspicious Golden Fried Chicken +108236 : Golden Fried Chicken +108237 : Delicious Golden Fried Chicken +108238 : Suspicious Golden Chicken Burger +108239 : Golden Chicken Burger +108240 : Delicious Golden Chicken Burger +108241 : Suspicious Fragrant Mashed Potatoes +108242 : Fragrant Mashed Potatoes +108243 : Delicious Fragrant Mashed Potatoes +108244 : "My Way" +108245 : Stormcrest Pie +108246 : Suspicious Chicken Tofu Pudding +108247 : Chicken Tofu Pudding +108248 : Delicious Chicken Tofu Pudding +108249 : Suspicious Tuna Sushi +108250 : Tuna Sushi +108251 : Delicious Tuna Sushi +108252 : Suspicious Tricolor Dango +108253 : Tricolor Dango +108254 : Delicious Tricolor Dango +108255 : Suspicious Onigiri +108256 : Onigiri +108257 : Delicious Onigiri +108258 : Suspicious Sashimi Platter +108259 : Sashimi Platter +108260 : Delicious Sashimi Platter +108261 : Suspicious Tonkotsu Ramen +108262 : Tonkotsu Ramen +108263 : Delicious Tonkotsu Ramen +108264 : Suspicious Egg Roll +108265 : Egg Roll +108266 : Delicious Egg Roll +108267 : Suspicious Dry-Braised Salted Fish +108268 : Dry-Braised Salted Fish +108269 : Delicious Dry-Braised Salted Fish +108270 : Suspicious Butter Crab +108271 : Butter Crab +108272 : Delicious Butter Crab +108273 : Suspicious Tri-Flavored Skewer +108274 : Tri-Flavored Skewer +108275 : Delicious Tri-Flavored Skewer +108276 : Suspicious Miso Soup +108277 : Miso Soup +108278 : Delicious Miso Soup +108279 : Suspicious Imported Poultry +108280 : Imported Poultry +108281 : Delicious Imported Poultry +108282 : Suspicious Sakura Mochi +108283 : Sakura Mochi +108284 : Delicious Sakura Mochi +108285 : Suspicious Konda Cuisine +108286 : Konda Cuisine +108287 : Delicious Konda Cuisine +108288 : Suspicious Rice Cake Soup +108289 : Rice Cake Soup +108290 : Delicious Rice Cake Soup +108291 : Suspicious Mixed Yakisoba +108292 : Mixed Yakisoba +108293 : Delicious Mixed Yakisoba +108294 : Suspicious Crab Roe Kourayaki +108295 : Crab Roe Kourayaki +108296 : Delicious Crab Roe Kourayaki +108297 : Suspicious Sakura Tempura +108298 : Sakura Tempura +108299 : Delicious Sakura Tempura +108300 : "Snow on the Hearth" +108301 : All-Weather Beauty +108302 : Summer Festival Fish +108303 : Dizziness-Be-Gone no Jutsu Version 2.0 +108304 : Special Mushroom Pizza +108305 : Dango Milk +108306 : Suspicious Rice Pudding +108307 : Rice Pudding +108308 : Delicious Rice Pudding +108309 : Suspicious Braised Meat +108310 : Braised Meat +108311 : Delicious Braised Meat +108312 : Suspicious Oncidium Tofu +108313 : Oncidium Tofu +108314 : Delicious Oncidium Tofu +108315 : Suspicious Chili-Mince Cornbread Buns +108316 : Chili-Mince Cornbread Buns +108317 : Delicious Chili-Mince Cornbread Buns +108318 : Suspicious Invigorating Kitty Meal +108319 : Invigorating Kitty Meal +108320 : Delicious Invigorating Kitty Meal +108321 : Suspicious Sweet Shrimp Sushi +108322 : Sweet Shrimp Sushi +108323 : Delicious Sweet Shrimp Sushi +108324 : Suspicious Bird Egg Sushi +108325 : Bird Egg Sushi +108326 : Delicious Bird Egg Sushi +108327 : Suspicious Omelette Rice +108328 : Omelette Rice +108329 : Delicious Omelette Rice +108330 : Suspicious Taiyaki +108331 : Taiyaki +108332 : Delicious Taiyaki +108333 : Suspicious More-and-More +108334 : More-and-More +108335 : Delicious More-and-More +108336 : Suspicious Grilled Unagi Fillet +108337 : Grilled Unagi Fillet +108338 : Delicious Grilled Unagi Fillet +108339 : Satiety Gel +108340 : A Stunning Stratagem +108341 : Faith Eternal +108342 : Suspicious Radish and Fish Stew +108343 : Radish and Fish Stew +108344 : Delicious Radish and Fish Stew +108345 : Suspicious Wakatakeni +108346 : Wakatakeni +108347 : Delicious Wakatakeni +108348 : Suspicious Berry Mizu Manjuu +108349 : Berry Mizu Manjuu +108350 : Delicious Berry Mizu Manjuu +108351 : Suspicious Soba Noodles +108352 : Soba Noodles +108353 : Delicious Soba Noodles +108354 : "Warmth" +108355 : Suspicious Unagi Chazuke +108356 : Unagi Chazuke +108357 : Delicious Unagi Chazuke +108358 : Suspicious Five Pickled Treasures +108359 : Five Pickled Treasures +108360 : Delicious Five Pickled Treasures +108361 : Suspicious Sakura Shrimp Crackers +108362 : Sakura Shrimp Crackers +108363 : Delicious Sakura Shrimp Crackers +108364 : Way of the Strong +108365 : Victorious Legend +108366 : Suspicious Bountiful Year +108367 : Bountiful Year +108368 : Delicious Bountiful Year +108369 : Suspicious Dragon Beard Noodles +108370 : Dragon Beard Noodles +108371 : Delicious Dragon Beard Noodles +108372 : Heartstring Noodles +108373 : Cloud-Shrouded Jade +108374 : Suspicious Sangayaki +108375 : Sangayaki +108376 : Delicious Sangayaki +108377 : Suspicious Udon Noodles +108378 : Udon Noodles +108379 : Delicious Udon Noodles +108380 : Fukuuchi Udon +108381 : Suspicious Katsu Sandwich +108382 : Katsu Sandwich +108383 : Delicious Katsu Sandwich +108384 : Suspicious Rainbow Aster +108385 : Rainbow Aster +108386 : Delicious Rainbow Aster +108387 : Quiet Elegance +109000 : Recipe Item +109101 : Recipe: Chicken-Mushroom Skewer +109102 : Recipe: Fisherman's Toast +109103 : Recipe: Flaming Red Bolognese +109104 : Recipe: Sweet Madame +109106 : Recipe: Calla Lily Seafood Soup +109107 : Recipe: Sautéed Matsutake +109201 : Recipe: Teyvat Fried Egg +109202 : Recipe: Northern Smoked Chicken +109203 : Recipe: Cream Stew +109204 : Recipe: Cold Cut Platter +109205 : Recipe: Sticky Honey Roast +109206 : Recipe: Crab, Ham & Veggie Bake +109207 : Recipe: Mushroom Pizza +109301 : Recipe: Steak +109302 : Recipe: Radish Veggie Soup +109303 : Recipe: Mondstadt Hash Brown +109304 : Recipe: "Pile 'Em Up" +109401 : Recipe: Tea Break Pancake +109402 : Recipe: Fried Radish Balls +109403 : Recipe: Satisfying Salad +109404 : Recipe: Jade Parcels +109405 : Recipe: Mondstadt Grilled Fish +109406 : Recipe: Mora Meat +109407 : Recipe: Stir-Fried Filet +109408 : Recipe: Almond Tofu +109409 : Recipe: Jueyun Chili Chicken +109410 : Recipe: Jewelry Soup +109411 : Recipe: Matsutake Meat Rolls +109412 : Recipe: Zhongyuan Chop Suey +109413 : Recipe: Black-Back Perch Stew +109414 : Recipe: Squirrel Fish +109415 : Recipe: Golden Crab +109416 : Recipe: Crystal Shrimp +109417 : Recipe: Grilled Tiger Fish +109418 : Recipe: Barbatos Ratatouille +109419 : Recipe: Lotus Seed and Bird Egg Soup +109420 : Recipe: Adeptus' Temptation +109421 : Recipe: Golden Shrimp Balls +109422 : Recipe: Qingce Stir Fry +109423 : Recipe: Come and Get It +109424 : Recipe: Noodles with Mountain Delicacies +109425 : Recipe: Bamboo Shoot Soup +109426 : Recipe: Triple-Layered Consommé +109427 : Recipe: Tianshu Meat +109428 : Recipe: Lotus Flower Crisp +109429 : Recipe: Moon Pie +109430 : Recipe: Adventurer's Breakfast Sandwich +109431 : Recipe: Northern Apple Stew +109432 : Recipe: Crab Roe Tofu +109433 : Recipe: Fullmoon Egg +109434 : Recipe: Cured Pork Dry Hotpot +109435 : Recipe: Stir-Fried Fish Noodles +109436 : Recipe:Vegetarian Abalone +109437 : Recipe: Stone Harbor Delicacies +109438 : Recipe: Stir-Fried Shrimp +109439 : Recipe: Rice Buns +109440 : Recipe: Goulash +109441 : Recipe: Sunshine Sprat +109442 : Recipe: Universal Peace +109443 : Recipe: Jueyun Guoba +109444 : Recipe: Crispy Potato Shrimp Platter +109445 : Recipe: Mint Jelly +109446 : Recipe: Mint Salad +109447 : Recipe: Minty Meat Rolls +109448 : Recipe: Golden Fried Chicken +109449 : Recipe: Golden Chicken Burger +109450 : Recipe: Fragrant Mashed Potatoes +109451 : Recipe: Chicken Tofu Pudding +109452 : Recipe: Tuna Sushi +109453 : Recipe: Tricolor Dango +109454 : Recipe: Onigiri +109455 : Recipe: Sashimi Platter +109456 : Recipe: Tonkotsu Ramen +109457 : Recipe: Egg Roll +109458 : Recipe: Dry-Braised Salted Fish +109459 : Recipe: Butter Crab +109460 : Recipe: Tri-Flavored Skewer +109461 : Recipe: Miso Soup +109462 : Recipe: Imported Poultry +109463 : Recipe: Sakura Mochi +109464 : Recipe: Konda Cuisine +109465 : Recipe: Rice Cake Soup +109466 : Recipe: Mixed Yakisoba +109467 : Recipe: Crab Roe Kourayaki +109468 : Recipe: Sakura Tempura +109469 : Recipe: Rice Pudding +109470 : Recipe: Braised Meat +109471 : Recipe: Oncidium Tofu +109472 : Recipe: Chili-Mince Cornbread Buns +109473 : Recipe: Invigorating Kitty Meal +109474 : Recipe: Sweet Shrimp Sushi +109475 : Recipe: Bird Egg Sushi +109476 : Recipe: Omelette Rice +109477 : Recipe: Taiyaki +109478 : Recipe: More-and-More +109479 : Recipe: Grilled Unagi Fillet +109480 : Recipe: Radish and Fish Stew +109481 : Recipe: Wakatakeni +109482 : Recipe: Berry Mizu Manjuu +109483 : Recipe: Soba Noodles +109484 : Recipe: Unagi Chazuke +109485 : Recipe: Five Pickled Treasures +109486 : Recipe: Sakura Shrimp Crackers +109487 : Recipe: Bountiful Year +109488 : Recipe: Dragon Beard Noodles +109489 : Recipe: Sangayaki +109490 : Recipe: Udon Noodles +109491 : Recipe: Katsu Sandwich +109492 : Recipe: Rainbow Aster +110000 : Crafted Items +110001 : Flour +110002 : Cream +110003 : Smoked Fowl +110004 : Butter +110005 : Ham +110006 : Sugar +110008 : Jam +110009 : Cheese +110010 : Bacon +110011 : Sausage +110012 : Smoked Fish +110013 : Dried Fish +111006 : Heatshield Potion +111007 : Desiccant Potion +111008 : Frostshield Potion +111009 : Windbarrier Potion +111010 : Insulation Potion +111011 : Dustproof Potion +111012 : Dendrocide Potion +111013 : Flaming Essential Oil +111014 : Streaming Essential Oil +111015 : Frosting Essential Oil +111016 : Gushing Essential Oil +111017 : Shocking Essential Oil +111018 : Unmoving Essential Oil +111019 : Forest Essential Oil +111020 : Small Pretty Crystal +111021 : Medium Pretty Crystal +111022 : Big Pretty Crystal +111023 : Fruit Paste Bait +111024 : Redrot Bait +111025 : False Worm Bait +111026 : Fake Fly Bait +111027 : Glowgrass Bait +112001 : Primordial Essence +112002 : Slime Condensate +112003 : Slime Secretions +112004 : Slime Concentrate +112005 : Damaged Mask +112006 : Stained Mask +112007 : Ominous Mask +112008 : Divining Scroll +112009 : Sealed Scroll +112010 : Forbidden Curse Scroll +112011 : Firm Arrowhead +112012 : Sharp Arrowhead +112013 : Weathered Arrowhead +112014 : Heavy Horn +112015 : Black Bronze Horn +112016 : Black Crystal Horn +112017 : Gloomy Statuette +112018 : Dark Statuette +112019 : Deathly Statuette +112020 : Dead Ley Line Branch +112021 : Dead Ley Line Leaves +112022 : Ley Line Sprout +112023 : Chaos Device +112024 : Chaos Circuit +112025 : Chaos Core +112026 : Mist Grass Pollen +112027 : Mist Grass +112028 : Mist Grass Wick +112029 : Hunter's Sacrificial Knife +112030 : Agent's Sacrificial Knife +112031 : Inspector's Sacrificial Knife +112032 : Recruit's Insignia +112033 : Sergeant's Insignia +112034 : Lieutenant's Insignia +112035 : Treasure Hoarder Insignia +112036 : Silver Raven Insignia +112037 : Golden Raven Insignia +112038 : Whopperflower Nectar +112039 : Shimmering Nectar +112040 : Energy Nectar +112041 : Fragile Bone Shard +112042 : Sturdy Bone Shard +112043 : Fossilized Bone Shard +112044 : Old Handguard +112045 : Kageuchi Handguard +112046 : Famed Handguard +112047 : Chaos Gear +112048 : Chaos Axis +112049 : Chaos Oculus +112050 : Dismal Prism +112051 : Crystal Prism +112052 : Polarizing Prism +112053 : Spectral Husk +112054 : Spectral Heart +112055 : Spectral Nucleus +112056 : Concealed Claw +112057 : Concealed Unguis +112058 : Concealed Talon +112059 : Fungal Spores +112060 : Luminescent Pollen +112061 : Crystalline Cyst Dust +113001 : Hurricane Seed +113002 : Lightning Prism +113003 : Dvalin's Plume +113004 : Dvalin's Claw +113005 : Dvalin's Sigh +113006 : Tail of Boreas +113007 : Ring of Boreas +113008 : Spirit Locket of Boreas +113009 : Basalt Pillar +113010 : Hoarfrost Core +113011 : Everflame Seed +113012 : Cleansing Heart +113013 : Tusk of Monoceros Caeli +113014 : Shard of a Foul Legacy +113015 : Shadow of the Warrior +113016 : Juvenile Jade +113017 : Dragon Lord's Crown +113018 : Bloodjade Branch +113019 : Gilded Scale +113020 : Crystalline Bloom +113021 : Dream Solvent +113022 : Marionette Core +113023 : Perpetual Heart +113024 : Smoldering Pearl +113025 : Molten Moment +113026 : Hellfire Butterfly +113027 : Ashen Heart +113028 : Dew of Repudiation +113029 : Storm Beads +113030 : Riftborn Regalia +113031 : Dragonheir's False Fin +113032 : Mudra of the Malefic General +113033 : Tears of the Calamitous God +113034 : The Meaning of Aeons +113035 : Runic Fang +114001 : Tile of Decarabian's Tower +114002 : Debris of Decarabian's City +114003 : Fragment of Decarabian's Epic +114004 : Scattered Piece of Decarabian's Dream +114005 : Boreal Wolf's Milk Tooth +114006 : Boreal Wolf's Cracked Tooth +114007 : Boreal Wolf's Broken Fang +114008 : Boreal Wolf's Nostalgia +114009 : Fetters of the Dandelion Gladiator +114010 : Chains of the Dandelion Gladiator +114011 : Shackles of the Dandelion Gladiator +114012 : Dream of the Dandelion Gladiator +114013 : Luminous Sands from Guyun +114014 : Lustrous Stone from Guyun +114015 : Relic from Guyun +114016 : Divine Body from Guyun +114017 : Mist Veiled Lead Elixir +114018 : Mist Veiled Mercury Elixir +114019 : Mist Veiled Gold Elixir +114020 : Mist Veiled Primo Elixir +114021 : Grain of Aerosiderite +114022 : Piece of Aerosiderite +114023 : Bit of Aerosiderite +114024 : Chunk of Aerosiderite +114025 : Coral Branch of a Distant Sea +114026 : Jeweled Branch of a Distant Sea +114027 : Jade Branch of a Distant Sea +114028 : Golden Branch of a Distant Sea +114029 : Narukami's Wisdom +114030 : Narukami's Joy +114031 : Narukami's Affection +114032 : Narukami's Valor +114033 : Mask of the Wicked Lieutenant +114034 : Mask of the Tiger's Bite +114035 : Mask of the One-Horned +114036 : Mask of the Kijin +115001 : +115002 : +115003 : +115004 : +115005 : +115006 : +115007 : +115008 : +115009 : +115010 : Starter Supply Bundle +115011 : Wayfarer's Supply Bundle +115012 : Traveler's Supply Bundle +115013 : Exotic Share Bundle +115014 : Character Ascension Bundle (High) +115015 : Character Ascension Bundle (Very High) +115016 : Talent Materials Bundle (Low) +115017 : Virtuous Share Bundle +115018 : Talent Materials Bundle (High) +115019 : Adventurer's Supply Bundle +115020 : Adventurer's Ore Bundle +115021 : Adventurer's Special Bundle +115022 : Adventurer's Instructional Bundle +115023 : Adventurer's Tempering Bundle +115024 : Material Share Bundle +115025 : Eminent Share Bundle +115026 : Weapon Ascension Bundle (High) +115027 : Weapon Ascension Bundle (Very High) +115028 : Recipe Collection: Exotic Gourmet +115029 : Adventurer's Jumbo Ore Bundle +115030 : Adventurer's Special Supply Bundle +115031 : Northlander Billet Trove +115032 : Adventurer's Share Bundle +115034 : Adventurer's Seasonal Special Bundle +115035 : Sakuya's Special Gardening Package +115037 : Yashiro Commission Gift +115038 : Exquisite Gift (Furnishing) +115039 : Amazing Gift (Furnishing) +116001 : BEP +116002 : BP Bounty +116003 : BP Pick 1 of 3 Test Bundle +116004 : Guidance of the Land of Wind +116005 : Philosophies of the Land of Wind +116006 : Guidance of the Land of Geo +116007 : Philosophies of the Land of Geo +116008 : +116009 : +116010 : Guidance of the Land of Thunder +116011 : Philosophies of the Land of Thunder +117001 : Domain Reliquary: Tier III +117002 : Domain Reliquary: Tier II +117003 : Domain Reliquary: Tier I +117004 : Reliquary: Wanderer's Troupe and Gladiator +117005 : Grand Reliquary: Wanderer's Troupe and Gladiator +117006 : Domain Reliquary: Tier II +117007 : Domain Reliquary: Tier I +118001 : Cake for Traveler +118002 : Cake for Traveler +118003 : Cake for Traveler +118004 : Cake for Traveler +130001 : Silk Flower Seed +130002 : Sweet Flower Seed +130003 : Cecilia Seed +130004 : Glaze Lily Seed +130005 : Windwheel Aster Seed +130006 : Qingxin Seed +130007 : Violetgrass Seed +130008 : Valberry Seed +130009 : Small Lamp Grass Seed +130010 : Jueyun Chili Seed +130011 : Carrot Seed +130012 : Radish Seed +130013 : Mint Seed +130014 : Mushroom Spore +130015 : Naku Weed Seed +130016 : Horsetail Seed +130017 : Snapdragon Seed +130018 : Lotus Seed +130019 : Calla Lily Seed +130020 : Seagrass Seed +130021 : Sea Ganoderma Cutting +130022 : Dreambloom: Star Hibiscus Seed +130023 : Dreambloom: Pearbell Seed +130024 : Dreambloom: Silkpod Seed +131000 : Medaka +131001 : Glaze Medaka +131002 : Sweet-Flower Medaka +131003 : Aizen Medaka +131004 : Dawncatcher +131005 : Crystalfish +131006 : Lunged Stickleback +131007 : Betta +131008 : Venomspine Fish +131009 : Akai Maou +131010 : Snowstrider +131011 : Golden Koi +131012 : Rusty Koi +131013 : Brown Shirakodai +131014 : Purple Shirakodai +131015 : Tea-Colored Shirakodai +131016 : Abiding Angelfish +131017 : Raimei Angelfish +131019 : Pufferfish +131020 : Bitter Pufferfish +131021 : Divda Ray +131022 : Formalo Ray +140001 : Wings of First Flight +140002 : Wings of Companionship +140003 : Wings of Descension +140004 : Wings of Azure Wind +140005 : Wings of Golden Flight +140006 : Wings of Concealing Snow +140007 : Wings of Feasting +140008 : Wings of the Stormstrider +140009 : Wings of Shimmering Galaxy +141001 : Radiant Spincrystal 1 +141002 : Radiant Spincrystal 2 +141003 : Radiant Spincrystal 3 +141004 : Radiant Spincrystal 4 +141005 : Radiant Spincrystal 5 +141006 : Radiant Spincrystal 6 +141007 : Radiant Spincrystal 7 +141008 : Radiant Spincrystal 8 +141009 : Radiant Spincrystal 9 +141010 : Radiant Spincrystal 10 +141011 : Radiant Spincrystal 11 +141012 : Radiant Spincrystal 12 +141013 : Radiant Spincrystal 13 +141014 : Radiant Spincrystal 14 +141015 : Radiant Spincrystal 15 +141016 : Radiant Spincrystal 16 +141017 : Radiant Spincrystal 17 +141018 : Radiant Spincrystal 18 +141019 : Radiant Spincrystal 19 +141020 : Radiant Spincrystal 20 +141021 : Radiant Spincrystal 21 +141022 : Radiant Spincrystal 22 +141023 : Radiant Spincrystal 23 +141024 : Radiant Spincrystal 24 +141025 : Radiant Spincrystal 25 +141026 : Radiant Spincrystal 26 +141027 : Radiant Spincrystal 27 +141028 : Radiant Spincrystal 28 +141029 : Radiant Spincrystal 29 +141030 : Radiant Spincrystal 30 +141031 : Radiant Spincrystal 31 +141032 : Radiant Spincrystal 32 +141033 : Radiant Spincrystal 33 +141034 : Radiant Spincrystal 34 +141035 : Radiant Spincrystal 35 +141036 : Radiant Spincrystal 36 +141037 : Radiant Spincrystal 37 +141038 : Radiant Spincrystal 38 +141039 : Radiant Spincrystal 39 +141040 : Radiant Spincrystal 40 +141041 : Radiant Spincrystal 41 +141042 : Radiant Spincrystal 42 +141043 : Radiant Spincrystal 43 +141044 : Radiant Spincrystal 44 +141045 : Radiant Spincrystal 45 +141046 : Radiant Spincrystal 46 +141047 : Radiant Spincrystal 47 +141048 : Radiant Spincrystal 48 +141049 : Radiant Spincrystal 49 +141050 : Radiant Spincrystal 50 +141051 : Radiant Spincrystal 51 +141052 : Radiant Spincrystal 52 +141053 : Radiant Spincrystal 53 +141054 : Radiant Spincrystal 54 +141055 : Radiant Spincrystal 55 +141056 : Radiant Spincrystal 56 +141057 : Radiant Spincrystal 57 +141058 : Radiant Spincrystal 58 +141059 : Radiant Spincrystal 59 +141060 : Radiant Spincrystal 60 +141061 : Radiant Spincrystal 61 +141062 : Radiant Spincrystal 62 +141063 : Radiant Spincrystal 63 +141064 : Radiant Spincrystal 64 +141065 : Radiant Spincrystal 65 +141066 : Radiant Spincrystal 66 +141067 : Radiant Spincrystal 67 +141068 : Radiant Spincrystal 68 +141069 : Radiant Spincrystal 69 +141070 : Radiant Spincrystal 70 +141071 : Radiant Spincrystal 71 +141072 : Radiant Spincrystal 72 +200001 : Lantern Fiber +200002 : Wick Material +200003 : Plaustrite Shard +200004 : Xiao Lantern +200101 : Rime-Worn Fragment +200102 : Rime-Worn Crystal +200103 : Festering Dragon Marrow +200104 : "The Visible Winds" +200105 : "Fragments of Innocence" +200106 : Emperor's Balsam +200107 : Ako's Sake Vessel +200108 : Alkahest +200109 : Ointment of Sight +200201 : Falcon's Dance +200202 : Steelwing +200203 : Galespring +200204 : Crushing Blow +200205 : Hunter's Romp +200206 : Ironbow +200207 : Whirlpool +200208 : Fierce Strike +200209 : Featherweight +200210 : Blade Dance +200211 : Courageous +200212 : Emboldened +200213 : Song of Steel +200214 : Intertwined Steps +200215 : Ritual +200216 : War Breeds War +200217 : Burst Damage +200218 : Endless Waltz +200219 : Refined Burst +200220 : Charge Up +200221 : Overcharge +200222 : Thundering Dance +200223 : Timely Rain +200224 : Overmastered +200225 : Scattersleet Dance +200226 : Frostbite +200227 : Keen Edge +200228 : Starcrystal Dance +200229 : Refraction Crystals +200230 : Focusing Crystals +200231 : Iron Wall +200232 : Duelist's Dance +200233 : Coalesced Defenses +200234 : Enhanced Healing +200235 : Execution +200236 : Judgment +200237 : Challenger +200238 : Fractured Fruit Bit +200239 : Fractured Fruit Fragment +200240 : Fractured Fruit Shard +200241 : Duelist's Dance +200242 : Blade Dance +200243 : Starcrystal Dance +200244 : Intertwined Steps +200245 : Endless Waltz +200246 : Refraction Crystals +200247 : Emboldened +200248 : Courageous +200249 : Whirlpool +200250 : Challenger +200251 : Execution +200252 : Focusing Crystals +200253 : Refined Burst +200254 : Judgment +200255 : Keen Edge +200256 : Burst Damage +200257 : Overmastered +200258 : Iron Wall +200259 : Song of Steel +200260 : Fierce Strike +200261 : Dance of Abundance +200262 : Conductivity +200900 : Wilderness Rod +200901 : Windtangler +200902 : Wishmaker +200903 : Narukawa Ukai +200904 : Moonstringer +210001 : Genshin Impact: A New World +210002 : Travel Notes: Catch the Wind +210003 : Amber: Bunny +210004 : Klee: Explosive +210005 : Diluc: Flames +210006 : Razor: Wolvensprint +210007 : Venti: Azure Sky +210008 : Jean: The Winds' Course +210009 : Barbara: Flow +210010 : Kaeya: Pavo Ocellus +210011 : Lisa: Tempus Fugit +210012 : Sucrose: Bio-Alchemy +210013 : Fischl: Night Raven +210014 : Noelle: Protector +210015 : Mona: Starry Sky +210016 : Bennett: Recognition +210017 : Xiangling: Fresh from the Pan +210018 : Xingqiu: Rainbow +210019 : Qiqi: Cold Storage +210020 : Keqing: Lightning Stiletto +210021 : Achievement: Explorer +210022 : Achievement: Virtuoso +210023 : Achievement: Hero +210024 : Mondstadt: Whistling Wind +210025 : Liyue: Stillness of Stone +210026 : Achievement: Colors of the Rainbow +210027 : Achievement: Bowmaster +210028 : Achievement: Challenger +210029 : Achievement: Deep & Dark +210030 : Achievement: Hill Dwellers +210031 : Achievement: Snowy Land +210032 : Achievement: Cliffhanger +210033 : Achievement: Reunion +210038 : Ningguang: Phoenix +210039 : Beidou: Weighing Anchor +210040 : Chongyun: Spirit Blade +210041 : Achievement: Challenger II +210042 : Travel Notes: Fading Star +210043 : Diona: Meow! +210044 : Zhongli: Planet Befall +210045 : Xinyan: Song's End +210046 : Childe: Foul Legacy +210047 : Mondstadt: Hero's Fame +210048 : Mondstadt: Blessing +210049 : Liyue: A Thousand Ships +210050 : Liyue: In the Clouds +210051 : Achievement: Challenger III +210052 : Achievement: Snowy Summit +210053 : Ganyu: Qilin +210054 : Albedo: Sun Blossom +210055 : Travel Notes: Chalk +210056 : Frostbearing: Ancient Tree +210057 : Celebration: Hypostasis +210058 : Xiao: Mask +210059 : Hu Tao: Spirit Soother +210060 : Travel Notes: Mingxiao +210061 : Celebration: Lantern-Light +210062 : Celebration: Mechanicus +210063 : Rosaria: Indenture +210064 : Travel Notes: Windblume +210065 : Celebration: Feast +210066 : Celebration: Shining Scale +210067 : Celebration: Fruit of Wisdom +210068 : Celebration: Peekaboo! +210069 : Yanfei: Impartial +210070 : Eula: Ice-Sealed +210071 : Travel Notes: Sub-Space Recreation +210072 : Achievement: Tea Time +210073 : Kaedehara Kazuha: Autumn Maple-Viewing +210074 : Travel Notes: Midsummer +210075 : Achievement: Vacation Home +210076 : Celebration: Vastness +210077 : Celebration: Kaboomball +210078 : Celebration: Battlesong +210079 : Inazuma: Sacred Sakura +210080 : Travel Notes: Grand Narukami Shrine +210081 : Kamisato Ayaka: Folding Fan +210082 : Yoimiya: Auratus Spark +210083 : Sayu: Muji-Muji Daruma +210084 : Inazuma: Raiden Emblem +210085 : Inazuma: Kamisato Crest +210086 : Achievement: Gate +210087 : Achievement: Traversal +210088 : Achievement: Stone Dragon +210089 : Achievement: Full Bloom +210090 : Inazuma: Kujou Insignia +210091 : Celebration: Wondrous Calculation +210092 : Raiden Shogun: Enlightenment +210093 : Sangonomiya Kokomi: The Deep +210094 : Kujou Sara: Tengu +210095 : Aloy: Dawn +210096 : Travel Notes: Moonchaser +210097 : Inazuma: Sangonomiya Crest +210098 : Achievement: Nails +210099 : Celebration: Tuneful Delight +210100 : Celebration: Ikki +210101 : Thoma: Blazing Guard +210102 : Travel Notes: Heavenly General +210103 : Inazuma: Eagleplume +210104 : Gorou: Leisurely Hound +210105 : Itto: Oni Face +210106 : Travel Notes: Lyratum +210107 : Shenhe: Comb +210108 : Yun Jin: Rhyme +210109 : Inazuma: Tokoyo +210110 : Travel Notes: Flowing Hues +210111 : Celebration: Binge Vessel +210112 : Yae Miko: Kitsune Dreaming +210113 : Travel Notes: Awakening +210114 : Kamisato Ayato: Ripple +210115 : Lumens: Stone of Light +210116 : Achievement: Thunderclap +210117 : Achievement: Chasm +210118 : Travel Notes: Irodori +220001 : Anemoculus Resonance Stone +220002 : Geoculus Resonance Stone +220003 : Geo Treasure Compass +220004 : Wind Catcher +220005 : Portable Waypoint +220006 : Adepti Seeker's Stove +220007 : Condensed Resin +220008 : NRE (Menu 30) +220009 : Anemo Treasure Compass +220013 : Treasure-Seeking Seelie +220014 : Mini Seelie: Dayflower +220015 : Mini Seelie: Rosé +220016 : Mini Seelie: Curcuma +220017 : Warming Bottle +220018 : Kamera +220019 : Kurious Kamera +220020 : Special Kamera +220021 : Parametric Transformer +220022 : Inquisitive Endora +220023 : Endora +220024 : Windblume Festival Commemorative Balloon +220025 : Windsong Lyre +220026 : Serenitea Pot +220027 : Wind-Blessed Harpastum +220028 : Waverider Repair Toolbox +220029 : Straight Shooter +220030 : Floaty Splody +220031 : Hot Pod +220032 : Electroculus Resonance Stone +220033 : Seed Dispensary +220034 : Electro Treasure Compass +220035 : Red Feather Fan +220036 : Memento Lens +220037 : Treasure-Seeking Seelie +220038 : Mini Seelie: Viola +220039 : Peculiar Pinion +220040 : Peculiar Pinion +220041 : ??? +220042 : Ayesha's Chaos Prospector +220043 : Omni-Ubiquity Net +220044 : Floral Zither +220045 : Shiki Koshou +220046 : Ubiquity Net +220047 : Launch Tube +220048 : Lumenstone Adjuvant +220049 : Bokuso Box +220050 : +221001 : Instructions: Anemoculus Resonance Stone +221002 : Instructions: Geoculus Resonance Stone +221003 : Diagram: Geo Treasure Compass +221004 : Diagram: Wind Catcher +221005 : Instructions: Portable Waypoint +221006 : Diagram: Adepti Seeker's Stove +221007 : Instructions: Condensed Resin +221008 : Diagram: NRE (Menu 30) +221009 : Diagram: Anemo Treasure Compass +221010 : Memory of the Entombed City +221011 : Memory of the Frostbearing Tree +221012 : Diagram: Dragonspine Spear +221013 : Saimon Heirloom Blade Diagram +221014 : Diagram: Katsuragikiri Nagamasa +221015 : Diagram: Kitain Cross Spear +221016 : Diagram: Hamayumi +221017 : Diagram: Warming Bottle +221018 : Mask of Memories +221032 : Instructions: Electroculus Resonance Stone +221034 : Diagram: Electro Treasure Compass +221035 : Formula: Fruit Paste Bait +221036 : Formula: Redrot Bait +221037 : Formula: False Worm Bait +221038 : Formula: Fake Fly Bait +222001 : Silken Print +223001 : The Mountain Clouds Let Down Golden Rain +223002 : The Silver Night is Full of Stars +223003 : The Gloom Paints the Cold Blooms +223004 : Fireworks Dance Amidst a Snowy Sky +223005 : Golden Calendula Swirl +223006 : Kindled Trees by the Moonlit Window +223007 : Mischievous Villosas +223008 : Sparkly Shiny Dodoco! +223009 : Fame and Fortune For a Season +223010 : Unyielding Spirit +223011 : Festival Spotlight +223012 : Wanmin Feast +340000 : Summertime Sparkle +340001 : Sea Breeze Dandelion +340002 : Orchid's Evening Gown +340003 : Opulent Splendor +340006 : Gunnhildr's Legacy +340007 : 100% Outrider +340008 : Pact of Stars and Moon +340009 : To the Church's Free Spirit +350001 : Adventurer Camp +350002 : Frontier Life +350003 : Rocks & Plants +350004 : Plain Liyue Bedroom +350005 : Corner of the Teahouse +350006 : Suburbia Lighting +350007 : Table & Chairs +350008 : Busy Kitchen +350009 : Tea Talk +350010 : Book Lover's Study +350011 : Fully Furnished Mondstadt Bedroom +350012 : Meeting Room of the "Strategic Six" +350013 : Wine o' Clock +350014 : Merchant's Working Lunch +350015 : Parlor Cordiality +350016 : Well-Equipped Study +350017 : Hermit's Hut +350018 : Hamlet House +350019 : Harvest Season Stall +350020 : Fruit & Veg Market +350021 : Training Ground +350022 : Arms Factory +350023 : Cargo Transfer Station +350024 : Festival Market +350025 : Thoroughfare Entrance: Evil Banisher +350026 : Ever-Popular Eatery +350027 : Rural Water Source +350028 : Lone and Cautious Adventurer +350029 : Climate Crossover +350030 : Dialogue Twixt Ancient Tree and Rock +350033 : Amidst Poetic Pondering +350034 : Amidst Whispering Winds +350035 : Feiyun Study Room +350036 : Cloudy Haze Dream-Court +350037 : Secret Research Lab +350038 : Cottage Kitchen +350039 : Weapon Forging Station +350040 : Idyllic Town +350041 : Bird and Blossom Park +350042 : Gathering of Gourmets +350043 : Glittering Street +350044 : Qingce Cloud Residence +350045 : Of Hunting and Dancing +350046 : Iter Ad Astra Abyssosque +350047 : Dawn Orchard +350048 : Court of the Upright +350049 : Wakeful Spring +350050 : Rural Concealment +350051 : Ancient Branch Shrine +350052 : Military Exercise Grounds +350053 : Jade Wilds +350054 : Summer Night's Recollection +350055 : Sakura-Hued Street +350056 : Eternal Domain of Fleeting Dreams +350057 : A Thousand Swings +350058 : Scholarly Trove +350059 : Of Maple and Tea Scents Entwined +380101 : Timber Wall With Jade Eaves +380102 : Dark Wood Arch Wall +380103 : Maple Wood Vaulted Wall +380201 : Traditional Cedar Flooring +380202 : Colorful Checkered Tile +380203 : Brown Maple Flooring +380301 : Checkered Cedar Ceiling +380302 : Dark Checkered Ceiling +380303 : Maple Wood Square Ceiling +380401 : Two-Tier Candle Chandelier +380402 : Eight-Sided Lantern: Lucky Day +380403 : Six-Sided Lantern: Harmony in Friendship +380404 : "Night of the Party Pumpkins" +380405 : Embroidered Lantern: Lofty Grandeur +380406 : Tasseled Lantern: Deck the Streets +380407 : Teahouse Candlestand: Scentless Flame +380408 : Teahouse Lamp: Light Concealed +380409 : Maple Wood Lamp: Light Fragrance +380410 : Maple Wood Floor Lamp: Clarity +380411 : Court Lantern: Lingering Majesty +380412 : Court Lantern: Red Moon of Yore +380413 : Court Lantern: Thundering Heart +380414 : Maple Wood Chandelier: Illume +380415 : Blooming Candle: Pure as a Lotus +380416 : Rainbow Lights: At Dawn We Celebrate +381101 : Northern Birch Folding Counter +381102 : Open-Top Fir Shelf +381103 : Fir Case Shelf Combination +381104 : Classic Fir Cabinet +381105 : Large Birch Wardrobe +381106 : Gold-Lined Sandbearer Wardrobe +381201 : Two-Tier Library Bookshelf +381202 : Exquisite Cuihua Bookshelf +381203 : Economy Cuihua Bookshelf +381204 : "Lost Between the Pages of a Book" +381205 : "Archivist's Treasure Trove" +381206 : Red Cedar Scroll Shelf +381207 : Red Cedar Curio Stand +381208 : Shopkeeper's Cedar Shelf +381209 : Maple Wood Bookcase: Inkheart +381210 : Maple Wood Bookcase: Trove of a Thousand Tomes +381301 : Sturdy Library Table +381302 : Favonius Office Table +381303 : Favonius Conference Table +381304 : Wide Stone Stove +381305 : Portable Stove +381306 : Long Table With Tablecloth +381307 : Multi-Seat Round Pine Table +381308 : Intricately Carved Calligraphy Table +381309 : Square Pine Tea Table +381310 : Red Cedar Round Table +381311 : Sturdy Birch Vanity +381313 : Common Cast Iron Stove +381314 : Yumemiru "Cold and Warmth" Kotatsu +381315 : "Sekijou" Aralia Tea Table +381316 : Teahouse Long Table: Seamless Seating +381401 : Breeze-Blessed Bed +381402 : Cloudy Haze Bed +381403 : Yumemiru "Sakura's Rest" Bed +381501 : Pine Reception Counter +381502 : Teahouse Counter: "Toshimaru" +382101 : Soft Lounge Sofa +382102 : "Clear Blue Afternoon" +382103 : "Unwavering Determination" +382104 : Pine Dining Chair +382105 : Pine-Backed Tea Chair +382106 : Red Pine Wood Round Stool +382108 : Teahouse Round Stool: Pain Point Reduction +382201 : Northern Stone Hearth +382202 : Pine Folding Screen: Billowing Sails +382203 : Hardwood Screen: Morning Mist in Jueyun +382204 : Birch Double Drawer Nightstand +382205 : Gold-Lined Sandbearer Nightstand +382206 : Silk Curtains: Fetching the Sanguine Sky +382207 : Floral Screen: Jade and Gold +382208 : Thundering Heavens Drum +382209 : Lantern-Lit Stage: Crescendo +382210 : Teahouse Cushion: Night-Woven +382211 : Maple Wood Ritual Drum: Festive Music +382212 : Maple Wood Ritual Drum: A Great Din +382213 : Teahouse Folding Screen: Hidden Heart of Gold +382214 : Ancestral Sword Rack: Four Core Principles +382215 : Hatamoto Armor: Eijin Genkou +382216 : Yumemiru "Jukaku" Folding Screen +382218 : Festive Fragrance: Goods Piled High +382219 : Festive Fragrance: Of Gold and Jade +382301 : Mondstadt Rug: Crimson Ardor +382302 : Mondstadt Rug: Tireless Search +382303 : Tavern Rug: Home Away From Home +382304 : Entrance Rug: A Warm Welcome +383101 : Trusty Portable Lamp +383102 : Liuli Pavilion Sandbearer Floor Lamp +383103 : Tianyuan Lantern: Fragrant Brilliance +383104 : Seashell Table Lamp +383201 : Flower Arrangement: Baby Blue Tranquility +383202 : Potted Plant: Crystalline Breeze +383203 : Flower Arrangement: Sprawling Daybreak +383204 : Potted Flower: Fragrant Facade +383205 : Potted Plant: Petite Perrenial +383206 : Cast in Clay +383207 : The Essential Vase +383208 : A Favor Returned +383301 : Classical Lyre: Tenor of the Wind +383302 : Neat Stack of Books +383303 : "Scholar's Weariness" +383304 : "Etiquette of Correspondence" +383305 : Exquisite Hourglass Ornament +383306 : Alchemic Device: Between Fire and Water +383307 : Alchemic Component: Burden of Dust +383308 : Calligraphy Set: Assiduous Calligraphy +383309 : Golden Triple-Arm Candelabrum +383310 : Glazed Porcelain Tea Set: "Embracing Truth" +383312 : "Tea Wisp-Clouded White Couch" +383313 : Teahouse Vessel: Scent-Sealer +383314 : Calligraphy Set: Proper Penmanship +383315 : Evil-Slaying Bows +383316 : Spiritchaser Screen +383317 : "Divine Nose:" Kitsu-Kitsu Daruma +383318 : "True Cookery": Nuki-Nuki Daruma +384101 : Landscape Painting: Country Home +384102 : Landscape Painting: Distant Clouds +384103 : Landscape Painting: Nameless Precipice +384104 : Fine Brushwork: Peaks of Minlin +384105 : Fine Brushwork: Bowl of Blossoms +384106 : Fine Brushwork: Mountains Rising From the Mist +384107 : Painted Vision: Of Mountains and Skies Distant +384108 : Painted Vision: Stunning Waters +384109 : Replica Mural: Lone Peak in a Sea of Fog +384110 : Replica Mural: Ancient Ritual in a Sea of Fog +384201 : Wooden Restaurant Signboard +384202 : Bright Vase-Shaped Sconce +384203 : Well-Worn Buckler +384204 : Well-Worn Shield +384205 : Well-Worn Sword +384206 : Rally Banner +384207 : Pure Spirit Banner +384208 : Favonius Coat of Arms +384209 : Mounted Record Board +384210 : Mounted Noticeboard +384211 : Embroidered Curtains +384501 : Lingering Moment +390101 : Straw Hut +390102 : Straw Depot +390103 : Liyue House: Solitary Retreat +390104 : Liyue House: Of Timber and Stone +390105 : Liyue Pitstop: Tea Fragrance on the Old Road +390106 : Liyue House: Moon-Crested Eaves +390107 : Liyue House: Amity Abounds +390108 : Liyue Shop: Citywide Favorite +390109 : Wing House: Dawn & Dusk +390110 : Pavilion: Stargazer's Shelter +390111 : "Hyoutei" Stacked Aralia Wood Boxes +390112 : Aralia "Bangaku" Shelf +390113 : Aralia "Fusen" Cupboard +390114 : Yumemiru "Dewcover" Wardrobe +390115 : Yumemiru "Decorum" Kimono Rack +390201 : Multi-Arched Mondstadt Building +390202 : Mondstadt House With Overhanging Attic +390203 : Warm and Dry Mondstadt Apartment +390204 : Old Wind-Resistant Mondstadt House +390205 : Country Home With Tall Attic +390206 : Classic Country Home +390207 : Pocket-Sized Pine Cabin +390208 : Liyue House: Time Waits for No One +390301 : Bustling Sundry Stand +390302 : Profitable Fruit Stand +390303 : Real Deal Fruit Stand +390304 : Open-Air Workshop +390305 : Bountiful Harvest Fruit Cart +390306 : "Traveling Merchant North of the Stone Gate" +390307 : Roll-Roofed Fruit and Vegetable Cart +390308 : "Four-Quadrant Cooking Cauldron" +390309 : Fruit and Veggie Stall: Harvest Bounties +390310 : Otogi Wood Ramen Stand +390401 : Hilichurl Outpost Hut +390402 : Hilichurl Chieftain Hall +390501 : "Clouds East of Bishui" +390502 : Straw Shed +390503 : Lightning Protective Tent +390504 : Simple Single-Person Tent +390505 : Otogi Wood Rice Cake Soup Stand +390507 : Otogi Wood Granary Cart +390508 : Umbrella Shop: Drapes of Differing Dreams +390509 : Fruit and Veggie Stall: Good Honest Flavor +390510 : Festival "Teiban" Store +390511 : Festival "Kiban" Store +390512 : "Kouki" Aralia Mask Rack +390513 : Fine Stall: Splash of Color +390514 : Rainbow Stall: Ultramarine +390515 : Rainbow Stall: Ruby Red +390516 : Festival Booth - "Strange Wonders" +390517 : Festival Booth - "Literary Talent" +390601 : Ritual Shrine +390602 : Cleansing Shrine +390603 : Inazuman Mansion: As One +390604 : Inazuman Store: Numberless Gems +390605 : Inazuman Home: The Work of Generations +390606 : Inazuman Home: Easy Adaptation +390607 : Inazuman Workshop: Exhaustive Regularity +390608 : Inazuman Home: Routine Dimensions +390609 : Inazuman Bamboo-Roofed Home: The Long Peace +390610 : Inazuman Bamboo-Roofed Home: Wild Heart +390611 : Inazuman Workshop: Multipurpose +390612 : Inazuman Home: Clanking Metal +390613 : Inazuman Workshop: Sweetness Sought +390614 : Inazuman Home: Irreplaceable Foresight +390615 : Inazuman Official Residence: Forcefulness +390616 : Inazuman Official Residence: Strict Adherence +390617 : Official Residence Corridor: Power's Reach +390618 : Camp Watchtower: Viewport +390619 : Camp Tent: Timely Tactics +390620 : Camp Dwelling: Shoring Up +390621 : Camp Gate: Fealty +390623 : Fortune Slip Stand: Omen-Reader +390624 : Shrine Hall: Gentle Wishes +390625 : Shrine Annex: Pleased to Serve +390626 : Estate Reception: Prim and Proper +390627 : Estate Storehouse: We Have Reserves +390628 : Inazuman Home: Watatsumi Reminiscence +390629 : Inazuman Home: House of Coral +390630 : Inazuman Home: Stormhouse +391101 : Bird and Blossom Design Fountain +391102 : Hilichurl Spiral Watchtower +391103 : Hilichurl Straw Hut +391104 : "Ballad-Spinning Windwheel" +391107 : Temporary Work Quarters +391109 : "Pure Gorgeous Summer" +391110 : Scarlet Torii Gate: Door of Silence +391112 : Scarlet Torii Gate: Way of Restoration +391113 : Estate Gate: Windy Doors +391114 : Estate Corridor: Onward With Ease +391115 : Estate Courtyard Corner: Measured Harmony +391116 : Whitestone Hot Spring: Diffusing Warmth +391117 : Of Fields Green: Clear Spring Fountain +391118 : Sub-Space Cabochon: In Soaring Flight +391201 : Adeptus Gate +391202 : Birch Main Courtyard Gate +391203 : Carved Courtyard Fence Ending +391204 : Carved Courtyard Fence +391205 : Scenic Corridor: Sylvan Stroll +391206 : Courtyard Wall: Spring and Autumn Splendor +391207 : Wall Corner: Fragrant Nook +391208 : Courtyard Wall: All in a Row +391209 : Courtyard Wall: Peace Across +391210 : Main Entrance: Gateway to the Clouds +391211 : Perimeter Wall: Scenic Archway +391212 : Veranda Corner: Pavilion's Watch +391213 : Key Gateway: Beneath the Clouds +391214 : Key Fence: Self-Restraint +391215 : Fence Corner: Long Watch +391216 : Otogi "Kintake" Courtyard Gate +391217 : Otogi "Kintake" Fence +391218 : Encampment Fence: Jagged Teeth +391219 : Encampment Fence: Decisive Judgment +391220 : Encampment Fence: Honing Goad +391221 : Shrine Corridor: Sakura-Dusted Path +391222 : Shrine Corridor: Vermilion Gaze +391223 : Estate Courtyard Wall: Stoneguard +391224 : Estate Courtyard Wall: Harmonious Corner +391225 : Estate Courtyard Wall: Hidden Boundary +391226 : Estate Wall Corner: Old City Palisade +391227 : Hot Spring Folding Screen: Moderation +391228 : Hot Spring Outer Wall: No Vaulting +391229 : Hot Spring Wall: Well-Grounded +391230 : Hot Spring Foyer: Shelter from the Cold +392107 : Foundations of Stone: Fortunate Times +393101 : Messy Pile of Fir Crates +393102 : Neat Stack of Fir Kegs +393103 : Heavy Hay Bale +393104 : Wine Jar With Bamboo Casing: Spirits Awaiting Moonrise +393105 : Toy Stand: Dazzling Delights +393106 : Umbrella Shop: Kaleidoscope of Parasol Colors +393107 : Storage Sack: Buzz-Off Bag +393108 : Fruit Seller's Caution +393109 : Fruit Seller's Toil +393110 : Hardened Glazed Vase +393111 : Hilichurl Archery Target +393112 : Hilichurl Horned Pot +393113 : Deadwood Road Sign +393114 : "The Adventurer's Burdens" +393115 : Sturdy Wooden Barrel +393116 : Tall Wooden Pole +393117 : Wood Bundle +393118 : Rainproof Fir Cargo Container +393119 : Stone Cup-Shaped Pool +393120 : "Feather-Light Praise" +393121 : "A Bloatty Floatty's Dream of the Sky" +393122 : "A Guide in the Summer Woods" +393123 : Training Ground Support Stakes +393124 : "A Messenger in the Summer Woods" +393125 : "Courtyard Cleansing Pool" +393126 : Headquarters Alarm: Sound of Thunder +393127 : War Drum: Line-Breaking Reverb +393128 : Simple Otogi Workshop +393129 : Otogi "Rikuyou" Wooden Barrel +393130 : Otogi "Tanin" Wood Barrel +393131 : "Kokutan" Thick-Walled Clay Water Tank +393132 : Replica Ancient Otogi Keg +393133 : Replica Ancient Otogi Crate +393134 : Mountain of Festive Gifts +393137 : Heavy-Duty Restaurant Stove +393138 : Serene Flames +393201 : Potted Plant: Verdant Vastness +393202 : Water-Retaining Flower Beds +393203 : Soil-Carrying Wooden Barrel +393204 : "Pines Awaiting the Twilight" +393301 : Fir Shelves +393302 : Fir Weapon Rack +393303 : Hardwood Weapon Rack +393304 : Simple Cargo Cart +393305 : Sturdy Stone Well +393306 : Farmer's Scarecrow +393307 : Old Well +393308 : Roofed Well: For Purity +393309 : Stone Lion Statue: The Warding +393310 : Stone Lion Statue: The Knowing +393311 : Countryside Tea Stand +393312 : "The Adventurer's Treasures" +393313 : "Witch's Chorus" +393315 : Yumemiru "Saikyo" Fortune Slip Hanger +393316 : Narukami's Banner +393317 : Camp Bow-Rack: Fletching +393318 : Camp Spear-Rack: Point Break +393319 : Camp Bonfire: Glorious Clarity +393320 : Camp Barricade: Taking Sides +393321 : Sky Kitsune Statue: Hakushin's Legacy +393322 : High-Flying Fish Flag +393323 : Maple Wood Tanuki +393324 : Maple Wood White Kitsune +393325 : Red-Iron Coral +393326 : Glowstone Parasol +393327 : Shrine Statue: "Seirai Ward" +393328 : Village Well: Underground Spring +393329 : Yumemiru "Seiken" Offering Box +393330 : Ancestral Sword Rack: Iron Sharpens Iron +393331 : The Bamboo's Call +393332 : "Henji" Aralia Noticeboard +393333 : Village Well: Subterranean Secrets +393337 : Rainbow Lights: Lovely Night View +393338 : Rainbow Cloud Flying Satin Pole +393339 : Gold-Inscribed Evil-Cleansing Banner +393343 : Tanuki Hugs Photo Board +393344 : "Kitsune Guuji" Exclusive Painted Flag Banner +393401 : Wrought Iron Carved Street Light +393402 : Pine Street Light +393403 : Evil-Repelling Lantern: All-Around Lighting +393404 : Four Corners Lantern: Amity From Afar +393405 : Shadow Lamp: Painted Shadow +393406 : Stone Lantern: Fudoumyou's Light +393407 : "Three Reaches Bright" +393408 : Whitestone "Meichuu" Standing Lamp +393409 : Otogi "Meichuu" Standing Lamp +393410 : Five-Lantern Festival Gate +393411 : Yumemiru "Kuukai" Street Lamp +393412 : Yumemiru "Juunen" Street Lamp +393413 : White Fish Tallow Candle: Evenlight +393414 : Otogi Countryside Street Lamp +393415 : Simple Otogi Street Lamp +393416 : Aralia "Renzou" Street Lamp +393601 : Pool of Sapphire Grace +394101 : Weathered Bamboo Fence +394102 : Sturdy Pine Fence +394103 : Wooden Hilichurl Fence +394104 : Hilichurl Totem Fence +394105 : Lush Grapevine +394106 : Newly Grown Grapevines +394107 : Simple Wooden Fence +394108 : Half-Constructed Fence +394109 : The Fruit Farmer's Thrift +394110 : "Kyuukou" Otogi Flower Terrace +394111 : "Sanzai" Otogi Flower Terrace +394201 : Smooth Wooden Bench +394202 : Smooth Stone Bench +394203 : Googol Chair +394204 : Square Yumemiru Stool +394205 : Otogi "Rakushi" Square Stool +394301 : Two-Story Hilichurl Sentry Tower +394302 : Doorless Pine Cupboard +394303 : Heavy Fir Forging Table +394304 : Long Pine Table +394305 : Large Stone Mill +394306 : Alchemist's Crafting Bench +394307 : Two-Tier Vendor's Booth: Rising Fortunes +394308 : Bamboo Outdoor Tea Table +394309 : Wooden Outdoor Tea Table +394310 : "Summer Forest Banquet" +394311 : Googol Table +394312 : Long Yumemiru Table +394313 : Otogi "Rakushi" Square Table +394401 : Wine Shop Display Counter: To Your Heart's Content +394402 : Crude Double-Decker Pallet +394403 : "Cradle of Flowers" +394404 : "The Blue Ocean's Treasure" +394501 : Foundations of Stone: Path of Cultivation +394502 : Foundations of Stone: Timely Arrival +394503 : Foundations of Stone: Double-Time +394504 : Of Fields Green: Cookie Road + +// Monsters +20010101 : Dendro Slime +20010201 : Large Dendro Slime +20010202 : +20010301 : Anemo Slime +20010302 : Anemo Slime (Mechanicus) +20010401 : Large Anemo Slime +20010402 : Large Anemo Slime (Mechanicus) +20010403 : +20010501 : Electro Slime +20010502 : Electro Slime (Mechanicus) +20010601 : Large Electro Slime +20010602 : Large Electro Slime (Mechanicus) +20010604 : +20010701 : Mutant Electro Slime +20010702 : +20010703 : Mutant Electro Slime (Mechanicus) +20010801 : Cryo Slime +20010802 : Cryo Slime - Dragonspine Event +20010803 : Cryo Slime (Mechanicus) +20010901 : Large Cryo Slime +20010902 : Large Cryo Slime - Snowy Mountain Event +20010903 : Large Cryo Slime (Mechanicus) +20010904 : +20011001 : Hydro Slime +20011002 : Hydro Slime (Mechanicus) +20011101 : Large Hydro Slime +20011102 : Large Hydro Slime (Mechanicus) +20011103 : +20011201 : Pyro Slime +20011202 : Pyro Slime +20011203 : Pyro Slime (Mechanicus) +20011301 : Large Pyro Slime +20011302 : Large Pyro Slime (Mechanicus) +20011304 : +20011401 : Geo Slime +20011402 : Geo Slime (Mechanicus) +20011501 : Large Geo Slime +20011502 : +20011503 : Large Geo Slime (Mechanicus) +20011601 : Hydro Hypostasis Summon: Split (L) +20011701 : Hydro Hypostasis Summon: Split (S) +20011801 : Hydro Hypostasis Summon: Self-Destruct +20011901 : Hydro Hypostasis Summon: Heal +20020101 : Eye of the Storm +20040101 : Electro Hypostasis - Aleph +20040102 : (Event) Electro Hypostasis - Aleph +20040201 : Anemo Hypostasis - Beth +20040202 : (Event) Anemo Hypostasis - Beth +20040301 : Geo Hypostasis: Gimel +20040302 : (Event) Geo Hypostasis - Gimel +20040401 : Hydro Hypostasis +20040501 : Cryo Hypostasis - Daleth +20040601 : Pyro Hypostasis: Ayin +20050101 : Oceanid +20050102 : Oceanid (Main Body) +20050201 : Oceanid Boar +20050202 : Oceanid Boar (Enhanced) +20050203 : +20050301 : Oceanid Crane +20050302 : +20050401 : Oceanid Crab +20050402 : Oceanid Crab (Enhanced) +20050403 : +20050501 : Oceanid Finch +20050502 : +20050601 : Oceanid Mallard +20050602 : Oceanid Mallard (Landwalker Version) +20050603 : +20050701 : Oceanid Ferret +20050702 : Oceanid Ferret (Enhanced) +20050703 : +20050801 : Oceanid Frog +20050802 : +20050901 : Oceanid Raptor +20060101 : Hydro Specter +20060201 : Geo Specter +20060301 : Anemo Specter +20060401 : null +20060501 : null +20060601 : null +20070101 : Thunder Manifestation +21010101 : Hilichurl +21010102 : Hilichurl (Mechanicus) +21010201 : Hilichurl Fighter +21010301 : Wooden Shield Hilichurl Guard +21010302 : Wooden Shield Hilichurl Guard (Mechanicus) +21010401 : Hilichurl Shooter +21010402 : Test_Varied Hilichurl Shooter +21010501 : Pyro Hilichurl Shooter +21010502 : Test_Varied Pyro Hilichurl Shooter +21010601 : Hilichurl Grenadier +21010603 : +21010701 : Hilichurl Berserker +21010702 : Hilichurl Berserker (Mechanicus) +21010901 : Cryo Hilichurl Shooter +21010902 : Test_Varied Cryo Hilichurl Shooter +21011001 : Electro Hilichurl Shooter +21011002 : Test_Varied Electro Hilichurl Shooter +21011201 : Rock Shield Hilichurl Guard +21011202 : Rock Shield Hilichurl Guard (Mechanicus) +21011301 : Cryo Hilichurl Grenadier +21011302 : Cryo Hilichurl Grenadier - Enhanced Attack +21011401 : Ice Shield Hilichurl Guard +21011402 : Ice Shield Hilichurl Guard (Mechanicus) +21011403 : Ice Shield Hilichurl Guard: Dragonspine Event +21011501 : Unusual Unarmed Hilichurl +21011601 : Electro Hilichurl Grenadier +21011602 : Electro Hilichurl Grenadier - Enhanced Attack +21020101 : Wooden Shieldwall Mitachurl +21020102 : Wooden Shieldwall Mitachurl (Mechanicus) +21020201 : Blazing Axe Mitachurl +21020202 : +21020203 : Blazing Axe Mitachurl (Mechanicus) +21020301 : Rock Shieldwall Mitachurl +21020302 : Rock Shieldwall Mitachurl (Mechanicus) +21020401 : Frostarm Lawachurl +21020402 : Frostarm Lawachurl (Mechanicus) +21020501 : Stonehide Lawachurl +21020502 : Stonehide Lawachurl (Mechanicus) +21020601 : Ice Shieldwall Mitachurl +21020602 : Ice Shieldwall Mitachurl (Mechanicus) +21020701 : Crackling Axe Mitachurl +21020702 : Crackling Axe Mitachurl (Mechanicus) +21020703 : Crackling Axe Mitachurl - Enhanced Attack +21020801 : Thunderhelm Lawachurl +21020802 : Thunderhelm Lawachurl (Mechanicus) +21030101 : Hydro Samachurl +21030102 : Hydro Samachurl (Mechanicus) +21030103 : Test_Movement Healing Hydro Samachurl +21030201 : Dendro Samachurl +21030202 : Dendro Samachurl (Mechanicus) +21030203 : +21030301 : Anemo Samachurl +21030302 : Anemo Samachurl (Mechanicus) +21030303 : Test_Wind Current Enhanced Anemo Samachurl +21030304 : +21030401 : Geo Samachurl +21030402 : +21030403 : Geo Samachurl (Mechanicus) +21030501 : Cryo Samachurl +21030502 : Cryo Samachurl (Mechanicus) +21030601 : Electro Samachurl +21030602 : Electro Samachurl (Mechanicus) +21030603 : Electro Samachurl - Enhanced Support +22010101 : Pyro Abyss Mage +22010102 : Test_Shield-Enhanced Pyro Abyss Mage +22010103 : Test_Teleport-Enhanced Pyro Abyss Mage +22010104 : Test_Attacking-Enhanced Pyro Abyss Mage +22010105 : Pyro Abyss Mage (Mechanicus) +22010201 : Cryo Abyss Mage +22010202 : Test_Shield-Enhanced Cryo Abyss Mage +22010203 : Test_Teleport-Enhanced Cryo Abyss Mage +22010204 : Test_Attacking-Enhanced Cryo Abyss Mage +22010205 : Cryo Abyss Mage (Mechanicus) +22010301 : Hydro Abyss Mage +22010302 : Test_Shield-Enhanced Hydro Abyss Mage +22010303 : Test_Teleport-Enhanced Hydro Abyss Mage +22010304 : Test_Attacking-Enhanced Hydro Abyss Mage +22010305 : Hydro Abyss Mage (Mechanicus) +22010401 : Electro Abyss Mage +22010402 : Electro Abyss Mage (Mechanicus) +22010403 : Electro Abyss Mage - Enhanced Shield +22010404 : Electro Abyss Mage - Enhanced Attack +22020101 : Abyss Herald: Wicked Torrents (Disappearing) +22020102 : Abyss Herald: Wicked Torrents (Permanent) +22030101 : Abyss Lector: Violet Lightning (Disappearing) +22030102 : Abyss Lector: Violet Lightning (Permanent) +22030201 : null +22030202 : null +22040101 : Rockfond Rifthound Whelp +22040201 : Thundercraven Rifthound Whelp +22050101 : Rockfond Rifthound +22050201 : Thundercraven Rifthound +22060101 : Golden Wolflord +22070101 : null +22070102 : null +22070201 : null +22070202 : null +22070301 : null +22070302 : null +22080101 : null +23010101 : +23010201 : +23010301 : +23010401 : +23010501 : +23010601 : +23020101 : Fatui Agent +23020102 : +23030101 : Fatui Electro Cicin Mage +23030102 : +23040101 : Fatui Cryo Cicin Mage +23040102 : Fatui Cryo Cicin Mage - Enhanced Attack +23050101 : Fatui Mirror Maiden +24010101 : Ruin Guard +24010102 : Ruin Guard (Mechanicus) +24010108 : +24010109 : +24010201 : Ruin Hunter +24010202 : Ruin Hunter (Mechanicus) +24010301 : Ruin Grader +24010302 : Ruin Grader (Mechanicus) +24010303 : Ruin Grader (Mining Version) +24010401 : null +24020101 : Ruin Cruiser +24020102 : Ruin Cruiser (Weakened) +24020103 : Ruin Cruiser (Enhanced) +24020201 : Ruin Destroyer +24020202 : Ruin Destroyer (Weakened) +24020203 : Ruin Destroyer (Enhanced) +24020301 : Ruin Defender +24020302 : Ruin Defender (Weakened) +24020303 : Ruin Defender (Enhanced) +24020401 : Ruin Scout +24020402 : Ruin Scout (Weakened) +24020403 : Ruin Scout (Enhanced) +24021101 : Perpetual Mechanical Array +24021102 : Perpetual Mechanical Array (Inazuma Event-Only) +25010101 : Liuliu +25010102 : Mystery Man +25010103 : +25010104 : +25010105 : null +25010106 : null +25010201 : Treasure Hoarder Scout +25010203 : +25010204 : +25010205 : +25010206 : +25010207 : +25010208 : +25010301 : +25010302 : +25010401 : +25010501 : +25010601 : +25010701 : +25020101 : Raptor +25020102 : +25020201 : Treasure Hoarder Marksman +25020204 : +25030101 : Carmen +25030102 : null +25030103 : null +25030201 : Treasure Hoarder Gravedigger +25030301 : Treasure Hoarder Oarsman +25040101 : Boss +25040102 : null +25040103 : null +25050101 : Millelith Soldier +25050201 : Millelith Sergeant +25050301 : Shogunate Infantry +25050401 : Shogunate Infantry Captain +25050402 : +25050501 : Sangonomiya Cohort +25050502 : +25060101 : +25060102 : +25070101 : +25070201 : null +25070202 : null +25080101 : Ronin +25080201 : Ronin: Sanzoku +25080202 : null +25080301 : Ronin: Anbu +25080401 : Shogunate Samurai +25080402 : null +25090101 : Marionette General +25090102 : Marionette General: Wind Bunshin +25090103 : Marionette General: Ice Bunshin +25090104 : Marionette General: Masked Bunshin +25090201 : Marionette General: Wind Bunshin (With Icon) +25090301 : Marionette General: Ice Bunshin (With Icon) +25090401 : Marionette General: Masked Bunshin (With Icon) +25100101 : Electro Kairagi +25100102 : null +25100201 : Pyro Kairagi +25100301 : Thunderwraith Kairagi +25100302 : null +25100401 : Flameghoul Kairagi +26010101 : Cryo Whopperflower +26010102 : Cryo Whopperflower (Dragonspine Event) +26010103 : Giant Cryo Whopperflower (2.3 Dragonspine Event) +26010104 : +26010201 : Pyro Whopperflower +26010301 : Electro Whopperflower +26020101 : Cryo Regisvine +26020102 : Cryo Regisvine (Dragonspine Event) +26020201 : Pyro Regisvine +26030101 : Geovishap Hatchling +26040101 : Geovishap: Hydro +26040102 : Geovishap: Pyro +26040103 : Geovishap: Cryo +26040104 : Geovishap: Electro +26040105 : Geovishap: Hydro (Mechanicus) +26050101 : Primo Geovishap: Hydro +26050201 : Primo Geovishap: Pyro +26050301 : Primo Geovishap: Cryo +26050401 : Primo Geovishap: Electro +26050501 : Primo Geovishap (Event) +26050601 : null +26050701 : null +26050702 : null +26050801 : null +26050802 : null +26050901 : null +26051001 : null +26051101 : null +26060101 : Electro Cicin +26060201 : Hydro Cicin +26060301 : Cryo Cicin +26080101 : null +26090101 : null +28010101 : Golden Crab +28010102 : Sun Crab +28010103 : Ocean Crab +28010104 : General Crab +28010105 : Pale Red Crab +28010106 : Crab +28010201 : Blue Horned Lizard +28010202 : Red Horned Lizard +28010203 : Green Horned Lizard +28010204 : Sunset Loach +28010205 : Golden Loach +28010206 : Sunny Loach +28010207 : Pith Lizard +28010301 : Frog +28010302 : Mud Frog +28010303 : Blue Frog +28010401 : +28010402 : null +28010403 : +28020101 : Snow Fox +28020102 : Crimson Fox +28020103 : Gifting Snow Fox +28020104 : Super-Gifting Snow Fox +28020105 : null +28020106 : null +28020201 : Squirrel +28020301 : Forest Boar +28020302 : Forest Piglet +28020303 : Snowboar +28020304 : Great Snowboar King +28020305 : Frozen Snowboar +28020306 : null +28020307 : null +28020308 : null +28020309 : null +28020401 : Northland Hound +28020402 : Forest-Patrol Hound +28020403 : Shiba +28020404 : Black-Back Hound +28020405 : Shiba +28020406 : Northland Hound (Dog Event Special, Extended LoS Range) +28020407 : null +28020408 : null +28020409 : null +28020410 : null +28020501 : Sapphire +28020502 : Jade-Eyed Cat +28020503 : Gray Snow Cat +28020504 : Northland Cat +28020505 : Tiger-Striped Cat +28020506 : Sheriff Cat +28020507 : Black Cat +28020508 : Sapphire +28020509 : Gray Snow Cat (Dog Event Special, Extended LoS Range) +28020510 : null +28020511 : null +28020512 : null +28020513 : null +28020601 : Snow Weasel +28020602 : Red-Tailed Weasel +28020603 : Boot Weasel +28020604 : Masked Weasel +28020605 : null +28020701 : Kitsune +28020702 : Kitsune (Dog Event Special, Extended LoS Range) +28020801 : Bake-Danuki +28020802 : null +28020803 : null +28020901 : Samurai Dog (Patrol) +28020902 : Samurai Dog (Combat) +28020903 : null +28030101 : Azure Crane +28030102 : Violet Ibis +28030201 : Brownwing Falcon +28030202 : Umbertail Falcon +28030203 : Lapis Glede +28030204 : Silkwhite Falcon +28030301 : White Pigeon +28030302 : Brightcrown Pigeon +28030303 : Graywing Pigeon +28030304 : Crimsonflank Pigeon +28030305 : Black King Pigeon +28030306 : Duck +28030307 : White Pigeon +28030308 : Brightcrown Pigeon +28030309 : Graywing Pigeon +28030310 : Crimsonflank Pigeon +28030311 : Black King Pigeon +28030401 : Crimson Finch +28030402 : Golden Finch +28030403 : Snow Finch +28030404 : Emerald Finch +28030405 : null +28030406 : null +28030407 : null +28030408 : null +28030409 : null +28030501 : Scarletbeak Duck +28030502 : Emerald Duck +28030503 : Golden Duck +28030504 : null +28040101 : Black-Back Bass +28040102 : Blue-Fin Bass +28040103 : Golden Bass +28040104 : Black-Back Bass +28040105 : Black-Back Bass +28040106 : Blue-Fin Bass +28040107 : Golden Bass +28040108 : null +28040201 : Medaka +28040202 : Glaze Medaka +28040203 : Sweet-Flower Medaka +28040204 : Aizen Medaka +28040205 : Dawncatcher +28040206 : Crystalfish +28040301 : Lunged Stickleback +28040302 : Betta +28040303 : Venomspine Fish +28040304 : Akai Maou +28040305 : Snowstrider +28040401 : Golden Koi +28040402 : Rusty Koi +28040501 : Brown Shirakodai +28040502 : Purple Shirakodai +28040503 : Tea-Colored Shirakodai +28040504 : Abiding Angelfish +28040505 : Raimei Angelfish +28040506 : Moonfin +28040601 : Pufferfish +28040602 : Bitter Pufferfish +28040701 : null +28040702 : null +28040703 : null +28050101 : Anemo Crystalfly +28050102 : Geo Crystalfly +28050103 : Cryo Crystalfly +28050104 : Electro Crystalfly +28050105 : null +28050201 : Amateur Weasel Thief +28050202 : Hoarder Weasel Thief +28050203 : Golden Weasel Thief +28050204 : null +28050211 : Amateur Weasel Thief +28050212 : Hoarder Weasel Thief +28050213 : Golden Weasel Thief +28050221 : null +28050222 : null +28050223 : null +28050301 : null +28210101 : Domestic Golden Crab +28210102 : Domestic Sun Crab +28210103 : Domestic Ocean Crab +28210104 : Domestic General Crab +28210105 : Domestic Pale Red Crab +28210201 : Domestic Blue Horned Lizard +28210202 : Domestic Red Horned Lizard +28210203 : Domestic Green Horned Lizard +28210204 : Domestic Sunset Loach +28210205 : Domestic Golden Loach +28210206 : Domestic Sunny Loach +28210207 : Domestic Marrow Lizard +28210301 : Domestic Frog +28210302 : Domestic Mud Frog +28210303 : Domestic Blue Frog +28210401 : Domestic Adorned Unagi +28210402 : null +28210403 : Domestic Red-Finned Unagi +28220101 : Domestic Snow Fox +28220102 : Domestic Crimson Fox +28220201 : Domestic Squirrel +28220301 : Domestic Forest Boar +28220303 : Domestic Snowboar +28220401 : Domestic Northland Hound +28220402 : Domestic Forest-Patrol Hound +28220403 : Domestic Shiba +28220404 : Domestic Black-Back Hound +28220501 : Domestic Sapphire +28220502 : Domestic Jade-Eyed Cat +28220503 : Domestic Gray Snow Cat +28220504 : Domestic Northland Cat +28220505 : Domestic Tiger-Striped Cat +28220506 : Domestic Sheriff Cat +28220601 : Domestic Snow Weasel +28220602 : Domestic Red-Tailed Weasel +28220603 : Domestic Boot Weasel +28220605 : null +28220701 : Domestic Kitsune +28220901 : Domestic Samurai Dog +28230101 : Domestic Azure Crane +28230102 : Domestic Violet Ibis +28230301 : Domestic White Pigeon +28230302 : Domestic Brightcrown Pigeon +28230303 : Domestic Graywing Pigeon +28230304 : Domestic Crimsonflank Pigeon +28230305 : Domestic Black King Pigeon +28230306 : Domestic Crow +28230401 : Domestic Crimson Finch +28230402 : Domestic Golden Finch +28230403 : Domestic Snow Finch +28230404 : Domestic Emerald Finch +28240201 : Domestic Medaka +28240202 : Domestic Glaze Medaka +28240203 : Domestic Sweet-Flower Medaka +28240204 : Domestic Aizen Medaka +28240205 : Domestic Dawncatcher +28240206 : Domestic Crystalfish +28240301 : Domestic Lunged Stickleback +28240302 : Domestic Betta +28240303 : Domestic Venomspine Fish +28240304 : Domestic Akai Maou +28240305 : Domestic Snowstrider +28240401 : Domestic Golden Koi +28240402 : Domestic Rusty Koi +28240501 : Domestic Brown Shirakodai +28240502 : Domestic Purple Shirakodai +28240503 : Domestic Tea-Colored Shirakodai +28240504 : Domestic Abiding Angelfish +28240505 : Domestic Raimei Angelfish +28240506 : Domestic Moonfin +28240601 : Domestic Pufferfish +28240602 : Domestic Bitter Pufferfish +28240701 : null +28240702 : null +28250101 : Domestic Anemo Crystalfly +28250102 : Domestic Geo Crystalfly +28250103 : Domestic Cryo Crystalfly +28250104 : Domestic Electro Crystalfly +28250105 : null +28250301 : null +29010101 : Stormterror +29010102 : Stormterror +29010103 : Stormterror +29010104 : Stormterror +29020101 : Boreas, Great Wolf King of the North +29020102 : Andrius, Dominator of Wolves +29030101 : Eleventh of the Fatui Harbingers - Tartaglia +29030102 : Delusion Unleashed - Childe +29030103 : Childe +29030104 : Eleventh of the Fatui Harbingers - Tartaglia +29030105 : Delusion Unleashed - Childe +29030106 : Childe +29040101 : Azhdaha +29040102 : Azhdaha +29040103 : Azhdaha +29040104 : Azhdaha +29040111 : Azhdaha +29050101 : Signora +29050102 : Crimson Witch of Embers +29050103 : Signora +29050104 : Crimson Witch of Embers +29060101 : Raiden Shogun +29060102 : Raiden Ei +29060201 : null +29060202 : null +29060203 : null diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java index ac6593529..036a261b5 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -24,7 +24,7 @@ public class SendMailCommand implements CommandHandler { sender = Grasscutter.getGameServer().getPlayerByUid(7006); } sender.sendMail(new Mail(new Mail.MailContent("Test", "This is a test"), - new ArrayList(){{add(new Mail.MailItem(1062));}}, + new ArrayList(){{add(new Mail.MailItem(23411 ));}}, Instant.now().getEpochSecond() + 4000)); sender.dropMessage("Check your inbox"); diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index 3287b0fd8..af1dc5bbd 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -23,7 +23,6 @@ import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.proto.AbilityInvokeEntryOuterClass.AbilityInvokeEntry; -import emu.grasscutter.net.proto.BirthdayOuterClass.Birthday; import emu.grasscutter.net.proto.CombatInvokeEntryOuterClass.CombatInvokeEntry; import emu.grasscutter.net.proto.HeadImageOuterClass.HeadImage; import emu.grasscutter.net.proto.InteractTypeOuterClass.InteractType; @@ -595,15 +594,45 @@ public class GenshinPlayer { this.sendPacket(new PacketPrivateChatNotify(sender.getUid(), this.getUid(), message.toString())); } - public List getMail() { return mail; } + // ---------------------MAIL------------------------ + + public List getAllMail() { return this.mail; } public void sendMail(Mail message) { - this.mail.add(message); message._id = this.mail.size() + 1; this.save(); this.sendPacket(new PacketMailChangeNotify(this, message)); } + + public boolean deleteMail(int mailId) { + Mail message = getMailById(mailId); + + if(message != null) { + this.mail.remove(message); + this.save(); + return true; + } + + return false; + } + + public Mail getMailById(int mailId) { + return this.mail.stream().filter(message -> message._id == mailId).findFirst().orElse(null); + } + + public int getMailIndex(Mail message) { + return this.mail.indexOf(message); + } + + public boolean replaceMailByIndex(int mailId, Mail message) { + if(getMailById(mailId) != null) { + this.mail.set(mailId, message); + return true; + } else { + return false; + } + } public void interactWith(int gadgetEntityId) { GenshinEntity entity = getScene().getEntityById(gadgetEntityId); diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 0eb377eac..1ace4610f 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -55,6 +55,10 @@ public class Mail { this.stateValue = state; } + public int getId() { + return this._id; + } + @Entity public static class MailContent { public String title; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java index 9a1d1294e..7d92f2523 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java @@ -15,7 +15,6 @@ public class HandlerGetAllMailReq extends PacketHandler { @Override public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { - Grasscutter.getLogger().info("Mail Req"); GetAllMailReqOuterClass.GetAllMailReq req = GetAllMailReqOuterClass.GetAllMailReq.parseFrom(payload); session.send(new PacketGetAllMailRsp(session.getPlayer(), req.getIsGiftMail())); } diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java index 2fed31974..59195a4b3 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java @@ -6,7 +6,6 @@ import emu.grasscutter.net.packet.PacketHandler; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetMailItemReqOuterClass; import emu.grasscutter.server.game.GameSession; -import emu.grasscutter.server.packet.send.PacketGetAllMailRsp; import emu.grasscutter.server.packet.send.PacketGetMailItemRsp; @Opcodes(PacketOpcodes.GetMailItemReq) diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index 43f57df12..b8a36e1bf 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -1,17 +1,17 @@ package emu.grasscutter.server.packet.send; -import com.google.gson.Gson; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.game.Mail; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; -import emu.grasscutter.net.proto.*; import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; +import emu.grasscutter.net.proto.ItemParamOuterClass; +import emu.grasscutter.net.proto.MailDataOuterClass; import emu.grasscutter.net.proto.MailDataOuterClass.MailData; +import emu.grasscutter.net.proto.MailItemOuterClass; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; -import javax.swing.*; import java.util.ArrayList; import java.util.Base64; import java.util.List; @@ -20,7 +20,6 @@ public class PacketGetAllMailRsp extends GenshinPacket { public PacketGetAllMailRsp(GenshinPlayer player, boolean isGiftMail) { super(PacketOpcodes.GetAllMailRsp); - Grasscutter.getLogger().info(String.valueOf(isGiftMail)); if (isGiftMail) { // TODO: Gift Mail @@ -34,11 +33,11 @@ public class PacketGetAllMailRsp extends GenshinPacket { } } else { - if (player.getMail().size() != 0) { // Make sure the player has mail + if (player.getAllMail().size() != 0) { // Make sure the player has mail GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); List mailDataList = new ArrayList(); - for (Mail message : player.getMail()) { + for (Mail message : player.getAllMail()) { if(message.stateValue == 1) { //Make sure it isn't a gift MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); mailTextContent.setTitle(message.mailContent.title); @@ -73,7 +72,7 @@ public class PacketGetAllMailRsp extends GenshinPacket { } proto.addAllMailList(mailDataList); - proto.setIsTruncated(true); + proto.setIsTruncated(false); // When enabled this will send a notification to the user that their inbox is full when opening the mailbox. this.setData(proto.build()); } else { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java index 468e98885..a31c6c2db 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -1,13 +1,21 @@ package emu.grasscutter.server.packet.send; +import emu.grasscutter.Grasscutter; +import emu.grasscutter.data.GenshinData; import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Mail; +import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.EquipParamOuterClass; import emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp; import emu.grasscutter.net.proto.ItemParamOuterClass; import emu.grasscutter.net.proto.MailItemOuterClass; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; public class PacketGetMailItemRsp extends GenshinPacket { @@ -17,15 +25,40 @@ public class PacketGetMailItemRsp extends GenshinPacket { //I'm assuming that this is to receive the attachments on the message. // TODO: This. - //GetMailItemRsp.Builder proto = GetMailItemRsp.newBuilder(); + List claimedMessages = new ArrayList<>(); + List claimedItems = new ArrayList<>(); - //MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + GetMailItemRsp.Builder proto = GetMailItemRsp.newBuilder(); - //ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + for (int mailId : mailList) { + Mail message = player.getMailById(mailId); + int messageIndex = player.getMailIndex(message); - //mailItem.setItemParam(itemParam); + message.isAttachmentGot = true; + claimedMessages.add(message); - //proto.addAllMailIdList(mailList); - //proto.addItemList(); + player.replaceMailByIndex(messageIndex, message); + + for(Mail.MailItem mailItem : message.itemList) { + //TODO: Actually give the item + EquipParamOuterClass.EquipParam.Builder item = EquipParamOuterClass.EquipParam.newBuilder(); + item.setItemId(mailItem.itemId); + item.setItemNum(mailItem.itemCount); + claimedItems.add(item.build()); + + GenshinItem genshinItem = new GenshinItem(GenshinData.getItemDataMap().get(mailItem.itemId)); + genshinItem.setCount(mailItem.itemCount); + player.getInventory().addItem(genshinItem); + player.sendPacket(new PacketItemAddHintNotify(genshinItem, ActionReason.MailAttachment)); + } + } + + proto.addAllMailIdList(claimedMessages.stream().map(Mail::getId).collect(Collectors.toList())); + proto.addAllItemList(claimedItems); + player.save(); + + Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); + this.setData(proto.build()); + player.getSession().send(new PacketMailChangeNotify(player, claimedMessages)); } } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java index a0bdc5c3e..ee07f06b7 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -1,6 +1,7 @@ package emu.grasscutter.server.packet.send; +import emu.grasscutter.Grasscutter; import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.game.Mail; import emu.grasscutter.net.packet.GenshinPacket; @@ -13,40 +14,48 @@ import java.util.List; public class PacketMailChangeNotify extends GenshinPacket { public PacketMailChangeNotify(GenshinPlayer player, Mail message) { + this (player, new ArrayList(){{add(message);}}); + } + + public PacketMailChangeNotify(GenshinPlayer player, List mailList) { super(PacketOpcodes.MailChangeNotify); MailChangeNotifyOuterClass.MailChangeNotify.Builder proto = MailChangeNotifyOuterClass.MailChangeNotify.newBuilder(); - MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); - mailTextContent.setTitle(message.mailContent.title); - mailTextContent.setContent(message.mailContent.content); - mailTextContent.setSender(message.mailContent.sender); + for(Mail message : mailList) { + MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); - List mailItems = new ArrayList(); + List mailItems = new ArrayList(); - for(Mail.MailItem item : message.itemList) { - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); - itemParam.setItemId(item.itemId); - itemParam.setCount(item.itemCount); - mailItem.setItemParam(itemParam.build()); + for(Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); - mailItems.add(mailItem.build()); + mailItems.add(mailItem.build()); + } + + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(message._id); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int)message.sendTime); + mailData.setExpireTime((int)message.expireTime); + mailData.setImportance(message.importance); + mailData.setIsRead(message.isRead); + mailData.setIsAttachmentGot(message.isAttachmentGot); + mailData.setStateValue(message.stateValue); + + proto.addMailList(mailData.build()); + + Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); + + this.setData(proto.build()); } - - MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(message._id); - mailData.setMailTextContent(mailTextContent.build()); - mailData.addAllItemList(mailItems); - mailData.setSendTime((int)message.sendTime); - mailData.setExpireTime((int)message.expireTime); - mailData.setImportance(message.importance); - mailData.setIsRead(false); - mailData.setIsAttachmentGot(false); - mailData.setStateValue(message.stateValue); - - proto.addMailList(mailData.build()); - - this.setData(proto.build()); } } \ No newline at end of file From ffe96fe93afeb4326a94be741d5cbc512a5cc492 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 14:30:56 +0800 Subject: [PATCH 08/40] Deleting mail + a bit of cleanup --- .../emu/grasscutter/game/GenshinPlayer.java | 13 ++-- src/main/java/emu/grasscutter/game/Mail.java | 13 ++-- .../server/packet/recv/HandlerDelMailReq.java | 21 ++++++ .../server/packet/send/PacketDelMailRsp.java | 29 ++++++++ .../packet/send/PacketGetAllMailRsp.java | 59 ++++++++-------- .../packet/send/PacketGetMailItemRsp.java | 21 ++---- .../packet/send/PacketMailChangeNotify.java | 68 +++++++++++-------- 7 files changed, 143 insertions(+), 81 deletions(-) create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerDelMailReq.java create mode 100644 src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index af1dc5bbd..2b97155a0 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -1,5 +1,6 @@ package emu.grasscutter.game; +import java.time.Instant; import java.util.*; import dev.morphia.annotations.*; @@ -609,8 +610,9 @@ public class GenshinPlayer { Mail message = getMailById(mailId); if(message != null) { - this.mail.remove(message); - this.save(); + int index = getMailIndex(message); + message.expireTime = (int) Instant.now().getEpochSecond(); // Just set the mail as expired for now. I don't want to implement a counter specifically for an account... + this.replaceMailByIndex(index, message); return true; } @@ -625,9 +627,10 @@ public class GenshinPlayer { return this.mail.indexOf(message); } - public boolean replaceMailByIndex(int mailId, Mail message) { - if(getMailById(mailId) != null) { - this.mail.set(mailId, message); + public boolean replaceMailByIndex(int index, Mail message) { + if(getMailById(index) != null) { + this.mail.set(index, message); + this.save(); return true; } else { return false; diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 1ace4610f..67a592a33 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -25,14 +25,14 @@ public class Mail { itemList = new ArrayList<>(); sendTime = 0; expireTime = 0; - importance = 1; + importance = 0; // Starred mail, 0 = No star, 1 = Star. isRead = true; isAttachmentGot = true; - stateValue = 1; + stateValue = 1; // Different mailboxes, 1 = Default, 3 = Gift-box. } public Mail(MailContent mailContent, List itemList, long expireTime) { - this(mailContent, itemList, expireTime, 1); + this(mailContent, itemList, expireTime, 0); } public Mail(MailContent mailContent, List itemList, long expireTime, int importance) { @@ -90,19 +90,24 @@ public class Mail { public static class MailItem { public int itemId; public int itemCount; + public int itemLevel; public MailItem() { this.itemId = 11101; this.itemCount = 1; + this.itemLevel = 1; } public MailItem(int itemId) { this(itemId, 1); } - public MailItem(int itemId, int itemCount) { + public MailItem(int itemId, int itemCount) { this(itemId, itemCount, 1); } + + public MailItem(int itemId, int itemCount, int itemLevel) { this.itemId = itemId; this.itemCount = itemCount; + this.itemLevel = itemLevel; } } } diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerDelMailReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerDelMailReq.java new file mode 100644 index 000000000..4c6473996 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerDelMailReq.java @@ -0,0 +1,21 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.DelMailReqOuterClass; +import emu.grasscutter.net.proto.DeleteFriendReqOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketDelMailRsp; + +@Opcodes(PacketOpcodes.DelMailReq) +public class HandlerDelMailReq extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + DelMailReqOuterClass.DelMailReq req = DelMailReqOuterClass.DelMailReq.parseFrom(payload); + + session.send(new PacketDelMailRsp(session.getPlayer(), req.getMailIdListList())); + } + +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java new file mode 100644 index 000000000..6a11521a5 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java @@ -0,0 +1,29 @@ +package emu.grasscutter.server.packet.send; + +import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp; + +import java.util.ArrayList; +import java.util.List; + +public class PacketDelMailRsp extends GenshinPacket { + + public PacketDelMailRsp(GenshinPlayer player, List toDeleteIds) { + super(PacketOpcodes.DelMailRsp); + + DelMailRsp.Builder proto = DelMailRsp.newBuilder(); + + List deletedIds = new ArrayList<>(); + + for(int mailId : toDeleteIds) { + if(player.deleteMail(mailId)) { + deletedIds.add(mailId); + } + } + + this.setData(proto.build()); + player.getSession().send(new PacketMailChangeNotify(player, null, deletedIds)); + } +} \ No newline at end of file diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index b8a36e1bf..756b6f347 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -12,6 +12,7 @@ import emu.grasscutter.net.proto.MailDataOuterClass.MailData; import emu.grasscutter.net.proto.MailItemOuterClass; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; +import java.time.Instant; import java.util.ArrayList; import java.util.Base64; import java.util.List; @@ -38,41 +39,45 @@ public class PacketGetAllMailRsp extends GenshinPacket { List mailDataList = new ArrayList(); for (Mail message : player.getAllMail()) { - if(message.stateValue == 1) { //Make sure it isn't a gift - MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); - mailTextContent.setTitle(message.mailContent.title); - mailTextContent.setContent(message.mailContent.content); - mailTextContent.setSender(message.mailContent.sender); + if(message.stateValue == 1) { // Make sure it isn't a gift + if (message.expireTime < Instant.now().getEpochSecond()) { // Make sure the message isn't expired (The game won't show expired mail, but I don't want to send unnecessary information). + if(mailDataList.size() <= 1000) { // Make sure that there isn't over 1000 messages in the mailbox. (idk what will happen if there is but the game probably won't like it.) + MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); - List mailItems = new ArrayList<>(); + List mailItems = new ArrayList<>(); - for (Mail.MailItem item : message.itemList) { - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); - itemParam.setItemId(item.itemId); - itemParam.setCount(item.itemCount); - mailItem.setItemParam(itemParam.build()); + for (Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); - mailItems.add(mailItem.build()); + mailItems.add(mailItem.build()); + } + + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(message._id); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int) message.sendTime); + mailData.setExpireTime((int) message.expireTime); + mailData.setImportance(message.importance); + mailData.setIsRead(message.isRead); + mailData.setIsAttachmentGot(message.isAttachmentGot); + mailData.setStateValue(1); + + mailDataList.add(mailData.build()); + } } - - MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(message._id); - mailData.setMailTextContent(mailTextContent.build()); - mailData.addAllItemList(mailItems); - mailData.setSendTime((int) message.sendTime); - mailData.setExpireTime((int) message.expireTime); - mailData.setImportance(message.importance); - mailData.setIsRead(message.isRead); - mailData.setIsAttachmentGot(message.isAttachmentGot); - mailData.setStateValue(1); - - mailDataList.add(mailData.build()); } } proto.addAllMailList(mailDataList); - proto.setIsTruncated(false); // When enabled this will send a notification to the user that their inbox is full when opening the mailbox. + proto.setIsTruncated(mailDataList.size() <= 1000 ? false : true); // When enabled this will send a notification to the user telling them their inbox is full and they should delete old messages when opening the mailbox. this.setData(proto.build()); } else { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java index a31c6c2db..79f0072ae 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -1,6 +1,5 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.Grasscutter; import emu.grasscutter.data.GenshinData; import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.game.Mail; @@ -10,8 +9,6 @@ import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EquipParamOuterClass; import emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp; -import emu.grasscutter.net.proto.ItemParamOuterClass; -import emu.grasscutter.net.proto.MailItemOuterClass; import java.util.ArrayList; import java.util.List; @@ -22,9 +19,6 @@ public class PacketGetMailItemRsp extends GenshinPacket { public PacketGetMailItemRsp(GenshinPlayer player, List mailList) { super(PacketOpcodes.GetMailItemRsp); - //I'm assuming that this is to receive the attachments on the message. - // TODO: This. - List claimedMessages = new ArrayList<>(); List claimedItems = new ArrayList<>(); @@ -34,13 +28,7 @@ public class PacketGetMailItemRsp extends GenshinPacket { Mail message = player.getMailById(mailId); int messageIndex = player.getMailIndex(message); - message.isAttachmentGot = true; - claimedMessages.add(message); - - player.replaceMailByIndex(messageIndex, message); - for(Mail.MailItem mailItem : message.itemList) { - //TODO: Actually give the item EquipParamOuterClass.EquipParam.Builder item = EquipParamOuterClass.EquipParam.newBuilder(); item.setItemId(mailItem.itemId); item.setItemNum(mailItem.itemCount); @@ -51,14 +39,17 @@ public class PacketGetMailItemRsp extends GenshinPacket { player.getInventory().addItem(genshinItem); player.sendPacket(new PacketItemAddHintNotify(genshinItem, ActionReason.MailAttachment)); } + + message.isAttachmentGot = true; + claimedMessages.add(message); + + player.replaceMailByIndex(messageIndex, message); } proto.addAllMailIdList(claimedMessages.stream().map(Mail::getId).collect(Collectors.toList())); proto.addAllItemList(claimedItems); - player.save(); - Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); this.setData(proto.build()); - player.getSession().send(new PacketMailChangeNotify(player, claimedMessages)); + player.getSession().send(new PacketMailChangeNotify(player, claimedMessages)); // For some reason you have to also send the MailChangeNotify packet } } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java index ee07f06b7..fe8437fdd 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -18,44 +18,52 @@ public class PacketMailChangeNotify extends GenshinPacket { } public PacketMailChangeNotify(GenshinPlayer player, List mailList) { + this(player, mailList, null); + } + + public PacketMailChangeNotify(GenshinPlayer player, List mailList, List delMailIdList) { super(PacketOpcodes.MailChangeNotify); MailChangeNotifyOuterClass.MailChangeNotify.Builder proto = MailChangeNotifyOuterClass.MailChangeNotify.newBuilder(); - for(Mail message : mailList) { - MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); - mailTextContent.setTitle(message.mailContent.title); - mailTextContent.setContent(message.mailContent.content); - mailTextContent.setSender(message.mailContent.sender); + if (mailList != null) { + for (Mail message : mailList) { + MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); - List mailItems = new ArrayList(); + List mailItems = new ArrayList(); - for(Mail.MailItem item : message.itemList) { - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); - itemParam.setItemId(item.itemId); - itemParam.setCount(item.itemCount); - mailItem.setItemParam(itemParam.build()); + for (Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); - mailItems.add(mailItem.build()); + mailItems.add(mailItem.build()); + } + + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(message._id); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int) message.sendTime); + mailData.setExpireTime((int) message.expireTime); + mailData.setImportance(message.importance); + mailData.setIsRead(message.isRead); + mailData.setIsAttachmentGot(message.isAttachmentGot); + mailData.setStateValue(message.stateValue); + + proto.addMailList(mailData.build()); } - - MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(message._id); - mailData.setMailTextContent(mailTextContent.build()); - mailData.addAllItemList(mailItems); - mailData.setSendTime((int)message.sendTime); - mailData.setExpireTime((int)message.expireTime); - mailData.setImportance(message.importance); - mailData.setIsRead(message.isRead); - mailData.setIsAttachmentGot(message.isAttachmentGot); - mailData.setStateValue(message.stateValue); - - proto.addMailList(mailData.build()); - - Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); - - this.setData(proto.build()); } + + if(delMailIdList != null) { + proto.addAllDelMailIdList(delMailIdList); + } + + this.setData(proto.build()); } } \ No newline at end of file From 3a677ff6d2ef0be335e388dce1d05d60c8279367 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 15:41:18 +0800 Subject: [PATCH 09/40] Mail read notify --- .../packet/recv/HandlerReadMailNotify.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java new file mode 100644 index 000000000..adf9e54ba --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java @@ -0,0 +1,36 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.game.Mail; +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.GetAllMailReqOuterClass; +import emu.grasscutter.net.proto.ReadMailNotifyOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketMailChangeNotify; + +import java.util.ArrayList; +import java.util.List; + +@Opcodes(PacketOpcodes.ReadMailNotify) +public class HandlerReadMailNotify extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + ReadMailNotifyOuterClass.ReadMailNotify req = ReadMailNotifyOuterClass.ReadMailNotify.parseFrom(payload); + + List updatedMail = new ArrayList<>(); + + for (int mailId : req.getMailIdListList()) { + Mail message = session.getPlayer().getMailById(mailId); + int messageIndex = session.getPlayer().getMailIndex(message); + + message.isRead = true; + + session.getPlayer().replaceMailByIndex(messageIndex, message); + updatedMail.add(message); + } + + session.send(new PacketMailChangeNotify(session.getPlayer(), updatedMail)); + } +} From 2e26e16d4d46ddf61391270b3d113126c50e1b07 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 16:11:57 +0800 Subject: [PATCH 10/40] Added ChangeMailStarNotify (change importance level) --- .../recv/HandlerChangeMailStarNotify.java | 35 +++++++++++++++++++ .../packet/recv/HandlerGetAllMailReq.java | 1 - 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java new file mode 100644 index 000000000..468ce5b4e --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java @@ -0,0 +1,35 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.game.Mail; +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketMailChangeNotify; + +import java.util.ArrayList; +import java.util.List; + +@Opcodes(PacketOpcodes.ChangeMailStarNotify) +public class HandlerChangeMailStarNotify extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + ChangeMailStarNotifyOuterClass.ChangeMailStarNotify req = ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.parseFrom(payload); + + List updatedMail = new ArrayList<>(); + + for (int mailId : req.getMailIdListList()) { + Mail message = session.getPlayer().getMailById(mailId); + int messageIndex = session.getPlayer().getMailIndex(message); + + message.importance = req.getIsStar() == true ? 1 : 0; + + session.getPlayer().replaceMailByIndex(messageIndex, message); + updatedMail.add(message); + } + + session.send(new PacketMailChangeNotify(session.getPlayer(), updatedMail)); + } +} diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java index 7d92f2523..899ba6d95 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java @@ -18,5 +18,4 @@ public class HandlerGetAllMailReq extends PacketHandler { GetAllMailReqOuterClass.GetAllMailReq req = GetAllMailReqOuterClass.GetAllMailReq.parseFrom(payload); session.send(new PacketGetAllMailRsp(session.getPlayer(), req.getIsGiftMail())); } - } From 1e4c4f96ae47703fd3d0ace6f8af1ff6f3becb43 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Fri, 22 Apr 2022 15:24:23 +0800 Subject: [PATCH 11/40] Update protos --- .../proto/ChangeMailStarNotifyOuterClass.java | 737 +++++++ .../net/proto/DelMailReqOuterClass.java | 665 ++++++ .../net/proto/DelMailRspOuterClass.java | 735 +++++++ .../net/proto/EquipParamOuterClass.java | 749 +++++++ .../net/proto/FetterStateOuterClass.java | 163 ++ .../net/proto/GetAllMailReqOuterClass.java | 539 +++++ .../net/proto/GetAllMailRspOuterClass.java | 987 +++++++++ .../net/proto/GetMailItemReqOuterClass.java | 665 ++++++ .../net/proto/GetMailItemRspOuterClass.java | 1111 ++++++++++ .../net/proto/MailChangeNotifyOuterClass.java | 1040 ++++++++++ .../net/proto/MailDataOuterClass.java | 1835 +++++++++++++++++ .../net/proto/MailItemOuterClass.java | 880 ++++++++ .../net/proto/MailTextContentOuterClass.java | 919 +++++++++ .../net/proto/ReadMailNotifyOuterClass.java | 665 ++++++ 14 files changed, 11690 insertions(+) create mode 100644 src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java diff --git a/src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java b/src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java new file mode 100644 index 000000000..d238a3ecd --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java @@ -0,0 +1,737 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ChangeMailStarNotify.proto + +package emu.grasscutter.net.proto; + +public final class ChangeMailStarNotifyOuterClass { + private ChangeMailStarNotifyOuterClass() {} + 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 ChangeMailStarNotifyOrBuilder extends + // @@protoc_insertion_point(interface_extends:ChangeMailStarNotify) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + + /** + * bool isStar = 2; + * @return The isStar. + */ + boolean getIsStar(); + } + /** + * Protobuf type {@code ChangeMailStarNotify} + */ + public static final class ChangeMailStarNotify extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:ChangeMailStarNotify) + ChangeMailStarNotifyOrBuilder { + private static final long serialVersionUID = 0L; + // Use ChangeMailStarNotify.newBuilder() to construct. + private ChangeMailStarNotify(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ChangeMailStarNotify() { + mailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ChangeMailStarNotify(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ChangeMailStarNotify( + 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 8: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 10: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + case 16: { + + isStar_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.class, emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.Builder.class); + } + + public static final int MAILIDLIST_FIELD_NUMBER = 1; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -1; + + public static final int ISSTAR_FIELD_NUMBER = 2; + private boolean isStar_; + /** + * bool isStar = 2; + * @return The isStar. + */ + @java.lang.Override + public boolean getIsStar() { + return isStar_; + } + + 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 (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + if (isStar_ != false) { + output.writeBool(2, isStar_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + if (isStar_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, isStar_); + } + 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify other = (emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify) obj; + + if (!getMailIdListList() + .equals(other.getMailIdListList())) return false; + if (getIsStar() + != other.getIsStar()) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + hash = (37 * hash) + ISSTAR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsStar()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ChangeMailStarNotify} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:ChangeMailStarNotify) + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotifyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.class, emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.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(); + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + isStar_ = false; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify getDefaultInstanceForType() { + return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify build() { + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify buildPartial() { + emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify result = new emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + result.isStar_ = isStar_; + 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify) { + return mergeFrom((emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify other) { + if (other == emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.getDefaultInstance()) return this; + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + onChanged(); + } + if (other.getIsStar() != false) { + setIsStar(other.getIsStar()); + } + 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + private boolean isStar_ ; + /** + * bool isStar = 2; + * @return The isStar. + */ + @java.lang.Override + public boolean getIsStar() { + return isStar_; + } + /** + * bool isStar = 2; + * @param value The isStar to set. + * @return This builder for chaining. + */ + public Builder setIsStar(boolean value) { + + isStar_ = value; + onChanged(); + return this; + } + /** + * bool isStar = 2; + * @return This builder for chaining. + */ + public Builder clearIsStar() { + + isStar_ = false; + 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:ChangeMailStarNotify) + } + + // @@protoc_insertion_point(class_scope:ChangeMailStarNotify) + private static final emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify(); + } + + public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChangeMailStarNotify parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ChangeMailStarNotify(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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_ChangeMailStarNotify_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_ChangeMailStarNotify_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\032ChangeMailStarNotify.proto\":\n\024ChangeMa" + + "ilStarNotify\022\022\n\nmailIdList\030\001 \003(\r\022\016\n\006isSt" + + "ar\030\002 \001(\010B\033\n\031emu.grasscutter.net.protob\006p" + + "roto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_ChangeMailStarNotify_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_ChangeMailStarNotify_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_ChangeMailStarNotify_descriptor, + new java.lang.String[] { "MailIdList", "IsStar", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java new file mode 100644 index 000000000..1355d5457 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java @@ -0,0 +1,665 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: DelMailReq.proto + +package emu.grasscutter.net.proto; + +public final class DelMailReqOuterClass { + private DelMailReqOuterClass() {} + 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 DelMailReqOrBuilder extends + // @@protoc_insertion_point(interface_extends:DelMailReq) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + } + /** + * Protobuf type {@code DelMailReq} + */ + public static final class DelMailReq extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:DelMailReq) + DelMailReqOrBuilder { + private static final long serialVersionUID = 0L; + // Use DelMailReq.newBuilder() to construct. + private DelMailReq(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private DelMailReq() { + mailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new DelMailReq(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private DelMailReq( + 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 8: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 10: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.class, emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.Builder.class); + } + + public static final int MAILIDLIST_FIELD_NUMBER = 1; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -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 (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + 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.DelMailReqOuterClass.DelMailReq)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq other = (emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq) obj; + + if (!getMailIdListList() + .equals(other.getMailIdListList())) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code DelMailReq} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:DelMailReq) + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReqOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.class, emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.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(); + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq getDefaultInstanceForType() { + return emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq build() { + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq buildPartial() { + emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq result = new emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + 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.DelMailReqOuterClass.DelMailReq) { + return mergeFrom((emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq other) { + if (other == emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.getDefaultInstance()) return this; + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + 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.DelMailReqOuterClass.DelMailReq parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + 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:DelMailReq) + } + + // @@protoc_insertion_point(class_scope:DelMailReq) + private static final emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq(); + } + + public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DelMailReq parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new DelMailReq(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.DelMailReqOuterClass.DelMailReq getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_DelMailReq_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_DelMailReq_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\020DelMailReq.proto\" \n\nDelMailReq\022\022\n\nmail" + + "IdList\030\001 \003(\rB\033\n\031emu.grasscutter.net.prot" + + "ob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_DelMailReq_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_DelMailReq_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_DelMailReq_descriptor, + new java.lang.String[] { "MailIdList", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java new file mode 100644 index 000000000..a9f3c03de --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java @@ -0,0 +1,735 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: DelMailRsp.proto + +package emu.grasscutter.net.proto; + +public final class DelMailRspOuterClass { + private DelMailRspOuterClass() {} + 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 DelMailRspOrBuilder extends + // @@protoc_insertion_point(interface_extends:DelMailRsp) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 retcode = 1; + * @return The retcode. + */ + int getRetcode(); + + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + } + /** + * Protobuf type {@code DelMailRsp} + */ + public static final class DelMailRsp extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:DelMailRsp) + DelMailRspOrBuilder { + private static final long serialVersionUID = 0L; + // Use DelMailRsp.newBuilder() to construct. + private DelMailRsp(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private DelMailRsp() { + mailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new DelMailRsp(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private DelMailRsp( + 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 8: { + + retcode_ = input.readInt32(); + break; + } + case 16: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 18: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.class, emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.Builder.class); + } + + public static final int RETCODE_FIELD_NUMBER = 1; + private int retcode_; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + + public static final int MAILIDLIST_FIELD_NUMBER = 2; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -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 (retcode_ != 0) { + output.writeInt32(1, retcode_); + } + if (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(18); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (retcode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, retcode_); + } + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + 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.DelMailRspOuterClass.DelMailRsp)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp other = (emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp) obj; + + if (getRetcode() + != other.getRetcode()) return false; + if (!getMailIdListList() + .equals(other.getMailIdListList())) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code DelMailRsp} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:DelMailRsp) + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRspOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.class, emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.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; + + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp getDefaultInstanceForType() { + return emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp build() { + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp buildPartial() { + emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp result = new emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp(this); + int from_bitField0_ = bitField0_; + result.retcode_ = retcode_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + 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.DelMailRspOuterClass.DelMailRsp) { + return mergeFrom((emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp other) { + if (other == emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.getDefaultInstance()) return this; + if (other.getRetcode() != 0) { + setRetcode(other.getRetcode()); + } + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + 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.DelMailRspOuterClass.DelMailRsp parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int retcode_ ; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + /** + * int32 retcode = 1; + * @param value The retcode to set. + * @return This builder for chaining. + */ + public Builder setRetcode(int value) { + + retcode_ = value; + onChanged(); + return this; + } + /** + * int32 retcode = 1; + * @return This builder for chaining. + */ + public Builder clearRetcode() { + + retcode_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + 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:DelMailRsp) + } + + // @@protoc_insertion_point(class_scope:DelMailRsp) + private static final emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp(); + } + + public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DelMailRsp parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new DelMailRsp(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.DelMailRspOuterClass.DelMailRsp getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_DelMailRsp_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_DelMailRsp_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\020DelMailRsp.proto\"1\n\nDelMailRsp\022\017\n\007retc" + + "ode\030\001 \001(\005\022\022\n\nmailIdList\030\002 \003(\rB\033\n\031emu.gra" + + "sscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_DelMailRsp_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_DelMailRsp_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_DelMailRsp_descriptor, + new java.lang.String[] { "Retcode", "MailIdList", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java b/src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java new file mode 100644 index 000000000..f583bf608 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java @@ -0,0 +1,749 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: EquipParam.proto + +package emu.grasscutter.net.proto; + +public final class EquipParamOuterClass { + private EquipParamOuterClass() {} + 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 EquipParamOrBuilder extends + // @@protoc_insertion_point(interface_extends:EquipParam) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 itemId = 1; + * @return The itemId. + */ + int getItemId(); + + /** + * uint32 itemNum = 2; + * @return The itemNum. + */ + int getItemNum(); + + /** + * uint32 itemLevel = 3; + * @return The itemLevel. + */ + int getItemLevel(); + + /** + * uint32 PromoteLevel = 4; + * @return The promoteLevel. + */ + int getPromoteLevel(); + } + /** + * Protobuf type {@code EquipParam} + */ + public static final class EquipParam extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:EquipParam) + EquipParamOrBuilder { + private static final long serialVersionUID = 0L; + // Use EquipParam.newBuilder() to construct. + private EquipParam(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private EquipParam() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new EquipParam(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private EquipParam( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + itemId_ = input.readUInt32(); + break; + } + case 16: { + + itemNum_ = input.readUInt32(); + break; + } + case 24: { + + itemLevel_ = input.readUInt32(); + break; + } + case 32: { + + promoteLevel_ = input.readUInt32(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().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.EquipParamOuterClass.internal_static_EquipParam_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.class, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder.class); + } + + public static final int ITEMID_FIELD_NUMBER = 1; + private int itemId_; + /** + * uint32 itemId = 1; + * @return The itemId. + */ + @java.lang.Override + public int getItemId() { + return itemId_; + } + + public static final int ITEMNUM_FIELD_NUMBER = 2; + private int itemNum_; + /** + * uint32 itemNum = 2; + * @return The itemNum. + */ + @java.lang.Override + public int getItemNum() { + return itemNum_; + } + + public static final int ITEMLEVEL_FIELD_NUMBER = 3; + private int itemLevel_; + /** + * uint32 itemLevel = 3; + * @return The itemLevel. + */ + @java.lang.Override + public int getItemLevel() { + return itemLevel_; + } + + public static final int PROMOTELEVEL_FIELD_NUMBER = 4; + private int promoteLevel_; + /** + * uint32 PromoteLevel = 4; + * @return The promoteLevel. + */ + @java.lang.Override + public int getPromoteLevel() { + return promoteLevel_; + } + + 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 (itemId_ != 0) { + output.writeUInt32(1, itemId_); + } + if (itemNum_ != 0) { + output.writeUInt32(2, itemNum_); + } + if (itemLevel_ != 0) { + output.writeUInt32(3, itemLevel_); + } + if (promoteLevel_ != 0) { + output.writeUInt32(4, promoteLevel_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (itemId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, itemId_); + } + if (itemNum_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(2, itemNum_); + } + if (itemLevel_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(3, itemLevel_); + } + if (promoteLevel_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(4, promoteLevel_); + } + 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.EquipParamOuterClass.EquipParam)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam other = (emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam) obj; + + if (getItemId() + != other.getItemId()) return false; + if (getItemNum() + != other.getItemNum()) return false; + if (getItemLevel() + != other.getItemLevel()) return false; + if (getPromoteLevel() + != other.getPromoteLevel()) 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) + ITEMID_FIELD_NUMBER; + hash = (53 * hash) + getItemId(); + hash = (37 * hash) + ITEMNUM_FIELD_NUMBER; + hash = (53 * hash) + getItemNum(); + hash = (37 * hash) + ITEMLEVEL_FIELD_NUMBER; + hash = (53 * hash) + getItemLevel(); + hash = (37 * hash) + PROMOTELEVEL_FIELD_NUMBER; + hash = (53 * hash) + getPromoteLevel(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code EquipParam} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:EquipParam) + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.class, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.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(); + itemId_ = 0; + + itemNum_ = 0; + + itemLevel_ = 0; + + promoteLevel_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getDefaultInstanceForType() { + return emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam build() { + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam buildPartial() { + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam result = new emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam(this); + result.itemId_ = itemId_; + result.itemNum_ = itemNum_; + result.itemLevel_ = itemLevel_; + result.promoteLevel_ = promoteLevel_; + 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.EquipParamOuterClass.EquipParam) { + return mergeFrom((emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam other) { + if (other == emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance()) return this; + if (other.getItemId() != 0) { + setItemId(other.getItemId()); + } + if (other.getItemNum() != 0) { + setItemNum(other.getItemNum()); + } + if (other.getItemLevel() != 0) { + setItemLevel(other.getItemLevel()); + } + if (other.getPromoteLevel() != 0) { + setPromoteLevel(other.getPromoteLevel()); + } + 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.EquipParamOuterClass.EquipParam parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int itemId_ ; + /** + * uint32 itemId = 1; + * @return The itemId. + */ + @java.lang.Override + public int getItemId() { + return itemId_; + } + /** + * uint32 itemId = 1; + * @param value The itemId to set. + * @return This builder for chaining. + */ + public Builder setItemId(int value) { + + itemId_ = value; + onChanged(); + return this; + } + /** + * uint32 itemId = 1; + * @return This builder for chaining. + */ + public Builder clearItemId() { + + itemId_ = 0; + onChanged(); + return this; + } + + private int itemNum_ ; + /** + * uint32 itemNum = 2; + * @return The itemNum. + */ + @java.lang.Override + public int getItemNum() { + return itemNum_; + } + /** + * uint32 itemNum = 2; + * @param value The itemNum to set. + * @return This builder for chaining. + */ + public Builder setItemNum(int value) { + + itemNum_ = value; + onChanged(); + return this; + } + /** + * uint32 itemNum = 2; + * @return This builder for chaining. + */ + public Builder clearItemNum() { + + itemNum_ = 0; + onChanged(); + return this; + } + + private int itemLevel_ ; + /** + * uint32 itemLevel = 3; + * @return The itemLevel. + */ + @java.lang.Override + public int getItemLevel() { + return itemLevel_; + } + /** + * uint32 itemLevel = 3; + * @param value The itemLevel to set. + * @return This builder for chaining. + */ + public Builder setItemLevel(int value) { + + itemLevel_ = value; + onChanged(); + return this; + } + /** + * uint32 itemLevel = 3; + * @return This builder for chaining. + */ + public Builder clearItemLevel() { + + itemLevel_ = 0; + onChanged(); + return this; + } + + private int promoteLevel_ ; + /** + * uint32 PromoteLevel = 4; + * @return The promoteLevel. + */ + @java.lang.Override + public int getPromoteLevel() { + return promoteLevel_; + } + /** + * uint32 PromoteLevel = 4; + * @param value The promoteLevel to set. + * @return This builder for chaining. + */ + public Builder setPromoteLevel(int value) { + + promoteLevel_ = value; + onChanged(); + return this; + } + /** + * uint32 PromoteLevel = 4; + * @return This builder for chaining. + */ + public Builder clearPromoteLevel() { + + promoteLevel_ = 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:EquipParam) + } + + // @@protoc_insertion_point(class_scope:EquipParam) + private static final emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam(); + } + + public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public EquipParam parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new EquipParam(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.EquipParamOuterClass.EquipParam getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_EquipParam_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_EquipParam_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\020EquipParam.proto\"V\n\nEquipParam\022\016\n\006item" + + "Id\030\001 \001(\r\022\017\n\007itemNum\030\002 \001(\r\022\021\n\titemLevel\030\003" + + " \001(\r\022\024\n\014PromoteLevel\030\004 \001(\rB\033\n\031emu.grassc" + + "utter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_EquipParam_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_EquipParam_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_EquipParam_descriptor, + new java.lang.String[] { "ItemId", "ItemNum", "ItemLevel", "PromoteLevel", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java b/src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java new file mode 100644 index 000000000..c7306c5cc --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java @@ -0,0 +1,163 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: FetterState.proto + +package emu.grasscutter.net.proto; + +public final class FetterStateOuterClass { + private FetterStateOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code FetterState} + */ + public enum FetterState + implements com.google.protobuf.ProtocolMessageEnum { + /** + * NONE = 0; + */ + NONE(0), + /** + * NOT_OPEN = 1; + */ + NOT_OPEN(1), + /** + * OPEN = 2; + */ + OPEN(2), + /** + * FINISH = 3; + */ + FINISH(3), + UNRECOGNIZED(-1), + ; + + /** + * NONE = 0; + */ + public static final int NONE_VALUE = 0; + /** + * NOT_OPEN = 1; + */ + public static final int NOT_OPEN_VALUE = 1; + /** + * OPEN = 2; + */ + public static final int OPEN_VALUE = 2; + /** + * FINISH = 3; + */ + public static final int FINISH_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static FetterState valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static FetterState forNumber(int value) { + switch (value) { + case 0: return NONE; + case 1: return NOT_OPEN; + case 2: return OPEN; + case 3: return FINISH; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + FetterState> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public FetterState findValueByNumber(int number) { + return FetterState.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return emu.grasscutter.net.proto.FetterStateOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final FetterState[] VALUES = values(); + + public static FetterState valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private FetterState(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:FetterState) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\021FetterState.proto*;\n\013FetterState\022\010\n\004NO" + + "NE\020\000\022\014\n\010NOT_OPEN\020\001\022\010\n\004OPEN\020\002\022\n\n\006FINISH\020\003" + + "B\033\n\031emu.grasscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java new file mode 100644 index 000000000..7be5e757e --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java @@ -0,0 +1,539 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GetAllMailReq.proto + +package emu.grasscutter.net.proto; + +public final class GetAllMailReqOuterClass { + private GetAllMailReqOuterClass() {} + 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 GetAllMailReqOrBuilder extends + // @@protoc_insertion_point(interface_extends:GetAllMailReq) + com.google.protobuf.MessageOrBuilder { + + /** + * bool isGiftMail = 1; + * @return The isGiftMail. + */ + boolean getIsGiftMail(); + } + /** + * Protobuf type {@code GetAllMailReq} + */ + public static final class GetAllMailReq extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GetAllMailReq) + GetAllMailReqOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetAllMailReq.newBuilder() to construct. + private GetAllMailReq(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GetAllMailReq() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetAllMailReq(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetAllMailReq( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + isGiftMail_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().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.GetAllMailReqOuterClass.internal_static_GetAllMailReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.class, emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.Builder.class); + } + + public static final int ISGIFTMAIL_FIELD_NUMBER = 1; + private boolean isGiftMail_; + /** + * bool isGiftMail = 1; + * @return The isGiftMail. + */ + @java.lang.Override + public boolean getIsGiftMail() { + return isGiftMail_; + } + + 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 (isGiftMail_ != false) { + output.writeBool(1, isGiftMail_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (isGiftMail_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, isGiftMail_); + } + 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.GetAllMailReqOuterClass.GetAllMailReq)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq other = (emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq) obj; + + if (getIsGiftMail() + != other.getIsGiftMail()) 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) + ISGIFTMAIL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsGiftMail()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GetAllMailReq} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GetAllMailReq) + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReqOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.class, emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.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(); + isGiftMail_ = false; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq getDefaultInstanceForType() { + return emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq build() { + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq buildPartial() { + emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq result = new emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq(this); + result.isGiftMail_ = isGiftMail_; + 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.GetAllMailReqOuterClass.GetAllMailReq) { + return mergeFrom((emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq other) { + if (other == emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.getDefaultInstance()) return this; + if (other.getIsGiftMail() != false) { + setIsGiftMail(other.getIsGiftMail()); + } + 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.GetAllMailReqOuterClass.GetAllMailReq parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private boolean isGiftMail_ ; + /** + * bool isGiftMail = 1; + * @return The isGiftMail. + */ + @java.lang.Override + public boolean getIsGiftMail() { + return isGiftMail_; + } + /** + * bool isGiftMail = 1; + * @param value The isGiftMail to set. + * @return This builder for chaining. + */ + public Builder setIsGiftMail(boolean value) { + + isGiftMail_ = value; + onChanged(); + return this; + } + /** + * bool isGiftMail = 1; + * @return This builder for chaining. + */ + public Builder clearIsGiftMail() { + + isGiftMail_ = false; + 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:GetAllMailReq) + } + + // @@protoc_insertion_point(class_scope:GetAllMailReq) + private static final emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq(); + } + + public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetAllMailReq parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GetAllMailReq(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.GetAllMailReqOuterClass.GetAllMailReq getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GetAllMailReq_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GetAllMailReq_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\023GetAllMailReq.proto\"#\n\rGetAllMailReq\022\022" + + "\n\nisGiftMail\030\001 \001(\010B\033\n\031emu.grasscutter.ne" + + "t.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_GetAllMailReq_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GetAllMailReq_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GetAllMailReq_descriptor, + new java.lang.String[] { "IsGiftMail", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java new file mode 100644 index 000000000..244235538 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java @@ -0,0 +1,987 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GetAllMailRsp.proto + +package emu.grasscutter.net.proto; + +public final class GetAllMailRspOuterClass { + private GetAllMailRspOuterClass() {} + 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 GetAllMailRspOrBuilder extends + // @@protoc_insertion_point(interface_extends:GetAllMailRsp) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 retcode = 1; + * @return The retcode. + */ + int getRetcode(); + + /** + * repeated .MailData mailList = 2; + */ + java.util.List + getMailListList(); + /** + * repeated .MailData mailList = 2; + */ + emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index); + /** + * repeated .MailData mailList = 2; + */ + int getMailListCount(); + /** + * repeated .MailData mailList = 2; + */ + java.util.List + getMailListOrBuilderList(); + /** + * repeated .MailData mailList = 2; + */ + emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index); + + /** + * bool isTruncated = 3; + * @return The isTruncated. + */ + boolean getIsTruncated(); + } + /** + * Protobuf type {@code GetAllMailRsp} + */ + public static final class GetAllMailRsp extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GetAllMailRsp) + GetAllMailRspOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetAllMailRsp.newBuilder() to construct. + private GetAllMailRsp(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GetAllMailRsp() { + mailList_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetAllMailRsp(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetAllMailRsp( + 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 8: { + + retcode_ = input.readInt32(); + break; + } + case 18: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailList_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + mailList_.add( + input.readMessage(emu.grasscutter.net.proto.MailDataOuterClass.MailData.parser(), extensionRegistry)); + break; + } + case 24: { + + isTruncated_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailList_ = java.util.Collections.unmodifiableList(mailList_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.class, emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.Builder.class); + } + + public static final int RETCODE_FIELD_NUMBER = 1; + private int retcode_; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + + public static final int MAILLIST_FIELD_NUMBER = 2; + private java.util.List mailList_; + /** + * repeated .MailData mailList = 2; + */ + @java.lang.Override + public java.util.List getMailListList() { + return mailList_; + } + /** + * repeated .MailData mailList = 2; + */ + @java.lang.Override + public java.util.List + getMailListOrBuilderList() { + return mailList_; + } + /** + * repeated .MailData mailList = 2; + */ + @java.lang.Override + public int getMailListCount() { + return mailList_.size(); + } + /** + * repeated .MailData mailList = 2; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { + return mailList_.get(index); + } + /** + * repeated .MailData mailList = 2; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index) { + return mailList_.get(index); + } + + public static final int ISTRUNCATED_FIELD_NUMBER = 3; + private boolean isTruncated_; + /** + * bool isTruncated = 3; + * @return The isTruncated. + */ + @java.lang.Override + public boolean getIsTruncated() { + return isTruncated_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (retcode_ != 0) { + output.writeInt32(1, retcode_); + } + for (int i = 0; i < mailList_.size(); i++) { + output.writeMessage(2, mailList_.get(i)); + } + if (isTruncated_ != false) { + output.writeBool(3, isTruncated_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (retcode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, retcode_); + } + for (int i = 0; i < mailList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, mailList_.get(i)); + } + if (isTruncated_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(3, isTruncated_); + } + 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.GetAllMailRspOuterClass.GetAllMailRsp)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp other = (emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp) obj; + + if (getRetcode() + != other.getRetcode()) return false; + if (!getMailListList() + .equals(other.getMailListList())) return false; + if (getIsTruncated() + != other.getIsTruncated()) 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(); + if (getMailListCount() > 0) { + hash = (37 * hash) + MAILLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailListList().hashCode(); + } + hash = (37 * hash) + ISTRUNCATED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsTruncated()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GetAllMailRsp} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GetAllMailRsp) + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRspOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.class, emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getMailListFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + retcode_ = 0; + + if (mailListBuilder_ == null) { + mailList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + mailListBuilder_.clear(); + } + isTruncated_ = false; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp getDefaultInstanceForType() { + return emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp build() { + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp buildPartial() { + emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp result = new emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp(this); + int from_bitField0_ = bitField0_; + result.retcode_ = retcode_; + if (mailListBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + mailList_ = java.util.Collections.unmodifiableList(mailList_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailList_ = mailList_; + } else { + result.mailList_ = mailListBuilder_.build(); + } + result.isTruncated_ = isTruncated_; + 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.GetAllMailRspOuterClass.GetAllMailRsp) { + return mergeFrom((emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp other) { + if (other == emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.getDefaultInstance()) return this; + if (other.getRetcode() != 0) { + setRetcode(other.getRetcode()); + } + if (mailListBuilder_ == null) { + if (!other.mailList_.isEmpty()) { + if (mailList_.isEmpty()) { + mailList_ = other.mailList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailListIsMutable(); + mailList_.addAll(other.mailList_); + } + onChanged(); + } + } else { + if (!other.mailList_.isEmpty()) { + if (mailListBuilder_.isEmpty()) { + mailListBuilder_.dispose(); + mailListBuilder_ = null; + mailList_ = other.mailList_; + bitField0_ = (bitField0_ & ~0x00000001); + mailListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getMailListFieldBuilder() : null; + } else { + mailListBuilder_.addAllMessages(other.mailList_); + } + } + } + if (other.getIsTruncated() != false) { + setIsTruncated(other.getIsTruncated()); + } + 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.GetAllMailRspOuterClass.GetAllMailRsp parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int retcode_ ; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + /** + * int32 retcode = 1; + * @param value The retcode to set. + * @return This builder for chaining. + */ + public Builder setRetcode(int value) { + + retcode_ = value; + onChanged(); + return this; + } + /** + * int32 retcode = 1; + * @return This builder for chaining. + */ + public Builder clearRetcode() { + + retcode_ = 0; + onChanged(); + return this; + } + + private java.util.List mailList_ = + java.util.Collections.emptyList(); + private void ensureMailListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailList_ = new java.util.ArrayList(mailList_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> mailListBuilder_; + + /** + * repeated .MailData mailList = 2; + */ + public java.util.List getMailListList() { + if (mailListBuilder_ == null) { + return java.util.Collections.unmodifiableList(mailList_); + } else { + return mailListBuilder_.getMessageList(); + } + } + /** + * repeated .MailData mailList = 2; + */ + public int getMailListCount() { + if (mailListBuilder_ == null) { + return mailList_.size(); + } else { + return mailListBuilder_.getCount(); + } + } + /** + * repeated .MailData mailList = 2; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { + if (mailListBuilder_ == null) { + return mailList_.get(index); + } else { + return mailListBuilder_.getMessage(index); + } + } + /** + * repeated .MailData mailList = 2; + */ + public Builder setMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.set(index, value); + onChanged(); + } else { + mailListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder setMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.set(index, builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder addMailList(emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.add(value); + onChanged(); + } else { + mailListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder addMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.add(index, value); + onChanged(); + } else { + mailListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder addMailList( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.add(builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder addMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.add(index, builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder addAllMailList( + java.lang.Iterable values) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailList_); + onChanged(); + } else { + mailListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder clearMailList() { + if (mailListBuilder_ == null) { + mailList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + mailListBuilder_.clear(); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public Builder removeMailList(int index) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.remove(index); + onChanged(); + } else { + mailListBuilder_.remove(index); + } + return this; + } + /** + * repeated .MailData mailList = 2; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder getMailListBuilder( + int index) { + return getMailListFieldBuilder().getBuilder(index); + } + /** + * repeated .MailData mailList = 2; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index) { + if (mailListBuilder_ == null) { + return mailList_.get(index); } else { + return mailListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .MailData mailList = 2; + */ + public java.util.List + getMailListOrBuilderList() { + if (mailListBuilder_ != null) { + return mailListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(mailList_); + } + } + /** + * repeated .MailData mailList = 2; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder() { + return getMailListFieldBuilder().addBuilder( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); + } + /** + * repeated .MailData mailList = 2; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder( + int index) { + return getMailListFieldBuilder().addBuilder( + index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); + } + /** + * repeated .MailData mailList = 2; + */ + public java.util.List + getMailListBuilderList() { + return getMailListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> + getMailListFieldBuilder() { + if (mailListBuilder_ == null) { + mailListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder>( + mailList_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + mailList_ = null; + } + return mailListBuilder_; + } + + private boolean isTruncated_ ; + /** + * bool isTruncated = 3; + * @return The isTruncated. + */ + @java.lang.Override + public boolean getIsTruncated() { + return isTruncated_; + } + /** + * bool isTruncated = 3; + * @param value The isTruncated to set. + * @return This builder for chaining. + */ + public Builder setIsTruncated(boolean value) { + + isTruncated_ = value; + onChanged(); + return this; + } + /** + * bool isTruncated = 3; + * @return This builder for chaining. + */ + public Builder clearIsTruncated() { + + isTruncated_ = false; + 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:GetAllMailRsp) + } + + // @@protoc_insertion_point(class_scope:GetAllMailRsp) + private static final emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp(); + } + + public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetAllMailRsp parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GetAllMailRsp(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.GetAllMailRspOuterClass.GetAllMailRsp getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GetAllMailRsp_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GetAllMailRsp_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\023GetAllMailRsp.proto\032\016MailData.proto\"R\n" + + "\rGetAllMailRsp\022\017\n\007retcode\030\001 \001(\005\022\033\n\010mailL" + + "ist\030\002 \003(\0132\t.MailData\022\023\n\013isTruncated\030\003 \001(" + + "\010B\033\n\031emu.grasscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(), + }); + internal_static_GetAllMailRsp_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GetAllMailRsp_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GetAllMailRsp_descriptor, + new java.lang.String[] { "Retcode", "MailList", "IsTruncated", }); + emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java new file mode 100644 index 000000000..4610e8ba4 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java @@ -0,0 +1,665 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GetMailItemReq.proto + +package emu.grasscutter.net.proto; + +public final class GetMailItemReqOuterClass { + private GetMailItemReqOuterClass() {} + 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 GetMailItemReqOrBuilder extends + // @@protoc_insertion_point(interface_extends:GetMailItemReq) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + } + /** + * Protobuf type {@code GetMailItemReq} + */ + public static final class GetMailItemReq extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GetMailItemReq) + GetMailItemReqOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetMailItemReq.newBuilder() to construct. + private GetMailItemReq(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GetMailItemReq() { + mailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetMailItemReq(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetMailItemReq( + 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 8: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 10: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.class, emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.Builder.class); + } + + public static final int MAILIDLIST_FIELD_NUMBER = 1; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -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 (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + 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.GetMailItemReqOuterClass.GetMailItemReq)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq other = (emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq) obj; + + if (!getMailIdListList() + .equals(other.getMailIdListList())) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GetMailItemReq} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GetMailItemReq) + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReqOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.class, emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.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(); + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq getDefaultInstanceForType() { + return emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq build() { + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq buildPartial() { + emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq result = new emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + 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.GetMailItemReqOuterClass.GetMailItemReq) { + return mergeFrom((emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq other) { + if (other == emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.getDefaultInstance()) return this; + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + 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.GetMailItemReqOuterClass.GetMailItemReq parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + 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:GetMailItemReq) + } + + // @@protoc_insertion_point(class_scope:GetMailItemReq) + private static final emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq(); + } + + public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetMailItemReq parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GetMailItemReq(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.GetMailItemReqOuterClass.GetMailItemReq getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GetMailItemReq_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GetMailItemReq_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\024GetMailItemReq.proto\"$\n\016GetMailItemReq" + + "\022\022\n\nmailIdList\030\001 \003(\rB\033\n\031emu.grasscutter." + + "net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_GetMailItemReq_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GetMailItemReq_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GetMailItemReq_descriptor, + new java.lang.String[] { "MailIdList", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java new file mode 100644 index 000000000..83a29c529 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java @@ -0,0 +1,1111 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GetMailItemRsp.proto + +package emu.grasscutter.net.proto; + +public final class GetMailItemRspOuterClass { + private GetMailItemRspOuterClass() {} + 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 GetMailItemRspOrBuilder extends + // @@protoc_insertion_point(interface_extends:GetMailItemRsp) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 retcode = 1; + * @return The retcode. + */ + int getRetcode(); + + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + + /** + * repeated .EquipParam itemList = 3; + */ + java.util.List + getItemListList(); + /** + * repeated .EquipParam itemList = 3; + */ + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getItemList(int index); + /** + * repeated .EquipParam itemList = 3; + */ + int getItemListCount(); + /** + * repeated .EquipParam itemList = 3; + */ + java.util.List + getItemListOrBuilderList(); + /** + * repeated .EquipParam itemList = 3; + */ + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder getItemListOrBuilder( + int index); + } + /** + * Protobuf type {@code GetMailItemRsp} + */ + public static final class GetMailItemRsp extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GetMailItemRsp) + GetMailItemRspOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetMailItemRsp.newBuilder() to construct. + private GetMailItemRsp(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GetMailItemRsp() { + mailIdList_ = emptyIntList(); + itemList_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetMailItemRsp(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetMailItemRsp( + 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 8: { + + retcode_ = input.readInt32(); + break; + } + case 16: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 18: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + case 26: { + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + itemList_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + itemList_.add( + input.readMessage(emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.parser(), extensionRegistry)); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + if (((mutable_bitField0_ & 0x00000002) != 0)) { + itemList_ = java.util.Collections.unmodifiableList(itemList_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.class, emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.Builder.class); + } + + public static final int RETCODE_FIELD_NUMBER = 1; + private int retcode_; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + + public static final int MAILIDLIST_FIELD_NUMBER = 2; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -1; + + public static final int ITEMLIST_FIELD_NUMBER = 3; + private java.util.List itemList_; + /** + * repeated .EquipParam itemList = 3; + */ + @java.lang.Override + public java.util.List getItemListList() { + return itemList_; + } + /** + * repeated .EquipParam itemList = 3; + */ + @java.lang.Override + public java.util.List + getItemListOrBuilderList() { + return itemList_; + } + /** + * repeated .EquipParam itemList = 3; + */ + @java.lang.Override + public int getItemListCount() { + return itemList_.size(); + } + /** + * repeated .EquipParam itemList = 3; + */ + @java.lang.Override + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getItemList(int index) { + return itemList_.get(index); + } + /** + * repeated .EquipParam itemList = 3; + */ + @java.lang.Override + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder getItemListOrBuilder( + int index) { + return itemList_.get(index); + } + + 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 (retcode_ != 0) { + output.writeInt32(1, retcode_); + } + if (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(18); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + for (int i = 0; i < itemList_.size(); i++) { + output.writeMessage(3, itemList_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (retcode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, retcode_); + } + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + for (int i = 0; i < itemList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, itemList_.get(i)); + } + 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.GetMailItemRspOuterClass.GetMailItemRsp)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp other = (emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp) obj; + + if (getRetcode() + != other.getRetcode()) return false; + if (!getMailIdListList() + .equals(other.getMailIdListList())) return false; + if (!getItemListList() + .equals(other.getItemListList())) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + if (getItemListCount() > 0) { + hash = (37 * hash) + ITEMLIST_FIELD_NUMBER; + hash = (53 * hash) + getItemListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GetMailItemRsp} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GetMailItemRsp) + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRspOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.class, emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getItemListFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + retcode_ = 0; + + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + if (itemListBuilder_ == null) { + itemList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + } else { + itemListBuilder_.clear(); + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp getDefaultInstanceForType() { + return emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp build() { + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp buildPartial() { + emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp result = new emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp(this); + int from_bitField0_ = bitField0_; + result.retcode_ = retcode_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + if (itemListBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + itemList_ = java.util.Collections.unmodifiableList(itemList_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.itemList_ = itemList_; + } else { + result.itemList_ = itemListBuilder_.build(); + } + 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.GetMailItemRspOuterClass.GetMailItemRsp) { + return mergeFrom((emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp other) { + if (other == emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.getDefaultInstance()) return this; + if (other.getRetcode() != 0) { + setRetcode(other.getRetcode()); + } + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + onChanged(); + } + if (itemListBuilder_ == null) { + if (!other.itemList_.isEmpty()) { + if (itemList_.isEmpty()) { + itemList_ = other.itemList_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureItemListIsMutable(); + itemList_.addAll(other.itemList_); + } + onChanged(); + } + } else { + if (!other.itemList_.isEmpty()) { + if (itemListBuilder_.isEmpty()) { + itemListBuilder_.dispose(); + itemListBuilder_ = null; + itemList_ = other.itemList_; + bitField0_ = (bitField0_ & ~0x00000002); + itemListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getItemListFieldBuilder() : null; + } else { + itemListBuilder_.addAllMessages(other.itemList_); + } + } + } + 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.GetMailItemRspOuterClass.GetMailItemRsp parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int retcode_ ; + /** + * int32 retcode = 1; + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + /** + * int32 retcode = 1; + * @param value The retcode to set. + * @return This builder for chaining. + */ + public Builder setRetcode(int value) { + + retcode_ = value; + onChanged(); + return this; + } + /** + * int32 retcode = 1; + * @return This builder for chaining. + */ + public Builder clearRetcode() { + + retcode_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 2; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 2; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 2; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 2; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + private java.util.List itemList_ = + java.util.Collections.emptyList(); + private void ensureItemListIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + itemList_ = new java.util.ArrayList(itemList_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder> itemListBuilder_; + + /** + * repeated .EquipParam itemList = 3; + */ + public java.util.List getItemListList() { + if (itemListBuilder_ == null) { + return java.util.Collections.unmodifiableList(itemList_); + } else { + return itemListBuilder_.getMessageList(); + } + } + /** + * repeated .EquipParam itemList = 3; + */ + public int getItemListCount() { + if (itemListBuilder_ == null) { + return itemList_.size(); + } else { + return itemListBuilder_.getCount(); + } + } + /** + * repeated .EquipParam itemList = 3; + */ + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getItemList(int index) { + if (itemListBuilder_ == null) { + return itemList_.get(index); + } else { + return itemListBuilder_.getMessage(index); + } + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder setItemList( + int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.set(index, value); + onChanged(); + } else { + itemListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder setItemList( + int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.set(index, builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder addItemList(emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.add(value); + onChanged(); + } else { + itemListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder addItemList( + int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.add(index, value); + onChanged(); + } else { + itemListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder addItemList( + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.add(builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder addItemList( + int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.add(index, builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder addAllItemList( + java.lang.Iterable values) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, itemList_); + onChanged(); + } else { + itemListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder clearItemList() { + if (itemListBuilder_ == null) { + itemList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + itemListBuilder_.clear(); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public Builder removeItemList(int index) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.remove(index); + onChanged(); + } else { + itemListBuilder_.remove(index); + } + return this; + } + /** + * repeated .EquipParam itemList = 3; + */ + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder getItemListBuilder( + int index) { + return getItemListFieldBuilder().getBuilder(index); + } + /** + * repeated .EquipParam itemList = 3; + */ + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder getItemListOrBuilder( + int index) { + if (itemListBuilder_ == null) { + return itemList_.get(index); } else { + return itemListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .EquipParam itemList = 3; + */ + public java.util.List + getItemListOrBuilderList() { + if (itemListBuilder_ != null) { + return itemListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(itemList_); + } + } + /** + * repeated .EquipParam itemList = 3; + */ + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder addItemListBuilder() { + return getItemListFieldBuilder().addBuilder( + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance()); + } + /** + * repeated .EquipParam itemList = 3; + */ + public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder addItemListBuilder( + int index) { + return getItemListFieldBuilder().addBuilder( + index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance()); + } + /** + * repeated .EquipParam itemList = 3; + */ + public java.util.List + getItemListBuilderList() { + return getItemListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder> + getItemListFieldBuilder() { + if (itemListBuilder_ == null) { + itemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder>( + itemList_, + ((bitField0_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + itemList_ = null; + } + return itemListBuilder_; + } + @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:GetMailItemRsp) + } + + // @@protoc_insertion_point(class_scope:GetMailItemRsp) + private static final emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp(); + } + + public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetMailItemRsp parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GetMailItemRsp(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.GetMailItemRspOuterClass.GetMailItemRsp getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GetMailItemRsp_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GetMailItemRsp_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\024GetMailItemRsp.proto\032\020EquipParam.proto" + + "\"T\n\016GetMailItemRsp\022\017\n\007retcode\030\001 \001(\005\022\022\n\nm" + + "ailIdList\030\002 \003(\r\022\035\n\010itemList\030\003 \003(\0132\013.Equi" + + "pParamB\033\n\031emu.grasscutter.net.protob\006pro" + + "to3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + emu.grasscutter.net.proto.EquipParamOuterClass.getDescriptor(), + }); + internal_static_GetMailItemRsp_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GetMailItemRsp_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GetMailItemRsp_descriptor, + new java.lang.String[] { "Retcode", "MailIdList", "ItemList", }); + emu.grasscutter.net.proto.EquipParamOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java new file mode 100644 index 000000000..020cc0e7c --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java @@ -0,0 +1,1040 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MailChangeNotify.proto + +package emu.grasscutter.net.proto; + +public final class MailChangeNotifyOuterClass { + private MailChangeNotifyOuterClass() {} + 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 MailChangeNotifyOrBuilder extends + // @@protoc_insertion_point(interface_extends:MailChangeNotify) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .MailData mailList = 1; + */ + java.util.List + getMailListList(); + /** + * repeated .MailData mailList = 1; + */ + emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index); + /** + * repeated .MailData mailList = 1; + */ + int getMailListCount(); + /** + * repeated .MailData mailList = 1; + */ + java.util.List + getMailListOrBuilderList(); + /** + * repeated .MailData mailList = 1; + */ + emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index); + + /** + * repeated uint32 delMailIdList = 2; + * @return A list containing the delMailIdList. + */ + java.util.List getDelMailIdListList(); + /** + * repeated uint32 delMailIdList = 2; + * @return The count of delMailIdList. + */ + int getDelMailIdListCount(); + /** + * repeated uint32 delMailIdList = 2; + * @param index The index of the element to return. + * @return The delMailIdList at the given index. + */ + int getDelMailIdList(int index); + } + /** + * Protobuf type {@code MailChangeNotify} + */ + public static final class MailChangeNotify extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:MailChangeNotify) + MailChangeNotifyOrBuilder { + private static final long serialVersionUID = 0L; + // Use MailChangeNotify.newBuilder() to construct. + private MailChangeNotify(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MailChangeNotify() { + mailList_ = java.util.Collections.emptyList(); + delMailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MailChangeNotify(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MailChangeNotify( + 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 10: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailList_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + mailList_.add( + input.readMessage(emu.grasscutter.net.proto.MailDataOuterClass.MailData.parser(), extensionRegistry)); + break; + } + case 16: { + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + delMailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000002; + } + delMailIdList_.addInt(input.readUInt32()); + break; + } + case 18: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) { + delMailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000002; + } + while (input.getBytesUntilLimit() > 0) { + delMailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailList_ = java.util.Collections.unmodifiableList(mailList_); + } + if (((mutable_bitField0_ & 0x00000002) != 0)) { + delMailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.class, emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.Builder.class); + } + + public static final int MAILLIST_FIELD_NUMBER = 1; + private java.util.List mailList_; + /** + * repeated .MailData mailList = 1; + */ + @java.lang.Override + public java.util.List getMailListList() { + return mailList_; + } + /** + * repeated .MailData mailList = 1; + */ + @java.lang.Override + public java.util.List + getMailListOrBuilderList() { + return mailList_; + } + /** + * repeated .MailData mailList = 1; + */ + @java.lang.Override + public int getMailListCount() { + return mailList_.size(); + } + /** + * repeated .MailData mailList = 1; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { + return mailList_.get(index); + } + /** + * repeated .MailData mailList = 1; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index) { + return mailList_.get(index); + } + + public static final int DELMAILIDLIST_FIELD_NUMBER = 2; + private com.google.protobuf.Internal.IntList delMailIdList_; + /** + * repeated uint32 delMailIdList = 2; + * @return A list containing the delMailIdList. + */ + @java.lang.Override + public java.util.List + getDelMailIdListList() { + return delMailIdList_; + } + /** + * repeated uint32 delMailIdList = 2; + * @return The count of delMailIdList. + */ + public int getDelMailIdListCount() { + return delMailIdList_.size(); + } + /** + * repeated uint32 delMailIdList = 2; + * @param index The index of the element to return. + * @return The delMailIdList at the given index. + */ + public int getDelMailIdList(int index) { + return delMailIdList_.getInt(index); + } + private int delMailIdListMemoizedSerializedSize = -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(); + for (int i = 0; i < mailList_.size(); i++) { + output.writeMessage(1, mailList_.get(i)); + } + if (getDelMailIdListList().size() > 0) { + output.writeUInt32NoTag(18); + output.writeUInt32NoTag(delMailIdListMemoizedSerializedSize); + } + for (int i = 0; i < delMailIdList_.size(); i++) { + output.writeUInt32NoTag(delMailIdList_.getInt(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < mailList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, mailList_.get(i)); + } + { + int dataSize = 0; + for (int i = 0; i < delMailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(delMailIdList_.getInt(i)); + } + size += dataSize; + if (!getDelMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + delMailIdListMemoizedSerializedSize = dataSize; + } + 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.MailChangeNotifyOuterClass.MailChangeNotify)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify other = (emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify) obj; + + if (!getMailListList() + .equals(other.getMailListList())) return false; + if (!getDelMailIdListList() + .equals(other.getDelMailIdListList())) 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(); + if (getMailListCount() > 0) { + hash = (37 * hash) + MAILLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailListList().hashCode(); + } + if (getDelMailIdListCount() > 0) { + hash = (37 * hash) + DELMAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getDelMailIdListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MailChangeNotify} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:MailChangeNotify) + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotifyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.class, emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getMailListFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (mailListBuilder_ == null) { + mailList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + mailListBuilder_.clear(); + } + delMailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify getDefaultInstanceForType() { + return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify build() { + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify buildPartial() { + emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify result = new emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify(this); + int from_bitField0_ = bitField0_; + if (mailListBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + mailList_ = java.util.Collections.unmodifiableList(mailList_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailList_ = mailList_; + } else { + result.mailList_ = mailListBuilder_.build(); + } + if (((bitField0_ & 0x00000002) != 0)) { + delMailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.delMailIdList_ = delMailIdList_; + 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.MailChangeNotifyOuterClass.MailChangeNotify) { + return mergeFrom((emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify other) { + if (other == emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.getDefaultInstance()) return this; + if (mailListBuilder_ == null) { + if (!other.mailList_.isEmpty()) { + if (mailList_.isEmpty()) { + mailList_ = other.mailList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailListIsMutable(); + mailList_.addAll(other.mailList_); + } + onChanged(); + } + } else { + if (!other.mailList_.isEmpty()) { + if (mailListBuilder_.isEmpty()) { + mailListBuilder_.dispose(); + mailListBuilder_ = null; + mailList_ = other.mailList_; + bitField0_ = (bitField0_ & ~0x00000001); + mailListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getMailListFieldBuilder() : null; + } else { + mailListBuilder_.addAllMessages(other.mailList_); + } + } + } + if (!other.delMailIdList_.isEmpty()) { + if (delMailIdList_.isEmpty()) { + delMailIdList_ = other.delMailIdList_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureDelMailIdListIsMutable(); + delMailIdList_.addAll(other.delMailIdList_); + } + 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.MailChangeNotifyOuterClass.MailChangeNotify parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.util.List mailList_ = + java.util.Collections.emptyList(); + private void ensureMailListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailList_ = new java.util.ArrayList(mailList_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> mailListBuilder_; + + /** + * repeated .MailData mailList = 1; + */ + public java.util.List getMailListList() { + if (mailListBuilder_ == null) { + return java.util.Collections.unmodifiableList(mailList_); + } else { + return mailListBuilder_.getMessageList(); + } + } + /** + * repeated .MailData mailList = 1; + */ + public int getMailListCount() { + if (mailListBuilder_ == null) { + return mailList_.size(); + } else { + return mailListBuilder_.getCount(); + } + } + /** + * repeated .MailData mailList = 1; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { + if (mailListBuilder_ == null) { + return mailList_.get(index); + } else { + return mailListBuilder_.getMessage(index); + } + } + /** + * repeated .MailData mailList = 1; + */ + public Builder setMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.set(index, value); + onChanged(); + } else { + mailListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder setMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.set(index, builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder addMailList(emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.add(value); + onChanged(); + } else { + mailListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder addMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { + if (mailListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMailListIsMutable(); + mailList_.add(index, value); + onChanged(); + } else { + mailListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder addMailList( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.add(builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder addMailList( + int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.add(index, builderForValue.build()); + onChanged(); + } else { + mailListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder addAllMailList( + java.lang.Iterable values) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailList_); + onChanged(); + } else { + mailListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder clearMailList() { + if (mailListBuilder_ == null) { + mailList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + mailListBuilder_.clear(); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public Builder removeMailList(int index) { + if (mailListBuilder_ == null) { + ensureMailListIsMutable(); + mailList_.remove(index); + onChanged(); + } else { + mailListBuilder_.remove(index); + } + return this; + } + /** + * repeated .MailData mailList = 1; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder getMailListBuilder( + int index) { + return getMailListFieldBuilder().getBuilder(index); + } + /** + * repeated .MailData mailList = 1; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( + int index) { + if (mailListBuilder_ == null) { + return mailList_.get(index); } else { + return mailListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .MailData mailList = 1; + */ + public java.util.List + getMailListOrBuilderList() { + if (mailListBuilder_ != null) { + return mailListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(mailList_); + } + } + /** + * repeated .MailData mailList = 1; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder() { + return getMailListFieldBuilder().addBuilder( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); + } + /** + * repeated .MailData mailList = 1; + */ + public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder( + int index) { + return getMailListFieldBuilder().addBuilder( + index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); + } + /** + * repeated .MailData mailList = 1; + */ + public java.util.List + getMailListBuilderList() { + return getMailListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> + getMailListFieldBuilder() { + if (mailListBuilder_ == null) { + mailListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder>( + mailList_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + mailList_ = null; + } + return mailListBuilder_; + } + + private com.google.protobuf.Internal.IntList delMailIdList_ = emptyIntList(); + private void ensureDelMailIdListIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + delMailIdList_ = mutableCopy(delMailIdList_); + bitField0_ |= 0x00000002; + } + } + /** + * repeated uint32 delMailIdList = 2; + * @return A list containing the delMailIdList. + */ + public java.util.List + getDelMailIdListList() { + return ((bitField0_ & 0x00000002) != 0) ? + java.util.Collections.unmodifiableList(delMailIdList_) : delMailIdList_; + } + /** + * repeated uint32 delMailIdList = 2; + * @return The count of delMailIdList. + */ + public int getDelMailIdListCount() { + return delMailIdList_.size(); + } + /** + * repeated uint32 delMailIdList = 2; + * @param index The index of the element to return. + * @return The delMailIdList at the given index. + */ + public int getDelMailIdList(int index) { + return delMailIdList_.getInt(index); + } + /** + * repeated uint32 delMailIdList = 2; + * @param index The index to set the value at. + * @param value The delMailIdList to set. + * @return This builder for chaining. + */ + public Builder setDelMailIdList( + int index, int value) { + ensureDelMailIdListIsMutable(); + delMailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 delMailIdList = 2; + * @param value The delMailIdList to add. + * @return This builder for chaining. + */ + public Builder addDelMailIdList(int value) { + ensureDelMailIdListIsMutable(); + delMailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 delMailIdList = 2; + * @param values The delMailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllDelMailIdList( + java.lang.Iterable values) { + ensureDelMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, delMailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 delMailIdList = 2; + * @return This builder for chaining. + */ + public Builder clearDelMailIdList() { + delMailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000002); + 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:MailChangeNotify) + } + + // @@protoc_insertion_point(class_scope:MailChangeNotify) + private static final emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify(); + } + + public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MailChangeNotify parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MailChangeNotify(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.MailChangeNotifyOuterClass.MailChangeNotify getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_MailChangeNotify_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_MailChangeNotify_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\026MailChangeNotify.proto\032\016MailData.proto" + + "\"F\n\020MailChangeNotify\022\033\n\010mailList\030\001 \003(\0132\t" + + ".MailData\022\025\n\rdelMailIdList\030\002 \003(\rB\033\n\031emu." + + "grasscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(), + }); + internal_static_MailChangeNotify_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_MailChangeNotify_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_MailChangeNotify_descriptor, + new java.lang.String[] { "MailList", "DelMailIdList", }); + emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java new file mode 100644 index 000000000..0bb1d7534 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java @@ -0,0 +1,1835 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MailData.proto + +package emu.grasscutter.net.proto; + +public final class MailDataOuterClass { + private MailDataOuterClass() {} + 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 MailDataOrBuilder extends + // @@protoc_insertion_point(interface_extends:MailData) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 mailId = 1; + * @return The mailId. + */ + int getMailId(); + + /** + * .MailTextContent mailTextContent = 4; + * @return Whether the mailTextContent field is set. + */ + boolean hasMailTextContent(); + /** + * .MailTextContent mailTextContent = 4; + * @return The mailTextContent. + */ + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getMailTextContent(); + /** + * .MailTextContent mailTextContent = 4; + */ + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder getMailTextContentOrBuilder(); + + /** + * repeated .MailItem itemList = 7; + */ + java.util.List + getItemListList(); + /** + * repeated .MailItem itemList = 7; + */ + emu.grasscutter.net.proto.MailItemOuterClass.MailItem getItemList(int index); + /** + * repeated .MailItem itemList = 7; + */ + int getItemListCount(); + /** + * repeated .MailItem itemList = 7; + */ + java.util.List + getItemListOrBuilderList(); + /** + * repeated .MailItem itemList = 7; + */ + emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder getItemListOrBuilder( + int index); + + /** + * uint32 sendTime = 8; + * @return The sendTime. + */ + int getSendTime(); + + /** + * uint32 expireTime = 9; + * @return The expireTime. + */ + int getExpireTime(); + + /** + * uint32 importance = 10; + * @return The importance. + */ + int getImportance(); + + /** + * bool isRead = 11; + * @return The isRead. + */ + boolean getIsRead(); + + /** + * bool isAttachmentGot = 12; + * @return The isAttachmentGot. + */ + boolean getIsAttachmentGot(); + + /** + * uint32 configId = 13; + * @return The configId. + */ + int getConfigId(); + + /** + * repeated string argumentList = 14; + * @return A list containing the argumentList. + */ + java.util.List + getArgumentListList(); + /** + * repeated string argumentList = 14; + * @return The count of argumentList. + */ + int getArgumentListCount(); + /** + * repeated string argumentList = 14; + * @param index The index of the element to return. + * @return The argumentList at the given index. + */ + java.lang.String getArgumentList(int index); + /** + * repeated string argumentList = 14; + * @param index The index of the value to return. + * @return The bytes of the argumentList at the given index. + */ + com.google.protobuf.ByteString + getArgumentListBytes(int index); + + /** + * uint32 stateValue = 15; + * @return The stateValue. + */ + int getStateValue(); + } + /** + * Protobuf type {@code MailData} + */ + public static final class MailData extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:MailData) + MailDataOrBuilder { + private static final long serialVersionUID = 0L; + // Use MailData.newBuilder() to construct. + private MailData(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MailData() { + itemList_ = java.util.Collections.emptyList(); + argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MailData(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MailData( + 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 8: { + + mailId_ = input.readUInt32(); + break; + } + case 34: { + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder subBuilder = null; + if (mailTextContent_ != null) { + subBuilder = mailTextContent_.toBuilder(); + } + mailTextContent_ = input.readMessage(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(mailTextContent_); + mailTextContent_ = subBuilder.buildPartial(); + } + + break; + } + case 58: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + itemList_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + itemList_.add( + input.readMessage(emu.grasscutter.net.proto.MailItemOuterClass.MailItem.parser(), extensionRegistry)); + break; + } + case 64: { + + sendTime_ = input.readUInt32(); + break; + } + case 72: { + + expireTime_ = input.readUInt32(); + break; + } + case 80: { + + importance_ = input.readUInt32(); + break; + } + case 88: { + + isRead_ = input.readBool(); + break; + } + case 96: { + + isAttachmentGot_ = input.readBool(); + break; + } + case 104: { + + configId_ = input.readUInt32(); + break; + } + case 114: { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + argumentList_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000002; + } + argumentList_.add(s); + break; + } + case 120: { + + stateValue_ = input.readUInt32(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + itemList_ = java.util.Collections.unmodifiableList(itemList_); + } + if (((mutable_bitField0_ & 0x00000002) != 0)) { + argumentList_ = argumentList_.getUnmodifiableView(); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.class, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder.class); + } + + public static final int MAILID_FIELD_NUMBER = 1; + private int mailId_; + /** + * uint32 mailId = 1; + * @return The mailId. + */ + @java.lang.Override + public int getMailId() { + return mailId_; + } + + public static final int MAILTEXTCONTENT_FIELD_NUMBER = 4; + private emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent mailTextContent_; + /** + * .MailTextContent mailTextContent = 4; + * @return Whether the mailTextContent field is set. + */ + @java.lang.Override + public boolean hasMailTextContent() { + return mailTextContent_ != null; + } + /** + * .MailTextContent mailTextContent = 4; + * @return The mailTextContent. + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getMailTextContent() { + return mailTextContent_ == null ? emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance() : mailTextContent_; + } + /** + * .MailTextContent mailTextContent = 4; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder getMailTextContentOrBuilder() { + return getMailTextContent(); + } + + public static final int ITEMLIST_FIELD_NUMBER = 7; + private java.util.List itemList_; + /** + * repeated .MailItem itemList = 7; + */ + @java.lang.Override + public java.util.List getItemListList() { + return itemList_; + } + /** + * repeated .MailItem itemList = 7; + */ + @java.lang.Override + public java.util.List + getItemListOrBuilderList() { + return itemList_; + } + /** + * repeated .MailItem itemList = 7; + */ + @java.lang.Override + public int getItemListCount() { + return itemList_.size(); + } + /** + * repeated .MailItem itemList = 7; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem getItemList(int index) { + return itemList_.get(index); + } + /** + * repeated .MailItem itemList = 7; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder getItemListOrBuilder( + int index) { + return itemList_.get(index); + } + + public static final int SENDTIME_FIELD_NUMBER = 8; + private int sendTime_; + /** + * uint32 sendTime = 8; + * @return The sendTime. + */ + @java.lang.Override + public int getSendTime() { + return sendTime_; + } + + public static final int EXPIRETIME_FIELD_NUMBER = 9; + private int expireTime_; + /** + * uint32 expireTime = 9; + * @return The expireTime. + */ + @java.lang.Override + public int getExpireTime() { + return expireTime_; + } + + public static final int IMPORTANCE_FIELD_NUMBER = 10; + private int importance_; + /** + * uint32 importance = 10; + * @return The importance. + */ + @java.lang.Override + public int getImportance() { + return importance_; + } + + public static final int ISREAD_FIELD_NUMBER = 11; + private boolean isRead_; + /** + * bool isRead = 11; + * @return The isRead. + */ + @java.lang.Override + public boolean getIsRead() { + return isRead_; + } + + public static final int ISATTACHMENTGOT_FIELD_NUMBER = 12; + private boolean isAttachmentGot_; + /** + * bool isAttachmentGot = 12; + * @return The isAttachmentGot. + */ + @java.lang.Override + public boolean getIsAttachmentGot() { + return isAttachmentGot_; + } + + public static final int CONFIGID_FIELD_NUMBER = 13; + private int configId_; + /** + * uint32 configId = 13; + * @return The configId. + */ + @java.lang.Override + public int getConfigId() { + return configId_; + } + + public static final int ARGUMENTLIST_FIELD_NUMBER = 14; + private com.google.protobuf.LazyStringList argumentList_; + /** + * repeated string argumentList = 14; + * @return A list containing the argumentList. + */ + public com.google.protobuf.ProtocolStringList + getArgumentListList() { + return argumentList_; + } + /** + * repeated string argumentList = 14; + * @return The count of argumentList. + */ + public int getArgumentListCount() { + return argumentList_.size(); + } + /** + * repeated string argumentList = 14; + * @param index The index of the element to return. + * @return The argumentList at the given index. + */ + public java.lang.String getArgumentList(int index) { + return argumentList_.get(index); + } + /** + * repeated string argumentList = 14; + * @param index The index of the value to return. + * @return The bytes of the argumentList at the given index. + */ + public com.google.protobuf.ByteString + getArgumentListBytes(int index) { + return argumentList_.getByteString(index); + } + + public static final int STATEVALUE_FIELD_NUMBER = 15; + private int stateValue_; + /** + * uint32 stateValue = 15; + * @return The stateValue. + */ + @java.lang.Override + public int getStateValue() { + return stateValue_; + } + + 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 (mailId_ != 0) { + output.writeUInt32(1, mailId_); + } + if (mailTextContent_ != null) { + output.writeMessage(4, getMailTextContent()); + } + for (int i = 0; i < itemList_.size(); i++) { + output.writeMessage(7, itemList_.get(i)); + } + if (sendTime_ != 0) { + output.writeUInt32(8, sendTime_); + } + if (expireTime_ != 0) { + output.writeUInt32(9, expireTime_); + } + if (importance_ != 0) { + output.writeUInt32(10, importance_); + } + if (isRead_ != false) { + output.writeBool(11, isRead_); + } + if (isAttachmentGot_ != false) { + output.writeBool(12, isAttachmentGot_); + } + if (configId_ != 0) { + output.writeUInt32(13, configId_); + } + for (int i = 0; i < argumentList_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, argumentList_.getRaw(i)); + } + if (stateValue_ != 0) { + output.writeUInt32(15, stateValue_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (mailId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, mailId_); + } + if (mailTextContent_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getMailTextContent()); + } + for (int i = 0; i < itemList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, itemList_.get(i)); + } + if (sendTime_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(8, sendTime_); + } + if (expireTime_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(9, expireTime_); + } + if (importance_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(10, importance_); + } + if (isRead_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(11, isRead_); + } + if (isAttachmentGot_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(12, isAttachmentGot_); + } + if (configId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(13, configId_); + } + { + int dataSize = 0; + for (int i = 0; i < argumentList_.size(); i++) { + dataSize += computeStringSizeNoTag(argumentList_.getRaw(i)); + } + size += dataSize; + size += 1 * getArgumentListList().size(); + } + if (stateValue_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(15, stateValue_); + } + 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.MailDataOuterClass.MailData)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.MailDataOuterClass.MailData other = (emu.grasscutter.net.proto.MailDataOuterClass.MailData) obj; + + if (getMailId() + != other.getMailId()) return false; + if (hasMailTextContent() != other.hasMailTextContent()) return false; + if (hasMailTextContent()) { + if (!getMailTextContent() + .equals(other.getMailTextContent())) return false; + } + if (!getItemListList() + .equals(other.getItemListList())) return false; + if (getSendTime() + != other.getSendTime()) return false; + if (getExpireTime() + != other.getExpireTime()) return false; + if (getImportance() + != other.getImportance()) return false; + if (getIsRead() + != other.getIsRead()) return false; + if (getIsAttachmentGot() + != other.getIsAttachmentGot()) return false; + if (getConfigId() + != other.getConfigId()) return false; + if (!getArgumentListList() + .equals(other.getArgumentListList())) return false; + if (getStateValue() + != other.getStateValue()) 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) + MAILID_FIELD_NUMBER; + hash = (53 * hash) + getMailId(); + if (hasMailTextContent()) { + hash = (37 * hash) + MAILTEXTCONTENT_FIELD_NUMBER; + hash = (53 * hash) + getMailTextContent().hashCode(); + } + if (getItemListCount() > 0) { + hash = (37 * hash) + ITEMLIST_FIELD_NUMBER; + hash = (53 * hash) + getItemListList().hashCode(); + } + hash = (37 * hash) + SENDTIME_FIELD_NUMBER; + hash = (53 * hash) + getSendTime(); + hash = (37 * hash) + EXPIRETIME_FIELD_NUMBER; + hash = (53 * hash) + getExpireTime(); + hash = (37 * hash) + IMPORTANCE_FIELD_NUMBER; + hash = (53 * hash) + getImportance(); + hash = (37 * hash) + ISREAD_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsRead()); + hash = (37 * hash) + ISATTACHMENTGOT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsAttachmentGot()); + hash = (37 * hash) + CONFIGID_FIELD_NUMBER; + hash = (53 * hash) + getConfigId(); + if (getArgumentListCount() > 0) { + hash = (37 * hash) + ARGUMENTLIST_FIELD_NUMBER; + hash = (53 * hash) + getArgumentListList().hashCode(); + } + hash = (37 * hash) + STATEVALUE_FIELD_NUMBER; + hash = (53 * hash) + getStateValue(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MailData} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:MailData) + emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailDataOuterClass.MailData.class, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.MailDataOuterClass.MailData.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getItemListFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + mailId_ = 0; + + if (mailTextContentBuilder_ == null) { + mailTextContent_ = null; + } else { + mailTextContent_ = null; + mailTextContentBuilder_ = null; + } + if (itemListBuilder_ == null) { + itemList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + itemListBuilder_.clear(); + } + sendTime_ = 0; + + expireTime_ = 0; + + importance_ = 0; + + isRead_ = false; + + isAttachmentGot_ = false; + + configId_ = 0; + + argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + stateValue_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailData getDefaultInstanceForType() { + return emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailData build() { + emu.grasscutter.net.proto.MailDataOuterClass.MailData result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailDataOuterClass.MailData buildPartial() { + emu.grasscutter.net.proto.MailDataOuterClass.MailData result = new emu.grasscutter.net.proto.MailDataOuterClass.MailData(this); + int from_bitField0_ = bitField0_; + result.mailId_ = mailId_; + if (mailTextContentBuilder_ == null) { + result.mailTextContent_ = mailTextContent_; + } else { + result.mailTextContent_ = mailTextContentBuilder_.build(); + } + if (itemListBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + itemList_ = java.util.Collections.unmodifiableList(itemList_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.itemList_ = itemList_; + } else { + result.itemList_ = itemListBuilder_.build(); + } + result.sendTime_ = sendTime_; + result.expireTime_ = expireTime_; + result.importance_ = importance_; + result.isRead_ = isRead_; + result.isAttachmentGot_ = isAttachmentGot_; + result.configId_ = configId_; + if (((bitField0_ & 0x00000002) != 0)) { + argumentList_ = argumentList_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.argumentList_ = argumentList_; + result.stateValue_ = stateValue_; + 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.MailDataOuterClass.MailData) { + return mergeFrom((emu.grasscutter.net.proto.MailDataOuterClass.MailData)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.MailDataOuterClass.MailData other) { + if (other == emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()) return this; + if (other.getMailId() != 0) { + setMailId(other.getMailId()); + } + if (other.hasMailTextContent()) { + mergeMailTextContent(other.getMailTextContent()); + } + if (itemListBuilder_ == null) { + if (!other.itemList_.isEmpty()) { + if (itemList_.isEmpty()) { + itemList_ = other.itemList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureItemListIsMutable(); + itemList_.addAll(other.itemList_); + } + onChanged(); + } + } else { + if (!other.itemList_.isEmpty()) { + if (itemListBuilder_.isEmpty()) { + itemListBuilder_.dispose(); + itemListBuilder_ = null; + itemList_ = other.itemList_; + bitField0_ = (bitField0_ & ~0x00000001); + itemListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getItemListFieldBuilder() : null; + } else { + itemListBuilder_.addAllMessages(other.itemList_); + } + } + } + if (other.getSendTime() != 0) { + setSendTime(other.getSendTime()); + } + if (other.getExpireTime() != 0) { + setExpireTime(other.getExpireTime()); + } + if (other.getImportance() != 0) { + setImportance(other.getImportance()); + } + if (other.getIsRead() != false) { + setIsRead(other.getIsRead()); + } + if (other.getIsAttachmentGot() != false) { + setIsAttachmentGot(other.getIsAttachmentGot()); + } + if (other.getConfigId() != 0) { + setConfigId(other.getConfigId()); + } + if (!other.argumentList_.isEmpty()) { + if (argumentList_.isEmpty()) { + argumentList_ = other.argumentList_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureArgumentListIsMutable(); + argumentList_.addAll(other.argumentList_); + } + onChanged(); + } + if (other.getStateValue() != 0) { + setStateValue(other.getStateValue()); + } + 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.MailDataOuterClass.MailData parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.MailDataOuterClass.MailData) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int mailId_ ; + /** + * uint32 mailId = 1; + * @return The mailId. + */ + @java.lang.Override + public int getMailId() { + return mailId_; + } + /** + * uint32 mailId = 1; + * @param value The mailId to set. + * @return This builder for chaining. + */ + public Builder setMailId(int value) { + + mailId_ = value; + onChanged(); + return this; + } + /** + * uint32 mailId = 1; + * @return This builder for chaining. + */ + public Builder clearMailId() { + + mailId_ = 0; + onChanged(); + return this; + } + + private emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent mailTextContent_; + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder> mailTextContentBuilder_; + /** + * .MailTextContent mailTextContent = 4; + * @return Whether the mailTextContent field is set. + */ + public boolean hasMailTextContent() { + return mailTextContentBuilder_ != null || mailTextContent_ != null; + } + /** + * .MailTextContent mailTextContent = 4; + * @return The mailTextContent. + */ + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getMailTextContent() { + if (mailTextContentBuilder_ == null) { + return mailTextContent_ == null ? emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance() : mailTextContent_; + } else { + return mailTextContentBuilder_.getMessage(); + } + } + /** + * .MailTextContent mailTextContent = 4; + */ + public Builder setMailTextContent(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent value) { + if (mailTextContentBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + mailTextContent_ = value; + onChanged(); + } else { + mailTextContentBuilder_.setMessage(value); + } + + return this; + } + /** + * .MailTextContent mailTextContent = 4; + */ + public Builder setMailTextContent( + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder builderForValue) { + if (mailTextContentBuilder_ == null) { + mailTextContent_ = builderForValue.build(); + onChanged(); + } else { + mailTextContentBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .MailTextContent mailTextContent = 4; + */ + public Builder mergeMailTextContent(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent value) { + if (mailTextContentBuilder_ == null) { + if (mailTextContent_ != null) { + mailTextContent_ = + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.newBuilder(mailTextContent_).mergeFrom(value).buildPartial(); + } else { + mailTextContent_ = value; + } + onChanged(); + } else { + mailTextContentBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .MailTextContent mailTextContent = 4; + */ + public Builder clearMailTextContent() { + if (mailTextContentBuilder_ == null) { + mailTextContent_ = null; + onChanged(); + } else { + mailTextContent_ = null; + mailTextContentBuilder_ = null; + } + + return this; + } + /** + * .MailTextContent mailTextContent = 4; + */ + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder getMailTextContentBuilder() { + + onChanged(); + return getMailTextContentFieldBuilder().getBuilder(); + } + /** + * .MailTextContent mailTextContent = 4; + */ + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder getMailTextContentOrBuilder() { + if (mailTextContentBuilder_ != null) { + return mailTextContentBuilder_.getMessageOrBuilder(); + } else { + return mailTextContent_ == null ? + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance() : mailTextContent_; + } + } + /** + * .MailTextContent mailTextContent = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder> + getMailTextContentFieldBuilder() { + if (mailTextContentBuilder_ == null) { + mailTextContentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder>( + getMailTextContent(), + getParentForChildren(), + isClean()); + mailTextContent_ = null; + } + return mailTextContentBuilder_; + } + + private java.util.List itemList_ = + java.util.Collections.emptyList(); + private void ensureItemListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + itemList_ = new java.util.ArrayList(itemList_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailItemOuterClass.MailItem, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder, emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder> itemListBuilder_; + + /** + * repeated .MailItem itemList = 7; + */ + public java.util.List getItemListList() { + if (itemListBuilder_ == null) { + return java.util.Collections.unmodifiableList(itemList_); + } else { + return itemListBuilder_.getMessageList(); + } + } + /** + * repeated .MailItem itemList = 7; + */ + public int getItemListCount() { + if (itemListBuilder_ == null) { + return itemList_.size(); + } else { + return itemListBuilder_.getCount(); + } + } + /** + * repeated .MailItem itemList = 7; + */ + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem getItemList(int index) { + if (itemListBuilder_ == null) { + return itemList_.get(index); + } else { + return itemListBuilder_.getMessage(index); + } + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder setItemList( + int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.set(index, value); + onChanged(); + } else { + itemListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder setItemList( + int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.set(index, builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder addItemList(emu.grasscutter.net.proto.MailItemOuterClass.MailItem value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.add(value); + onChanged(); + } else { + itemListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder addItemList( + int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem value) { + if (itemListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureItemListIsMutable(); + itemList_.add(index, value); + onChanged(); + } else { + itemListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder addItemList( + emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.add(builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder addItemList( + int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder builderForValue) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.add(index, builderForValue.build()); + onChanged(); + } else { + itemListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder addAllItemList( + java.lang.Iterable values) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, itemList_); + onChanged(); + } else { + itemListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder clearItemList() { + if (itemListBuilder_ == null) { + itemList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + itemListBuilder_.clear(); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public Builder removeItemList(int index) { + if (itemListBuilder_ == null) { + ensureItemListIsMutable(); + itemList_.remove(index); + onChanged(); + } else { + itemListBuilder_.remove(index); + } + return this; + } + /** + * repeated .MailItem itemList = 7; + */ + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder getItemListBuilder( + int index) { + return getItemListFieldBuilder().getBuilder(index); + } + /** + * repeated .MailItem itemList = 7; + */ + public emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder getItemListOrBuilder( + int index) { + if (itemListBuilder_ == null) { + return itemList_.get(index); } else { + return itemListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .MailItem itemList = 7; + */ + public java.util.List + getItemListOrBuilderList() { + if (itemListBuilder_ != null) { + return itemListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(itemList_); + } + } + /** + * repeated .MailItem itemList = 7; + */ + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder addItemListBuilder() { + return getItemListFieldBuilder().addBuilder( + emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance()); + } + /** + * repeated .MailItem itemList = 7; + */ + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder addItemListBuilder( + int index) { + return getItemListFieldBuilder().addBuilder( + index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance()); + } + /** + * repeated .MailItem itemList = 7; + */ + public java.util.List + getItemListBuilderList() { + return getItemListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailItemOuterClass.MailItem, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder, emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder> + getItemListFieldBuilder() { + if (itemListBuilder_ == null) { + itemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + emu.grasscutter.net.proto.MailItemOuterClass.MailItem, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder, emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder>( + itemList_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + itemList_ = null; + } + return itemListBuilder_; + } + + private int sendTime_ ; + /** + * uint32 sendTime = 8; + * @return The sendTime. + */ + @java.lang.Override + public int getSendTime() { + return sendTime_; + } + /** + * uint32 sendTime = 8; + * @param value The sendTime to set. + * @return This builder for chaining. + */ + public Builder setSendTime(int value) { + + sendTime_ = value; + onChanged(); + return this; + } + /** + * uint32 sendTime = 8; + * @return This builder for chaining. + */ + public Builder clearSendTime() { + + sendTime_ = 0; + onChanged(); + return this; + } + + private int expireTime_ ; + /** + * uint32 expireTime = 9; + * @return The expireTime. + */ + @java.lang.Override + public int getExpireTime() { + return expireTime_; + } + /** + * uint32 expireTime = 9; + * @param value The expireTime to set. + * @return This builder for chaining. + */ + public Builder setExpireTime(int value) { + + expireTime_ = value; + onChanged(); + return this; + } + /** + * uint32 expireTime = 9; + * @return This builder for chaining. + */ + public Builder clearExpireTime() { + + expireTime_ = 0; + onChanged(); + return this; + } + + private int importance_ ; + /** + * uint32 importance = 10; + * @return The importance. + */ + @java.lang.Override + public int getImportance() { + return importance_; + } + /** + * uint32 importance = 10; + * @param value The importance to set. + * @return This builder for chaining. + */ + public Builder setImportance(int value) { + + importance_ = value; + onChanged(); + return this; + } + /** + * uint32 importance = 10; + * @return This builder for chaining. + */ + public Builder clearImportance() { + + importance_ = 0; + onChanged(); + return this; + } + + private boolean isRead_ ; + /** + * bool isRead = 11; + * @return The isRead. + */ + @java.lang.Override + public boolean getIsRead() { + return isRead_; + } + /** + * bool isRead = 11; + * @param value The isRead to set. + * @return This builder for chaining. + */ + public Builder setIsRead(boolean value) { + + isRead_ = value; + onChanged(); + return this; + } + /** + * bool isRead = 11; + * @return This builder for chaining. + */ + public Builder clearIsRead() { + + isRead_ = false; + onChanged(); + return this; + } + + private boolean isAttachmentGot_ ; + /** + * bool isAttachmentGot = 12; + * @return The isAttachmentGot. + */ + @java.lang.Override + public boolean getIsAttachmentGot() { + return isAttachmentGot_; + } + /** + * bool isAttachmentGot = 12; + * @param value The isAttachmentGot to set. + * @return This builder for chaining. + */ + public Builder setIsAttachmentGot(boolean value) { + + isAttachmentGot_ = value; + onChanged(); + return this; + } + /** + * bool isAttachmentGot = 12; + * @return This builder for chaining. + */ + public Builder clearIsAttachmentGot() { + + isAttachmentGot_ = false; + onChanged(); + return this; + } + + private int configId_ ; + /** + * uint32 configId = 13; + * @return The configId. + */ + @java.lang.Override + public int getConfigId() { + return configId_; + } + /** + * uint32 configId = 13; + * @param value The configId to set. + * @return This builder for chaining. + */ + public Builder setConfigId(int value) { + + configId_ = value; + onChanged(); + return this; + } + /** + * uint32 configId = 13; + * @return This builder for chaining. + */ + public Builder clearConfigId() { + + configId_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringList argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureArgumentListIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + argumentList_ = new com.google.protobuf.LazyStringArrayList(argumentList_); + bitField0_ |= 0x00000002; + } + } + /** + * repeated string argumentList = 14; + * @return A list containing the argumentList. + */ + public com.google.protobuf.ProtocolStringList + getArgumentListList() { + return argumentList_.getUnmodifiableView(); + } + /** + * repeated string argumentList = 14; + * @return The count of argumentList. + */ + public int getArgumentListCount() { + return argumentList_.size(); + } + /** + * repeated string argumentList = 14; + * @param index The index of the element to return. + * @return The argumentList at the given index. + */ + public java.lang.String getArgumentList(int index) { + return argumentList_.get(index); + } + /** + * repeated string argumentList = 14; + * @param index The index of the value to return. + * @return The bytes of the argumentList at the given index. + */ + public com.google.protobuf.ByteString + getArgumentListBytes(int index) { + return argumentList_.getByteString(index); + } + /** + * repeated string argumentList = 14; + * @param index The index to set the value at. + * @param value The argumentList to set. + * @return This builder for chaining. + */ + public Builder setArgumentList( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureArgumentListIsMutable(); + argumentList_.set(index, value); + onChanged(); + return this; + } + /** + * repeated string argumentList = 14; + * @param value The argumentList to add. + * @return This builder for chaining. + */ + public Builder addArgumentList( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureArgumentListIsMutable(); + argumentList_.add(value); + onChanged(); + return this; + } + /** + * repeated string argumentList = 14; + * @param values The argumentList to add. + * @return This builder for chaining. + */ + public Builder addAllArgumentList( + java.lang.Iterable values) { + ensureArgumentListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, argumentList_); + onChanged(); + return this; + } + /** + * repeated string argumentList = 14; + * @return This builder for chaining. + */ + public Builder clearArgumentList() { + argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * repeated string argumentList = 14; + * @param value The bytes of the argumentList to add. + * @return This builder for chaining. + */ + public Builder addArgumentListBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureArgumentListIsMutable(); + argumentList_.add(value); + onChanged(); + return this; + } + + private int stateValue_ ; + /** + * uint32 stateValue = 15; + * @return The stateValue. + */ + @java.lang.Override + public int getStateValue() { + return stateValue_; + } + /** + * uint32 stateValue = 15; + * @param value The stateValue to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + + stateValue_ = value; + onChanged(); + return this; + } + /** + * uint32 stateValue = 15; + * @return This builder for chaining. + */ + public Builder clearStateValue() { + + stateValue_ = 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:MailData) + } + + // @@protoc_insertion_point(class_scope:MailData) + private static final emu.grasscutter.net.proto.MailDataOuterClass.MailData DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailDataOuterClass.MailData(); + } + + public static emu.grasscutter.net.proto.MailDataOuterClass.MailData getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MailData parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MailData(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.MailDataOuterClass.MailData getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_MailData_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_MailData_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\016MailData.proto\032\025MailTextContent.proto\032" + + "\016MailItem.proto\"\201\002\n\010MailData\022\016\n\006mailId\030\001" + + " \001(\r\022)\n\017mailTextContent\030\004 \001(\0132\020.MailText" + + "Content\022\033\n\010itemList\030\007 \003(\0132\t.MailItem\022\020\n\010" + + "sendTime\030\010 \001(\r\022\022\n\nexpireTime\030\t \001(\r\022\022\n\nim" + + "portance\030\n \001(\r\022\016\n\006isRead\030\013 \001(\010\022\027\n\017isAtta" + + "chmentGot\030\014 \001(\010\022\020\n\010configId\030\r \001(\r\022\024\n\014arg" + + "umentList\030\016 \003(\t\022\022\n\nstateValue\030\017 \001(\rB\033\n\031e" + + "mu.grasscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + emu.grasscutter.net.proto.MailTextContentOuterClass.getDescriptor(), + emu.grasscutter.net.proto.MailItemOuterClass.getDescriptor(), + }); + internal_static_MailData_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_MailData_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_MailData_descriptor, + new java.lang.String[] { "MailId", "MailTextContent", "ItemList", "SendTime", "ExpireTime", "Importance", "IsRead", "IsAttachmentGot", "ConfigId", "ArgumentList", "StateValue", }); + emu.grasscutter.net.proto.MailTextContentOuterClass.getDescriptor(); + emu.grasscutter.net.proto.MailItemOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java new file mode 100644 index 000000000..9298bb251 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java @@ -0,0 +1,880 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MailItem.proto + +package emu.grasscutter.net.proto; + +public final class MailItemOuterClass { + private MailItemOuterClass() {} + 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 MailItemOrBuilder extends + // @@protoc_insertion_point(interface_extends:MailItem) + com.google.protobuf.MessageOrBuilder { + + /** + * .ItemParam itemParam = 1; + * @return Whether the itemParam field is set. + */ + boolean hasItemParam(); + /** + * .ItemParam itemParam = 1; + * @return The itemParam. + */ + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemParam(); + /** + * .ItemParam itemParam = 1; + */ + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemParamOrBuilder(); + + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return Whether the deleteInfo field is set. + */ + boolean hasDeleteInfo(); + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return The deleteInfo. + */ + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo getDeleteInfo(); + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder getDeleteInfoOrBuilder(); + } + /** + * Protobuf type {@code MailItem} + */ + public static final class MailItem extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:MailItem) + MailItemOrBuilder { + private static final long serialVersionUID = 0L; + // Use MailItem.newBuilder() to construct. + private MailItem(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MailItem() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MailItem(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MailItem( + 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 10: { + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder subBuilder = null; + if (itemParam_ != null) { + subBuilder = itemParam_.toBuilder(); + } + itemParam_ = input.readMessage(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(itemParam_); + itemParam_ = subBuilder.buildPartial(); + } + + break; + } + case 18: { + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder subBuilder = null; + if (deleteInfo_ != null) { + subBuilder = deleteInfo_.toBuilder(); + } + deleteInfo_ = input.readMessage(emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(deleteInfo_); + deleteInfo_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().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.MailItemOuterClass.internal_static_MailItem_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailItemOuterClass.MailItem.class, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder.class); + } + + public static final int ITEMPARAM_FIELD_NUMBER = 1; + private emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam itemParam_; + /** + * .ItemParam itemParam = 1; + * @return Whether the itemParam field is set. + */ + @java.lang.Override + public boolean hasItemParam() { + return itemParam_ != null; + } + /** + * .ItemParam itemParam = 1; + * @return The itemParam. + */ + @java.lang.Override + public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemParam() { + return itemParam_ == null ? emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance() : itemParam_; + } + /** + * .ItemParam itemParam = 1; + */ + @java.lang.Override + public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemParamOrBuilder() { + return getItemParam(); + } + + public static final int DELETEINFO_FIELD_NUMBER = 2; + private emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo deleteInfo_; + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return Whether the deleteInfo field is set. + */ + @java.lang.Override + public boolean hasDeleteInfo() { + return deleteInfo_ != null; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return The deleteInfo. + */ + @java.lang.Override + public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo getDeleteInfo() { + return deleteInfo_ == null ? emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.getDefaultInstance() : deleteInfo_; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + @java.lang.Override + public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder getDeleteInfoOrBuilder() { + return getDeleteInfo(); + } + + 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 (itemParam_ != null) { + output.writeMessage(1, getItemParam()); + } + if (deleteInfo_ != null) { + output.writeMessage(2, getDeleteInfo()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (itemParam_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getItemParam()); + } + if (deleteInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getDeleteInfo()); + } + 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.MailItemOuterClass.MailItem)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.MailItemOuterClass.MailItem other = (emu.grasscutter.net.proto.MailItemOuterClass.MailItem) obj; + + if (hasItemParam() != other.hasItemParam()) return false; + if (hasItemParam()) { + if (!getItemParam() + .equals(other.getItemParam())) return false; + } + if (hasDeleteInfo() != other.hasDeleteInfo()) return false; + if (hasDeleteInfo()) { + if (!getDeleteInfo() + .equals(other.getDeleteInfo())) 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(); + if (hasItemParam()) { + hash = (37 * hash) + ITEMPARAM_FIELD_NUMBER; + hash = (53 * hash) + getItemParam().hashCode(); + } + if (hasDeleteInfo()) { + hash = (37 * hash) + DELETEINFO_FIELD_NUMBER; + hash = (53 * hash) + getDeleteInfo().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MailItem} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:MailItem) + emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailItemOuterClass.MailItem.class, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.MailItemOuterClass.MailItem.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(); + if (itemParamBuilder_ == null) { + itemParam_ = null; + } else { + itemParam_ = null; + itemParamBuilder_ = null; + } + if (deleteInfoBuilder_ == null) { + deleteInfo_ = null; + } else { + deleteInfo_ = null; + deleteInfoBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem getDefaultInstanceForType() { + return emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem build() { + emu.grasscutter.net.proto.MailItemOuterClass.MailItem result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailItemOuterClass.MailItem buildPartial() { + emu.grasscutter.net.proto.MailItemOuterClass.MailItem result = new emu.grasscutter.net.proto.MailItemOuterClass.MailItem(this); + if (itemParamBuilder_ == null) { + result.itemParam_ = itemParam_; + } else { + result.itemParam_ = itemParamBuilder_.build(); + } + if (deleteInfoBuilder_ == null) { + result.deleteInfo_ = deleteInfo_; + } else { + result.deleteInfo_ = deleteInfoBuilder_.build(); + } + 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.MailItemOuterClass.MailItem) { + return mergeFrom((emu.grasscutter.net.proto.MailItemOuterClass.MailItem)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.MailItemOuterClass.MailItem other) { + if (other == emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance()) return this; + if (other.hasItemParam()) { + mergeItemParam(other.getItemParam()); + } + if (other.hasDeleteInfo()) { + mergeDeleteInfo(other.getDeleteInfo()); + } + 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.MailItemOuterClass.MailItem parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.MailItemOuterClass.MailItem) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam itemParam_; + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> itemParamBuilder_; + /** + * .ItemParam itemParam = 1; + * @return Whether the itemParam field is set. + */ + public boolean hasItemParam() { + return itemParamBuilder_ != null || itemParam_ != null; + } + /** + * .ItemParam itemParam = 1; + * @return The itemParam. + */ + public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemParam() { + if (itemParamBuilder_ == null) { + return itemParam_ == null ? emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance() : itemParam_; + } else { + return itemParamBuilder_.getMessage(); + } + } + /** + * .ItemParam itemParam = 1; + */ + public Builder setItemParam(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) { + if (itemParamBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + itemParam_ = value; + onChanged(); + } else { + itemParamBuilder_.setMessage(value); + } + + return this; + } + /** + * .ItemParam itemParam = 1; + */ + public Builder setItemParam( + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) { + if (itemParamBuilder_ == null) { + itemParam_ = builderForValue.build(); + onChanged(); + } else { + itemParamBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .ItemParam itemParam = 1; + */ + public Builder mergeItemParam(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) { + if (itemParamBuilder_ == null) { + if (itemParam_ != null) { + itemParam_ = + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.newBuilder(itemParam_).mergeFrom(value).buildPartial(); + } else { + itemParam_ = value; + } + onChanged(); + } else { + itemParamBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .ItemParam itemParam = 1; + */ + public Builder clearItemParam() { + if (itemParamBuilder_ == null) { + itemParam_ = null; + onChanged(); + } else { + itemParam_ = null; + itemParamBuilder_ = null; + } + + return this; + } + /** + * .ItemParam itemParam = 1; + */ + public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder getItemParamBuilder() { + + onChanged(); + return getItemParamFieldBuilder().getBuilder(); + } + /** + * .ItemParam itemParam = 1; + */ + public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemParamOrBuilder() { + if (itemParamBuilder_ != null) { + return itemParamBuilder_.getMessageOrBuilder(); + } else { + return itemParam_ == null ? + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance() : itemParam_; + } + } + /** + * .ItemParam itemParam = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> + getItemParamFieldBuilder() { + if (itemParamBuilder_ == null) { + itemParamBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>( + getItemParam(), + getParentForChildren(), + isClean()); + itemParam_ = null; + } + return itemParamBuilder_; + } + + private emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo deleteInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder> deleteInfoBuilder_; + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return Whether the deleteInfo field is set. + */ + public boolean hasDeleteInfo() { + return deleteInfoBuilder_ != null || deleteInfo_ != null; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + * @return The deleteInfo. + */ + public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo getDeleteInfo() { + if (deleteInfoBuilder_ == null) { + return deleteInfo_ == null ? emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.getDefaultInstance() : deleteInfo_; + } else { + return deleteInfoBuilder_.getMessage(); + } + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public Builder setDeleteInfo(emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo value) { + if (deleteInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deleteInfo_ = value; + onChanged(); + } else { + deleteInfoBuilder_.setMessage(value); + } + + return this; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public Builder setDeleteInfo( + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder builderForValue) { + if (deleteInfoBuilder_ == null) { + deleteInfo_ = builderForValue.build(); + onChanged(); + } else { + deleteInfoBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public Builder mergeDeleteInfo(emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo value) { + if (deleteInfoBuilder_ == null) { + if (deleteInfo_ != null) { + deleteInfo_ = + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.newBuilder(deleteInfo_).mergeFrom(value).buildPartial(); + } else { + deleteInfo_ = value; + } + onChanged(); + } else { + deleteInfoBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public Builder clearDeleteInfo() { + if (deleteInfoBuilder_ == null) { + deleteInfo_ = null; + onChanged(); + } else { + deleteInfo_ = null; + deleteInfoBuilder_ = null; + } + + return this; + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder getDeleteInfoBuilder() { + + onChanged(); + return getDeleteInfoFieldBuilder().getBuilder(); + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder getDeleteInfoOrBuilder() { + if (deleteInfoBuilder_ != null) { + return deleteInfoBuilder_.getMessageOrBuilder(); + } else { + return deleteInfo_ == null ? + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.getDefaultInstance() : deleteInfo_; + } + } + /** + * .MaterialDeleteInfo deleteInfo = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder> + getDeleteInfoFieldBuilder() { + if (deleteInfoBuilder_ == null) { + deleteInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder>( + getDeleteInfo(), + getParentForChildren(), + isClean()); + deleteInfo_ = null; + } + return deleteInfoBuilder_; + } + @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:MailItem) + } + + // @@protoc_insertion_point(class_scope:MailItem) + private static final emu.grasscutter.net.proto.MailItemOuterClass.MailItem DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailItemOuterClass.MailItem(); + } + + public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MailItem parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MailItem(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.MailItemOuterClass.MailItem getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_MailItem_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_MailItem_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\016MailItem.proto\032\017ItemParam.proto\032\030Mater" + + "ialDeleteInfo.proto\"R\n\010MailItem\022\035\n\titemP" + + "aram\030\001 \001(\0132\n.ItemParam\022\'\n\ndeleteInfo\030\002 \001" + + "(\0132\023.MaterialDeleteInfoB\033\n\031emu.grasscutt" + + "er.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor(), + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.getDescriptor(), + }); + internal_static_MailItem_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_MailItem_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_MailItem_descriptor, + new java.lang.String[] { "ItemParam", "DeleteInfo", }); + emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor(); + emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java new file mode 100644 index 000000000..869011ffa --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java @@ -0,0 +1,919 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MailTextContent.proto + +package emu.grasscutter.net.proto; + +public final class MailTextContentOuterClass { + private MailTextContentOuterClass() {} + 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 MailTextContentOrBuilder extends + // @@protoc_insertion_point(interface_extends:MailTextContent) + com.google.protobuf.MessageOrBuilder { + + /** + * string title = 1; + * @return The title. + */ + java.lang.String getTitle(); + /** + * string title = 1; + * @return The bytes for title. + */ + com.google.protobuf.ByteString + getTitleBytes(); + + /** + * string content = 2; + * @return The content. + */ + java.lang.String getContent(); + /** + * string content = 2; + * @return The bytes for content. + */ + com.google.protobuf.ByteString + getContentBytes(); + + /** + * string sender = 3; + * @return The sender. + */ + java.lang.String getSender(); + /** + * string sender = 3; + * @return The bytes for sender. + */ + com.google.protobuf.ByteString + getSenderBytes(); + } + /** + * Protobuf type {@code MailTextContent} + */ + public static final class MailTextContent extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:MailTextContent) + MailTextContentOrBuilder { + private static final long serialVersionUID = 0L; + // Use MailTextContent.newBuilder() to construct. + private MailTextContent(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MailTextContent() { + title_ = ""; + content_ = ""; + sender_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MailTextContent(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MailTextContent( + 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 10: { + java.lang.String s = input.readStringRequireUtf8(); + + title_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + content_ = s; + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + + sender_ = s; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().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.MailTextContentOuterClass.internal_static_MailTextContent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.class, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder.class); + } + + public static final int TITLE_FIELD_NUMBER = 1; + private volatile java.lang.Object title_; + /** + * string title = 1; + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } + } + /** + * string title = 1; + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CONTENT_FIELD_NUMBER = 2; + private volatile java.lang.Object content_; + /** + * string content = 2; + * @return The content. + */ + @java.lang.Override + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } + } + /** + * string content = 2; + * @return The bytes for content. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SENDER_FIELD_NUMBER = 3; + private volatile java.lang.Object sender_; + /** + * string sender = 3; + * @return The sender. + */ + @java.lang.Override + public java.lang.String getSender() { + java.lang.Object ref = sender_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sender_ = s; + return s; + } + } + /** + * string sender = 3; + * @return The bytes for sender. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSenderBytes() { + java.lang.Object ref = sender_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sender_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + 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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, title_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sender_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, sender_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, title_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sender_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, sender_); + } + 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.MailTextContentOuterClass.MailTextContent)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent other = (emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent) obj; + + if (!getTitle() + .equals(other.getTitle())) return false; + if (!getContent() + .equals(other.getContent())) return false; + if (!getSender() + .equals(other.getSender())) 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) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + hash = (37 * hash) + CONTENT_FIELD_NUMBER; + hash = (53 * hash) + getContent().hashCode(); + hash = (37 * hash) + SENDER_FIELD_NUMBER; + hash = (53 * hash) + getSender().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MailTextContent} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:MailTextContent) + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.class, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.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(); + title_ = ""; + + content_ = ""; + + sender_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getDefaultInstanceForType() { + return emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent build() { + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent buildPartial() { + emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent result = new emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent(this); + result.title_ = title_; + result.content_ = content_; + result.sender_ = sender_; + 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.MailTextContentOuterClass.MailTextContent) { + return mergeFrom((emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent other) { + if (other == emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance()) return this; + if (!other.getTitle().isEmpty()) { + title_ = other.title_; + onChanged(); + } + if (!other.getContent().isEmpty()) { + content_ = other.content_; + onChanged(); + } + if (!other.getSender().isEmpty()) { + sender_ = other.sender_; + 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.MailTextContentOuterClass.MailTextContent parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object title_ = ""; + /** + * string title = 1; + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string title = 1; + * @return The bytes for title. + */ + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string title = 1; + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + title_ = value; + onChanged(); + return this; + } + /** + * string title = 1; + * @return This builder for chaining. + */ + public Builder clearTitle() { + + title_ = getDefaultInstance().getTitle(); + onChanged(); + return this; + } + /** + * string title = 1; + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + title_ = value; + onChanged(); + return this; + } + + private java.lang.Object content_ = ""; + /** + * string content = 2; + * @return The content. + */ + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string content = 2; + * @return The bytes for content. + */ + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string content = 2; + * @param value The content to set. + * @return This builder for chaining. + */ + public Builder setContent( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + content_ = value; + onChanged(); + return this; + } + /** + * string content = 2; + * @return This builder for chaining. + */ + public Builder clearContent() { + + content_ = getDefaultInstance().getContent(); + onChanged(); + return this; + } + /** + * string content = 2; + * @param value The bytes for content to set. + * @return This builder for chaining. + */ + public Builder setContentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + content_ = value; + onChanged(); + return this; + } + + private java.lang.Object sender_ = ""; + /** + * string sender = 3; + * @return The sender. + */ + public java.lang.String getSender() { + java.lang.Object ref = sender_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sender_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string sender = 3; + * @return The bytes for sender. + */ + public com.google.protobuf.ByteString + getSenderBytes() { + java.lang.Object ref = sender_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sender_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string sender = 3; + * @param value The sender to set. + * @return This builder for chaining. + */ + public Builder setSender( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + sender_ = value; + onChanged(); + return this; + } + /** + * string sender = 3; + * @return This builder for chaining. + */ + public Builder clearSender() { + + sender_ = getDefaultInstance().getSender(); + onChanged(); + return this; + } + /** + * string sender = 3; + * @param value The bytes for sender to set. + * @return This builder for chaining. + */ + public Builder setSenderBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + sender_ = value; + 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:MailTextContent) + } + + // @@protoc_insertion_point(class_scope:MailTextContent) + private static final emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent(); + } + + public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MailTextContent parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MailTextContent(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.MailTextContentOuterClass.MailTextContent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_MailTextContent_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_MailTextContent_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\025MailTextContent.proto\"A\n\017MailTextConte" + + "nt\022\r\n\005title\030\001 \001(\t\022\017\n\007content\030\002 \001(\t\022\016\n\006se" + + "nder\030\003 \001(\tB\033\n\031emu.grasscutter.net.protob" + + "\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_MailTextContent_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_MailTextContent_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_MailTextContent_descriptor, + new java.lang.String[] { "Title", "Content", "Sender", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java b/src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java new file mode 100644 index 000000000..cf4ef50ca --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java @@ -0,0 +1,665 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ReadMailNotify.proto + +package emu.grasscutter.net.proto; + +public final class ReadMailNotifyOuterClass { + private ReadMailNotifyOuterClass() {} + 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 ReadMailNotifyOrBuilder extends + // @@protoc_insertion_point(interface_extends:ReadMailNotify) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + java.util.List getMailIdListList(); + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + int getMailIdListCount(); + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + int getMailIdList(int index); + } + /** + * Protobuf type {@code ReadMailNotify} + */ + public static final class ReadMailNotify extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:ReadMailNotify) + ReadMailNotifyOrBuilder { + private static final long serialVersionUID = 0L; + // Use ReadMailNotify.newBuilder() to construct. + private ReadMailNotify(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ReadMailNotify() { + mailIdList_ = emptyIntList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ReadMailNotify(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ReadMailNotify( + 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 8: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + mailIdList_.addInt(input.readUInt32()); + break; + } + case 10: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { + mailIdList_ = newIntList(); + mutable_bitField0_ |= 0x00000001; + } + while (input.getBytesUntilLimit() > 0) { + mailIdList_.addInt(input.readUInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.class, emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.Builder.class); + } + + public static final int MAILIDLIST_FIELD_NUMBER = 1; + private com.google.protobuf.Internal.IntList mailIdList_; + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + @java.lang.Override + public java.util.List + getMailIdListList() { + return mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + private int mailIdListMemoizedSerializedSize = -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 (getMailIdListList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); + } + for (int i = 0; i < mailIdList_.size(); i++) { + output.writeUInt32NoTag(mailIdList_.getInt(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < mailIdList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(mailIdList_.getInt(i)); + } + size += dataSize; + if (!getMailIdListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + mailIdListMemoizedSerializedSize = dataSize; + } + 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.ReadMailNotifyOuterClass.ReadMailNotify)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify other = (emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify) obj; + + if (!getMailIdListList() + .equals(other.getMailIdListList())) 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(); + if (getMailIdListCount() > 0) { + hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; + hash = (53 * hash) + getMailIdListList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ReadMailNotify} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:ReadMailNotify) + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotifyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.class, emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.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(); + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify getDefaultInstanceForType() { + return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify build() { + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify buildPartial() { + emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify result = new emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) != 0)) { + mailIdList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.mailIdList_ = mailIdList_; + 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.ReadMailNotifyOuterClass.ReadMailNotify) { + return mergeFrom((emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify other) { + if (other == emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.getDefaultInstance()) return this; + if (!other.mailIdList_.isEmpty()) { + if (mailIdList_.isEmpty()) { + mailIdList_ = other.mailIdList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMailIdListIsMutable(); + mailIdList_.addAll(other.mailIdList_); + } + 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.ReadMailNotifyOuterClass.ReadMailNotify parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); + private void ensureMailIdListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + mailIdList_ = mutableCopy(mailIdList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint32 mailIdList = 1; + * @return A list containing the mailIdList. + */ + public java.util.List + getMailIdListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; + } + /** + * repeated uint32 mailIdList = 1; + * @return The count of mailIdList. + */ + public int getMailIdListCount() { + return mailIdList_.size(); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index of the element to return. + * @return The mailIdList at the given index. + */ + public int getMailIdList(int index) { + return mailIdList_.getInt(index); + } + /** + * repeated uint32 mailIdList = 1; + * @param index The index to set the value at. + * @param value The mailIdList to set. + * @return This builder for chaining. + */ + public Builder setMailIdList( + int index, int value) { + ensureMailIdListIsMutable(); + mailIdList_.setInt(index, value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param value The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addMailIdList(int value) { + ensureMailIdListIsMutable(); + mailIdList_.addInt(value); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @param values The mailIdList to add. + * @return This builder for chaining. + */ + public Builder addAllMailIdList( + java.lang.Iterable values) { + ensureMailIdListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, mailIdList_); + onChanged(); + return this; + } + /** + * repeated uint32 mailIdList = 1; + * @return This builder for chaining. + */ + public Builder clearMailIdList() { + mailIdList_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000001); + 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:ReadMailNotify) + } + + // @@protoc_insertion_point(class_scope:ReadMailNotify) + private static final emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify(); + } + + public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ReadMailNotify parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ReadMailNotify(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.ReadMailNotifyOuterClass.ReadMailNotify getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_ReadMailNotify_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_ReadMailNotify_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\024ReadMailNotify.proto\"$\n\016ReadMailNotify" + + "\022\022\n\nmailIdList\030\001 \003(\rB\033\n\031emu.grasscutter." + + "net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_ReadMailNotify_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_ReadMailNotify_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_ReadMailNotify_descriptor, + new java.lang.String[] { "MailIdList", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} From dd42d3b02793e30c5306f95a24388f5e22d97875 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Fri, 22 Apr 2022 15:52:31 +0800 Subject: [PATCH 12/40] Initial work on mail --- .../packet/recv/HandlerGetAllMailReq.java | 23 +++++++++++ .../packet/send/PacketGetAllMailRsp.java | 39 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java create mode 100644 src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java new file mode 100644 index 000000000..9a1d1294e --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java @@ -0,0 +1,23 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.Grasscutter; +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.proto.GetAllMailReqOuterClass; +import emu.grasscutter.net.proto.GetPlayerTokenReqOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketGetAllMailRsp; +import emu.grasscutter.server.packet.send.PacketGetGachaInfoRsp; + +@Opcodes(PacketOpcodes.GetAllMailReq) +public class HandlerGetAllMailReq extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + Grasscutter.getLogger().info("Mail Req"); + GetAllMailReqOuterClass.GetAllMailReq req = GetAllMailReqOuterClass.GetAllMailReq.parseFrom(payload); + session.send(new PacketGetAllMailRsp(session.getPlayer(), req.getIsGiftMail())); + } + +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java new file mode 100644 index 000000000..d2362862c --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -0,0 +1,39 @@ +package emu.grasscutter.server.packet.send; + +import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; +import emu.grasscutter.net.proto.MailDataOuterClass.MailData; +import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; + +import java.time.Instant; + +public class PacketGetAllMailRsp extends GenshinPacket { + + public PacketGetAllMailRsp(GenshinPlayer player, boolean isGiftMail) { + super(PacketOpcodes.GetAllMailRsp); + + GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); + + MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); + mailTextContent.setTitle("System Message"); + mailTextContent.setContent("I'm going to kill you..."); + mailTextContent.setSender("YOU"); + + MailData.Builder mailData = MailData.newBuilder(); + mailData.setMailId(0); + mailData.setMailTextContent(mailTextContent.build()); + mailData.setSendTime((int) Instant.now().getEpochSecond()); + mailData.setExpireTime(999999999); + mailData.setImportance(1); + mailData.setIsRead(false); + mailData.setIsAttachmentGot(false); + maildata. + + proto.addMailList(mailData.build()); + proto.setIsTruncated(false); + + this.setData(proto); + } +} From d0538f7aee755e8c4a37cde3b834842c7be53aa2 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Fri, 22 Apr 2022 19:02:05 +0800 Subject: [PATCH 13/40] Added GetMailItemReq/Rsp & PacketMailChangeNotify Mail still doesn't work for whatever reason. I also added a temporary SendMailCommand just to receive PacketMailChangeNotify. I feel like I'm about to lose my mind. --- Grasscutter-Protos | 2 +- .../command/commands/SendMailCommand.java | 19 ++++++++ .../packet/recv/HandlerGetMailItemReq.java | 22 +++++++++ .../packet/send/PacketGetAllMailRsp.java | 39 +++++++++++----- .../packet/send/PacketGetMailItemRsp.java | 31 +++++++++++++ .../packet/send/PacketMailChangeNotify.java | 46 +++++++++++++++++++ 6 files changed, 147 insertions(+), 12 deletions(-) create mode 100644 src/main/java/emu/grasscutter/command/commands/SendMailCommand.java create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java create mode 100644 src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java create mode 100644 src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java diff --git a/Grasscutter-Protos b/Grasscutter-Protos index 0537e9cc4..ba0eab7d6 160000 --- a/Grasscutter-Protos +++ b/Grasscutter-Protos @@ -1 +1 @@ -Subproject commit 0537e9cc4c7856a7c6f88bbbaa908a80c4ee677e +Subproject commit ba0eab7d629b5adeb145bc430e14ffcb4bdf3d6a diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java new file mode 100644 index 000000000..fd45235b5 --- /dev/null +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -0,0 +1,19 @@ +package emu.grasscutter.command.commands; + +import emu.grasscutter.command.Command; +import emu.grasscutter.command.CommandHandler; +import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.server.packet.send.PacketMailChangeNotify; + +import java.util.List; + +@Command(label = "sendmail", usage = "sendmail") +public class SendMailCommand implements CommandHandler { + + @Override + public void execute(GenshinPlayer sender, List args) { + // This is literally so I can test the notification + sender.getSession().send(new PacketMailChangeNotify(sender)); + sender.dropMessage("Check your inbox"); + } +} diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java new file mode 100644 index 000000000..2fed31974 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java @@ -0,0 +1,22 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.Grasscutter; +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.GetMailItemReqOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketGetAllMailRsp; +import emu.grasscutter.server.packet.send.PacketGetMailItemRsp; + +@Opcodes(PacketOpcodes.GetMailItemReq) +public class HandlerGetMailItemReq extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + Grasscutter.getLogger().info("Mail Item Req"); + GetMailItemReqOuterClass.GetMailItemReq req = GetMailItemReqOuterClass.GetMailItemReq.parseFrom(payload); + session.send(new PacketGetMailItemRsp(session.getPlayer(), req.getMailIdListList())); + } + +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index d2362862c..82a567d67 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -1,39 +1,56 @@ package emu.grasscutter.server.packet.send; +import com.google.gson.Gson; +import emu.grasscutter.Grasscutter; import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.DateTimeDeleteOuterClass; import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; +import emu.grasscutter.net.proto.ItemParamOuterClass; import emu.grasscutter.net.proto.MailDataOuterClass.MailData; +import emu.grasscutter.net.proto.MailItemOuterClass; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; - -import java.time.Instant; +import emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass; public class PacketGetAllMailRsp extends GenshinPacket { public PacketGetAllMailRsp(GenshinPlayer player, boolean isGiftMail) { super(PacketOpcodes.GetAllMailRsp); + Grasscutter.getLogger().info(String.valueOf(isGiftMail)); GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); + // Dummy data. MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); - mailTextContent.setTitle("System Message"); - mailTextContent.setContent("I'm going to kill you..."); - mailTextContent.setSender("YOU"); + mailTextContent.setTitle("Hello Traveller.."); + mailTextContent.setContent("You've called me emergency food for the last time. \n Get ready to die!"); + mailTextContent.setSender("P·A·I·M·O·N"); + + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + + itemParam.setItemId(1062); + itemParam.setCount(1); + mailItem.setItemParam(itemParam.build()); MailData.Builder mailData = MailData.newBuilder(); - mailData.setMailId(0); + mailData.setMailId(100); mailData.setMailTextContent(mailTextContent.build()); - mailData.setSendTime((int) Instant.now().getEpochSecond()); - mailData.setExpireTime(999999999); + mailData.addItemList(mailItem.build()); + mailData.setSendTime(1634100481); + mailData.setExpireTime(1664498747); mailData.setImportance(1); mailData.setIsRead(false); mailData.setIsAttachmentGot(false); - maildata. + mailData.setStateValue(1); proto.addMailList(mailData.build()); - proto.setIsTruncated(false); + proto.addMailList(mailData.setMailId(101).build()); + proto.setIsTruncated(true); - this.setData(proto); + Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); + + this.setData(proto.build()); } } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java new file mode 100644 index 000000000..468e98885 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -0,0 +1,31 @@ +package emu.grasscutter.server.packet.send; + +import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp; +import emu.grasscutter.net.proto.ItemParamOuterClass; +import emu.grasscutter.net.proto.MailItemOuterClass; + +import java.util.List; + +public class PacketGetMailItemRsp extends GenshinPacket { + + public PacketGetMailItemRsp(GenshinPlayer player, List mailList) { + super(PacketOpcodes.GetMailItemRsp); + + //I'm assuming that this is to receive the attachments on the message. + // TODO: This. + + //GetMailItemRsp.Builder proto = GetMailItemRsp.newBuilder(); + + //MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + + //ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + + //mailItem.setItemParam(itemParam); + + //proto.addAllMailIdList(mailList); + //proto.addItemList(); + } +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java new file mode 100644 index 000000000..bedd191e1 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -0,0 +1,46 @@ +package emu.grasscutter.server.packet.send; + + +import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.*; + +import java.util.List; + +public class PacketMailChangeNotify extends GenshinPacket { + + public PacketMailChangeNotify(GenshinPlayer player) { + super(PacketOpcodes.MailChangeNotify); + + MailChangeNotifyOuterClass.MailChangeNotify.Builder proto = MailChangeNotifyOuterClass.MailChangeNotify.newBuilder(); + + // Dummy data. + MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); + mailTextContent.setTitle("System Message"); + mailTextContent.setContent("I'm going to kill you..."); + mailTextContent.setSender("YOU"); + + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + + itemParam.setItemId(1062); + itemParam.setCount(1); + mailItem.setItemParam(itemParam.build()); + + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(100); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addItemList(mailItem.build()); + mailData.setSendTime(1634100481); + mailData.setExpireTime(1664498747); + mailData.setImportance(1); + mailData.setIsRead(false); + mailData.setIsAttachmentGot(false); + mailData.setStateValue(1); + + proto.addMailList(mailData.build()); + + this.setData(proto.build()); + } +} \ No newline at end of file From b1f34f4fbea816681cc5a6286f2dd85299276f1a Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Sat, 23 Apr 2022 23:07:18 +0800 Subject: [PATCH 14/40] Added database support for mail Send mail command now works from console (to use it from console change the uuid in the 'SendMailCommand' file --- .../command/commands/SendMailCommand.java | 17 +++- .../emu/grasscutter/game/GenshinPlayer.java | 14 +++ src/main/java/emu/grasscutter/game/Mail.java | 99 +++++++++++++++++++ .../packet/send/PacketGetAllMailRsp.java | 63 +++++++----- .../packet/send/PacketMailChangeNotify.java | 38 ++++--- 5 files changed, 187 insertions(+), 44 deletions(-) create mode 100644 src/main/java/emu/grasscutter/game/Mail.java diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java index fd45235b5..ac6593529 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -1,10 +1,14 @@ package emu.grasscutter.command.commands; +import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Mail; import emu.grasscutter.server.packet.send.PacketMailChangeNotify; +import java.time.Instant; +import java.util.ArrayList; import java.util.List; @Command(label = "sendmail", usage = "sendmail") @@ -12,8 +16,17 @@ public class SendMailCommand implements CommandHandler { @Override public void execute(GenshinPlayer sender, List args) { - // This is literally so I can test the notification - sender.getSession().send(new PacketMailChangeNotify(sender)); + // This is literally so I can receive mail for some reason. + if(sender == null) { + // This is my uuid in my test server. This is just for testing. + // If someone pulled this please put your uuid to receive mail using /sendmail + // until I actually make a proper /sendmail command. + sender = Grasscutter.getGameServer().getPlayerByUid(7006); + } + sender.sendMail(new Mail(new Mail.MailContent("Test", "This is a test"), + new ArrayList(){{add(new Mail.MailItem(1062));}}, + Instant.now().getEpochSecond() + 4000)); + sender.dropMessage("Check your inbox"); } } diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index 3c68f04c2..3f8fe70ae 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -74,6 +74,8 @@ public class GenshinPlayer { private boolean showAvatar; private ArrayList shownAvatars; private Set rewardedLevels; + + private ArrayList mail; private int sceneId; private int regionId; @@ -112,6 +114,8 @@ public class GenshinPlayer { this.flyCloakList = new HashSet<>(); this.costumeList = new HashSet<>(); + this.mail = new ArrayList<>(); + this.setSceneId(3); this.setRegionId(1); this.sceneState = SceneLoadState.NONE; @@ -569,6 +573,16 @@ public class GenshinPlayer { this.sendPacket(new PacketPrivateChatNotify(sender.getUid(), this.getUid(), message.toString())); } + public List getMail() { return mail; } + + public void sendMail(Mail message) { + + this.mail.add(message); + message._id = this.mail.size() + 1; + this.save(); + this.sendPacket(new PacketMailChangeNotify(this, message)); + } + public void interactWith(int gadgetEntityId) { GenshinEntity entity = getScene().getEntityById(gadgetEntityId); diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java new file mode 100644 index 000000000..2dc4ef688 --- /dev/null +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -0,0 +1,99 @@ +package emu.grasscutter.game; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; + +public class Mail { + + public int _id; + public MailContent mailContent; + public List itemList; + public long sendTime; + public long expireTime; + public int importance; + public boolean isRead; + public boolean isAttachmentGot; + public int stateValue; + + public Mail() { + _id = 1; + mailContent = new MailContent("No title set...", "No content set..."); + itemList = new ArrayList<>(); + sendTime = 0; + expireTime = 0; + importance = 1; + isRead = true; + isAttachmentGot = true; + stateValue = 1; + } + + public Mail(MailContent mailContent, List itemList, long expireTime) { + this(mailContent, itemList, expireTime, 1); + } + + public Mail(MailContent mailContent, List itemList, long expireTime, int importance) { + this(mailContent, itemList, expireTime, importance, 1); + } + + public Mail(MailContent mailContent, List itemList, long expireTime, int importance, int state) { + this(0, mailContent, itemList, expireTime, importance, state); + } + + public Mail(int _id, MailContent mailContent, List itemList, long expireTime, int importance, int state) { + this._id = _id; + this.mailContent = mailContent; + this.itemList = itemList; + this.sendTime = (int) Instant.now().EPOCH.getEpochSecond(); + this.expireTime = expireTime; + this.importance = importance; + this.isRead = false; + this.isAttachmentGot = false; + this.stateValue = state; + } + + public static class MailContent { + public String title; + public String content; + public String sender; + + public MailContent() { + this.title = ""; + this.content = "loading..."; + this.sender = "loading"; + } + + public MailContent(String title, String content) { + this(title, content, "Server"); + } + + public MailContent(String title, String content, GenshinPlayer sender) { + this(title, content, sender.getNickname()); + } + + public MailContent(String title, String content, String sender) { + this.title = title; + this.content = content; + this.sender = sender; + } + } + + public static class MailItem { + public int itemId; + public int itemCount; + + public MailItem() { + this.itemId = 11101; + this.itemCount = 1; + } + + public MailItem(int itemId) { + this(itemId, 1); + } + + public MailItem(int itemId, int itemCount) { + this.itemId = itemId; + this.itemCount = itemCount; + } + } +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index 82a567d67..00cd263b9 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -3,15 +3,16 @@ package emu.grasscutter.server.packet.send; import com.google.gson.Gson; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Mail; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; -import emu.grasscutter.net.proto.DateTimeDeleteOuterClass; +import emu.grasscutter.net.proto.*; import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; -import emu.grasscutter.net.proto.ItemParamOuterClass; import emu.grasscutter.net.proto.MailDataOuterClass.MailData; -import emu.grasscutter.net.proto.MailItemOuterClass; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; -import emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass; + +import java.util.ArrayList; +import java.util.List; public class PacketGetAllMailRsp extends GenshinPacket { @@ -21,33 +22,43 @@ public class PacketGetAllMailRsp extends GenshinPacket { GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); + List mailDataList = new ArrayList(); + // Dummy data. - MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); - mailTextContent.setTitle("Hello Traveller.."); - mailTextContent.setContent("You've called me emergency food for the last time. \n Get ready to die!"); - mailTextContent.setSender("P·A·I·M·O·N"); + for(Mail message : player.getMail()) { + MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + List mailItems = new ArrayList(); - itemParam.setItemId(1062); - itemParam.setCount(1); - mailItem.setItemParam(itemParam.build()); + for(Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); - MailData.Builder mailData = MailData.newBuilder(); - mailData.setMailId(100); - mailData.setMailTextContent(mailTextContent.build()); - mailData.addItemList(mailItem.build()); - mailData.setSendTime(1634100481); - mailData.setExpireTime(1664498747); - mailData.setImportance(1); - mailData.setIsRead(false); - mailData.setIsAttachmentGot(false); - mailData.setStateValue(1); + mailItems.add(mailItem.build()); + } - proto.addMailList(mailData.build()); - proto.addMailList(mailData.setMailId(101).build()); - proto.setIsTruncated(true); + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(message._id); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int)message.sendTime); + mailData.setExpireTime((int)message.expireTime); + mailData.setImportance(message.importance); + mailData.setIsRead(message.isRead); + mailData.setIsAttachmentGot(message.isAttachmentGot); + mailData.setStateValue(message.stateValue); + + mailDataList.add(mailData.build()); + } + + proto.addAllMailList(mailDataList); + //proto.setIsTruncated(true); Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java index bedd191e1..a0bdc5c3e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -2,42 +2,48 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Mail; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.*; +import java.util.ArrayList; import java.util.List; public class PacketMailChangeNotify extends GenshinPacket { - public PacketMailChangeNotify(GenshinPlayer player) { + public PacketMailChangeNotify(GenshinPlayer player, Mail message) { super(PacketOpcodes.MailChangeNotify); MailChangeNotifyOuterClass.MailChangeNotify.Builder proto = MailChangeNotifyOuterClass.MailChangeNotify.newBuilder(); - // Dummy data. MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); - mailTextContent.setTitle("System Message"); - mailTextContent.setContent("I'm going to kill you..."); - mailTextContent.setSender("YOU"); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + List mailItems = new ArrayList(); - itemParam.setItemId(1062); - itemParam.setCount(1); - mailItem.setItemParam(itemParam.build()); + for(Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); + + mailItems.add(mailItem.build()); + } MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(100); + mailData.setMailId(message._id); mailData.setMailTextContent(mailTextContent.build()); - mailData.addItemList(mailItem.build()); - mailData.setSendTime(1634100481); - mailData.setExpireTime(1664498747); - mailData.setImportance(1); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int)message.sendTime); + mailData.setExpireTime((int)message.expireTime); + mailData.setImportance(message.importance); mailData.setIsRead(false); mailData.setIsAttachmentGot(false); - mailData.setStateValue(1); + mailData.setStateValue(message.stateValue); proto.addMailList(mailData.build()); From 30bc3a8ad155447f7529a71e10c9f935eb2be909 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Sun, 24 Apr 2022 18:17:08 +0800 Subject: [PATCH 15/40] Java-16 compatiable mail system (whoops) --- src/main/java/emu/grasscutter/game/Mail.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 2dc4ef688..9511bdb63 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -1,9 +1,12 @@ package emu.grasscutter.game; +import dev.morphia.annotations.Entity; + import java.time.Instant; import java.util.ArrayList; import java.util.List; +@Entity public class Mail { public int _id; @@ -52,6 +55,7 @@ public class Mail { this.stateValue = state; } + @Entity public static class MailContent { public String title; public String content; @@ -78,6 +82,7 @@ public class Mail { } } + @Entity public static class MailItem { public int itemId; public int itemCount; From 4e3a1c769f7cb4e365f601ac321b9385a3e12e24 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Sun, 24 Apr 2022 19:06:52 +0800 Subject: [PATCH 16/40] THE MAILBOX ACTUALLY WORKS CORRECTLY NOW --- src/main/java/emu/grasscutter/game/Mail.java | 2 +- .../packet/send/PacketGetAllMailRsp.java | 101 +++++++++++------- 2 files changed, 63 insertions(+), 40 deletions(-) diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 9511bdb63..0eb377eac 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -47,7 +47,7 @@ public class Mail { this._id = _id; this.mailContent = mailContent; this.itemList = itemList; - this.sendTime = (int) Instant.now().EPOCH.getEpochSecond(); + this.sendTime = (int) Instant.now().getEpochSecond(); this.expireTime = expireTime; this.importance = importance; this.isRead = false; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index 00cd263b9..43f57df12 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -11,7 +11,9 @@ import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; import emu.grasscutter.net.proto.MailDataOuterClass.MailData; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; +import javax.swing.*; import java.util.ArrayList; +import java.util.Base64; import java.util.List; public class PacketGetAllMailRsp extends GenshinPacket { @@ -20,48 +22,69 @@ public class PacketGetAllMailRsp extends GenshinPacket { super(PacketOpcodes.GetAllMailRsp); Grasscutter.getLogger().info(String.valueOf(isGiftMail)); - GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); - - List mailDataList = new ArrayList(); - - // Dummy data. - for(Mail message : player.getMail()) { - MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); - mailTextContent.setTitle(message.mailContent.title); - mailTextContent.setContent(message.mailContent.content); - mailTextContent.setSender(message.mailContent.sender); - - List mailItems = new ArrayList(); - - for(Mail.MailItem item : message.itemList) { - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); - itemParam.setItemId(item.itemId); - itemParam.setCount(item.itemCount); - mailItem.setItemParam(itemParam.build()); - - mailItems.add(mailItem.build()); + if (isGiftMail) { + // TODO: Gift Mail + // Make sure to send the stupid empty packet + Base64.Decoder decoder = Base64.getDecoder(); + byte[] rsp = decoder.decode("IAE="); + try { + GetAllMailRsp var = GetAllMailRsp.parseFrom(rsp); + this.setData(var.toBuilder().build()); + } catch (Exception e) { } - MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(message._id); - mailData.setMailTextContent(mailTextContent.build()); - mailData.addAllItemList(mailItems); - mailData.setSendTime((int)message.sendTime); - mailData.setExpireTime((int)message.expireTime); - mailData.setImportance(message.importance); - mailData.setIsRead(message.isRead); - mailData.setIsAttachmentGot(message.isAttachmentGot); - mailData.setStateValue(message.stateValue); + } else { + if (player.getMail().size() != 0) { // Make sure the player has mail + GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); + List mailDataList = new ArrayList(); - mailDataList.add(mailData.build()); + for (Mail message : player.getMail()) { + if(message.stateValue == 1) { //Make sure it isn't a gift + MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); + + List mailItems = new ArrayList<>(); + + for (Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); + + mailItems.add(mailItem.build()); + } + + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(message._id); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int) message.sendTime); + mailData.setExpireTime((int) message.expireTime); + mailData.setImportance(message.importance); + mailData.setIsRead(message.isRead); + mailData.setIsAttachmentGot(message.isAttachmentGot); + mailData.setStateValue(1); + + mailDataList.add(mailData.build()); + } + } + + proto.addAllMailList(mailDataList); + proto.setIsTruncated(true); + + this.setData(proto.build()); + } else { + // Make sure to send the stupid empty packet + Base64.Decoder decoder = Base64.getDecoder(); + byte[] rsp = decoder.decode("IAE="); + try { + GetAllMailRsp var = GetAllMailRsp.parseFrom(rsp); + this.setData(var.toBuilder().build()); + } catch (Exception e) {} + } } - - proto.addAllMailList(mailDataList); - //proto.setIsTruncated(true); - - Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); - - this.setData(proto.build()); } } From ced5fc38be4d708bc6e052ef5b2dde2745edffc9 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 13:51:19 +0800 Subject: [PATCH 17/40] Receiving items in mail --- GM_Handbook.txt | 7544 +++++++++++++++++ .../command/commands/SendMailCommand.java | 2 +- .../emu/grasscutter/game/GenshinPlayer.java | 34 +- src/main/java/emu/grasscutter/game/Mail.java | 4 + .../packet/recv/HandlerGetAllMailReq.java | 1 - .../packet/recv/HandlerGetMailItemReq.java | 1 - .../packet/send/PacketGetAllMailRsp.java | 13 +- .../packet/send/PacketGetMailItemRsp.java | 45 +- .../packet/send/PacketMailChangeNotify.java | 63 +- 9 files changed, 7662 insertions(+), 45 deletions(-) create mode 100644 GM_Handbook.txt diff --git a/GM_Handbook.txt b/GM_Handbook.txt new file mode 100644 index 000000000..f1518816a --- /dev/null +++ b/GM_Handbook.txt @@ -0,0 +1,7544 @@ +// Genshin Impact 2.6.0 GM Handbook +// Created 2022/04/17 18:28:03 + + +// Avatars +10000001 : Kate +10000002 : Kamisato Ayaka +10000003 : Jean +10000005 : Traveler +10000006 : Lisa +10000007 : Traveler +10000014 : Barbara +10000015 : Kaeya +10000016 : Diluc +10000020 : Razor +10000021 : Amber +10000022 : Venti +10000023 : Xiangling +10000024 : Beidou +10000025 : Xingqiu +10000026 : Xiao +10000027 : Ningguang +10000029 : Klee +10000030 : Zhongli +10000031 : Fischl +10000032 : Bennett +10000033 : Tartaglia +10000034 : Noelle +10000035 : Qiqi +10000036 : Chongyun +10000037 : Ganyu +10000038 : Albedo +10000039 : Diona +10000041 : Mona +10000042 : Keqing +10000043 : Sucrose +10000044 : Xinyan +10000045 : Rosaria +10000046 : Hu Tao +10000047 : Kaedehara Kazuha +10000048 : Yanfei +10000049 : Yoimiya +10000050 : Thoma +10000051 : Eula +10000052 : Raiden Shogun +10000053 : Sayu +10000054 : Sangonomiya Kokomi +10000055 : Gorou +10000056 : Kujou Sara +10000057 : Arataki Itto +10000058 : Yae Miko +10000062 : Aloy +10000063 : Shenhe +10000064 : Yun Jin +10000066 : Kamisato Ayato +11000008 : Party Test #4 +11000009 : Background Test +11000010 : Naked Model #1 +11000011 : Naked Man +11000013 : Co-Op Test +11000017 : Adult Male Body Test +11000018 : Adult Female Body Test +11000019 : Girl Body Test +11000025 : Akuliya +11000026 : Yaoyao +11000027 : Girl Body Test - #2 Machine +11000028 : Shiro Maiden +11000030 : Greatsword Maiden +11000031 : Late Weapon Test A +11000032 : Late Weapon Test B +11000033 : Late Weapon Test C +11000034 : Late Weapon Test D +11000035 : Lance Warrioress +11000036 : Swordswoman Test +11000037 : Rx White-Box +11000038 : Boy Body Test +11000039 : Adult Male Body Test +11000040 : Female Lead New Normal Attack +11000041 : Male Lead New Normal Attack +11000042 : Chongyun (Test) +11000043 : Test Character +11000044 : Qiqi (Test) +11000045 : Diona (Test) + +// Items +101 : Character EXP +102 : Adventure EXP +103 : Stardust +104 : Starglitter +105 : Companionship EXP +106 : Original Resin +107 : Story Key +108 : +109 : Fading Star's Might +110 : Fading Star's Essence +111 : Glimmering Essence +112 : Warm Essence +113 : Miraculous Essence +114 : Iron Coin +115 : Peace Talisman +116 : Festive Fever +117 : Veneficus Sigil +118 : Festive Tour Ticket +119 : Peculiar Collab Coupon +120 : Heart of the Spring +121 : Trust +122 : Fractured Fruit Data +123 : Windtrace Coins +124 : Shiny Flotsam +125 : Mini "Harpastum" +126 : Enigma Gear +127 : Thunder Pellet +128 : Thunder Crystal +129 : Mechanicus Mastery EXP +130 : Wondrous Talisman +131 : Moonchase Festival Festive Fever +132 : Battered Shikifuda +133 : Damaged Replica +134 : Aged Token +135 : Snowstrider Seal +136 : Vanquisher's Emblem +137 : Affluence Talisman +138 : Immaculate Talisman +139 : Conquest Talisman +201 : Primogem +202 : Mora +203 : Genesis Crystal +204 : Realm Currency +210 : Original Essence (Invalidated) +211 : Original Resin (Invalidated) +221 : Masterless Starglitter +222 : Masterless Stardust +223 : Intertwined Fate +224 : Acquaint Fate +301 : Pyro Sigil +302 : Hydro Sigil +303 : Dendro Sigil +304 : Electro Sigil +305 : Anemo Sigil +306 : Cryo Sigil +307 : Geo Sigil +314 : Inazuma Reputation EXP +315 : Mondstadt Reputation EXP +317 : Liyue Reputation EXP +911 : Memory of Eternal Flames +912 : Memory of Running Stream +913 : Memory of Flourishing Green +914 : Memory of Violet Flash +915 : Memory of Roving Gales +916 : Memory of Piercing Frost +917 : Memory of Immovable Crystals +1002 : Kamisato Ayaka +1003 : Jean +1005 : Male Character +1006 : Lisa +1007 : Female Lead +1014 : Barbara +1015 : Kaeya +1016 : Diluc +1020 : Razor +1021 : Amber +1022 : Venti +1023 : Xiangling +1024 : Beidou +1025 : Xingqiu +1026 : Xiao +1027 : Ningguang +1029 : Klee +1030 : Zhongli +1031 : Fischl +1032 : Bennett +1033 : Tartaglia +1034 : Noelle +1035 : Qiqi +1036 : Chongyun +1037 : Ganyu +1038 : Albedo +1039 : Diona +1041 : Mona +1042 : Keqing +1043 : Sucrose +1044 : Xinyan +1045 : Rosaria +1046 : Hu Tao +1047 : Kaedehara Kazuha +1048 : Yanfei +1049 : Yoimiya +1050 : Thoma +1051 : Eula +1052 : Raiden Shogun +1053 : Sayu +1054 : Sangonomiya Kokomi +1055 : Gorou +1056 : Kujou Sara +1057 : Arataki Itto +1058 : Yae Miko +1062 : Aloy +1063 : Shenhe +1064 : Yun Jin +1066 : Kamisato Ayato +1102 : Kamisato Ayaka's Stella Fortuna +1103 : Jean's Stella Fortuna +1105 : Traveler (Male)'s Stella Fortuna +1106 : Lisa's Stella Fortuna +1107 : Traveler (Female)'s Stella Fortuna +1114 : Barbara's Stella Fortuna +1115 : Kaeya's Stella Fortuna +1116 : Diluc's Stella Fortuna +1120 : Razor's Stella Fortuna +1121 : Amber's Stella Fortuna +1122 : Venti's Stella Fortuna +1123 : Xiangling's Stella Fortuna +1124 : Beidou's Stella Fortuna +1125 : Xingqiu's Stella Fortuna +1126 : Xiao's Stella Fortuna +1127 : Ningguang's Stella Fortuna +1129 : Klee's Stella Fortuna +1130 : Zhongli's Stella Fortuna +1131 : Fischl's Stella Fortuna +1132 : Bennett's Stella Fortuna +1133 : Tartaglia's Stella Fortuna +1134 : Noelle's Stella Fortuna +1135 : Qiqi's Stella Fortuna +1136 : Chongyun's Stella Fortuna +1137 : Ganyu's Stella Fortuna +1138 : Albedo's Stella Fortuna +1139 : Diona's Stella Fortuna +1141 : Mona's Stella Fortuna +1142 : Keqing's Stella Fortuna +1143 : Sucrose's Stella Fortuna +1144 : Xinyan's Stella Fortuna +1145 : Rosaria's Stella Fortuna +1146 : Hu Tao's Stella Fortuna +1147 : Kaedehara Kazuha's Stella Fortuna +1148 : Yanfei's Stella Fortuna +1149 : Yoimiya's Stella Fortuna +1150 : Thoma's Stella Fortuna +1151 : Eula's Stella Fortuna +1152 : Raiden Shogun's Stella Fortuna +1153 : Sayu's Stella Fortuna +1154 : Sangonomiya Kokomi's Stella Fortuna +1155 : Gorou's Stella Fortuna +1156 : Kujou Sara's Stella Fortuna +1157 : Arataki Itto's Stella Fortuna +1158 : Yae Miko's Stella Fortuna +1162 : Aloy's Stella Fortuna +1163 : Shenhe's Stella Fortuna +1164 : Yun Jin's Stella Fortuna +1166 : Kamisato Ayato's Stella Fortuna +1201 : Gnostic Hymn - Old Notes +1202 : Blessing of the Welkin Moon - New Moon +2001 : Energy Orb (Pyro) +2002 : Energy Orb (Hydro) +2003 : Energy Orb (Dendro) +2004 : Energy Orb (Electro) +2005 : Energy Orb (Anemo) +2006 : Energy Orb (Cryo) +2007 : Energy Orb (Geo) +2008 : Energy Orb (Any) +2017 : Atomic Energy Orb (Pyro) +2018 : Atomic Energy Orb (Hydro) +2019 : Atomic Energy Orb (Dendro) +2020 : Atomic Energy Orb (Electro) +2021 : Atomic Energy Orb (Anemo) +2022 : Atomic Energy Orb (Cryo) +2023 : Atomic Energy Orb (Geo) +2024 : Atomic Energy Orb (All) +2025 : Quest Use - Overpowered Atomic Energy Orb (All) +2026 : Time Shard (Minigame item) +2027 : Time Shard (Minigame item) +2028 : Quest Use - Atomic Energy Orb Pouch +2029 : Quest Use - Atomic Energy Orb Pouch +2800 : +3001 : Test Random Treasure Chest +3002 : Test Set Treasure Chest +3003 : Character Card Draw +3004 : Kamisato Ayaka - for CB1 +3005 : Xiangling - for CB1 +3006 : Jean - for CB1 +3007 : Diluc - for CB1 +3008 : Venti - for CB1 +3009 : Kamisato Ayaka Test Package +3010 : Xiangling Test Package +3011 : Jean Test Package +3012 : Diluc Test Package +3013 : Venti Test Package +3014 : Amber Test Package +3015 : Kaeya Test Package +3016 : Lisa Test Package +3017 : Barbara Test Package +3018 : Barbara - for CB1 +3019 : Razor - for CB1 +3020 : Razor Test Package +3021 : Kaeya +3022 : Lisa +10002 : +10003 : +10004 : +10005 : +10006 : +10008 : +11101 : Dull Blade +11201 : Silver Sword +11301 : Cool Steel +11302 : Harbinger of Dawn +11303 : Traveler's Handy Sword +11304 : Dark Iron Sword +11305 : Fillet Blade +11306 : Skyrider Sword +11401 : Favonius Sword +11402 : The Flute +11403 : Sacrificial Sword +11404 : Royal Longsword +11405 : Lion's Roar +11406 : Prototype Rancour +11407 : Iron Sting +11408 : Blackcliff Longsword +11409 : The Black Sword +11410 : The Alley Flash +11411 : +11412 : Sword of Descension +11413 : Festering Desire +11414 : Amenoma Kageuchi +11415 : Cinnabar Spindle +11501 : Aquila Favonia +11502 : Skyward Blade +11503 : Freedom-Sworn +11504 : Summit Shaper +11505 : Primordial Jade Cutter +11506 : Primordial Jade Cutter +11507 : One Side +11508 : +11509 : Mistsplitter Reforged +11510 : Haran Geppaku Futsu +12101 : Waster Greatsword +12201 : Old Merc's Pal +12301 : Ferrous Shadow +12302 : Bloodtainted Greatsword +12303 : White Iron Greatsword +12304 : Quartz +12305 : Debate Club +12306 : Skyrider Greatsword +12401 : Favonius Greatsword +12402 : The Bell +12403 : Sacrificial Greatsword +12404 : Royal Greatsword +12405 : Rainslasher +12406 : Prototype Archaic +12407 : Whiteblind +12408 : Blackcliff Slasher +12409 : Serpent Spine +12410 : Lithic Blade +12411 : Snow-Tombed Starsilver +12412 : Luxurious Sea-Lord +12414 : Katsuragikiri Nagamasa +12416 : Akuoumaru +12501 : Skyward Pride +12502 : Wolf's Gravestone +12503 : Song of Broken Pines +12504 : The Unforged +12505 : Primordial Jade Greatsword +12506 : The Other Side +12508 : +12509 : +12510 : Redhorn Stonethresher +13101 : Beginner's Protector +13201 : Iron Point +13301 : White Tassel +13302 : Halberd +13303 : Black Tassel +13304 : The Flagstaff +13401 : Dragon's Bane +13402 : Prototype Starglitter +13403 : Crescent Pike +13404 : Blackcliff Pole +13405 : Deathmatch +13406 : Lithic Spear +13407 : Favonius Lance +13408 : Royal Spear +13409 : Dragonspine Spear +13414 : Kitain Cross Spear +13415 : "The Catch" +13416 : Wavebreaker's Fin +13501 : Staff of Homa +13502 : Skyward Spine +13503 : +13504 : Vortex Vanquisher +13505 : Primordial Jade Winged-Spear +13506 : Deicide +13507 : Calamity Queller +13509 : Engulfing Lightning +14101 : Apprentice's Notes +14201 : Pocket Grimoire +14301 : Magic Guide +14302 : Thrilling Tales of Dragon Slayers +14303 : Otherworldly Story +14304 : Emerald Orb +14305 : Twin Nephrite +14306 : Amber Bead +14401 : Favonius Codex +14402 : The Widsith +14403 : Sacrificial Fragments +14404 : Royal Grimoire +14405 : Solar Pearl +14406 : Prototype Amber +14407 : Mappa Mare +14408 : Blackcliff Agate +14409 : Eye of Perception +14410 : Wine and Song +14411 : +14412 : Frostbearer +14413 : Dodoco Tales +14414 : Hakushin Ring +14415 : Oathsworn Eye +14501 : Skyward Atlas +14502 : Lost Prayer to the Sacred Winds +14503 : Lost Ballade +14504 : Memory of Dust +14505 : Primordial Jade Regalia +14506 : Everlasting Moonglow +14508 : +14509 : Kagura's Verity +15101 : Hunter's Bow +15201 : Seasoned Hunter's Bow +15301 : Raven Bow +15302 : Sharpshooter's Oath +15303 : Recurve Bow +15304 : Slingshot +15305 : Messenger +15306 : Ebony Bow +15401 : Favonius Warbow +15402 : The Stringless +15403 : Sacrificial Bow +15404 : Royal Bow +15405 : Rust +15406 : Prototype Crescent +15407 : Compound Bow +15408 : Blackcliff Warbow +15409 : The Viridescent Hunt +15410 : Alley Hunter +15411 : +15412 : Mitternachts Waltz +15413 : Windblume Ode +15414 : Hamayumi +15415 : Predator +15416 : Mouun's Moon +15501 : Skyward Harp +15502 : Amos' Bow +15503 : Elegy for the End +15504 : Kunwu's Wyrmbane +15505 : Primordial Jade Vista +15506 : Mirror Breaker +15507 : Polar Star +15508 : +15509 : Thundering Pulse +20001 : +20002 : Initiate's Feather +20004 : Initiate's Flower +23300 : +23301 : +23302 : +23303 : +23304 : +23305 : +23306 : +23307 : +23308 : +23309 : +23310 : +23311 : +23312 : +23313 : +23314 : +23315 : +23316 : +23317 : +23318 : +23331 : +23332 : +23334 : +23335 : +23336 : +23337 : +23338 : +23339 : +23340 : +23341 : Bloodstained Chevalier's Goblet +23342 : Bloodstained Black Plume +23343 : Bloodstained Iron Mask +23344 : Bloodstained Flower of Iron +23345 : Bloodstained Final Hour +23346 : Bloodstained Chevalier's Goblet +23347 : Bloodstained Black Plume +23348 : Bloodstained Iron Mask +23349 : Bloodstained Flower of Iron +23350 : Bloodstained Final Hour +23351 : Royal Silver Urn +23352 : Royal Plume +23353 : Royal Masque +23354 : Royal Flora +23355 : Royal Pocket Watch +23356 : Royal Silver Urn +23357 : Royal Plume +23358 : Royal Masque +23359 : Royal Flora +23360 : Royal Pocket Watch +23361 : Witch's Heart Flames +23362 : Witch's Ever-Burning Plume +23363 : Witch's Scorching Hat +23364 : Witch's Flower of Blaze +23365 : Witch's End Time +23366 : Witch's Heart Flames +23367 : Witch's Ever-Burning Plume +23368 : Witch's Scorching Hat +23369 : Witch's Flower of Blaze +23370 : Witch's End Time +23371 : Omen of Thunderstorm +23372 : Survivor of Catastrophe +23373 : Thunder Summoner's Crown +23374 : Thunderbird's Mercy +23375 : Hourglass of Thunder +23376 : Omen of Thunderstorm +23377 : Survivor of Catastrophe +23378 : Thunder Summoner's Crown +23379 : Thunderbird's Mercy +23380 : Hourglass of Thunder +23381 : Goblet of Aquilo +23382 : Plume of Snow +23383 : Crown of Glacier +23384 : Heart of Frost +23385 : Glacial Sand +23386 : Goblet of Aquilo +23387 : Plume of Snow +23388 : Crown of Glacier +23389 : Heart of Frost +23390 : Glacial Sand +23391 : Wanderer's String-Kettle +23392 : Bard's Arrow Feather +23393 : Conductor's Top Hat +23394 : Troupe's Dawnlight +23395 : Concert's Final Hour +23396 : Wanderer's String-Kettle +23397 : Bard's Arrow Feather +23398 : Conductor's Top Hat +23399 : Troupe's Dawnlight +23400 : Concert's Final Hour +23401 : Viridescent Venerer's Vessel +23402 : Viridescent Arrow Feather +23403 : Viridescent Venerer's Diadem +23404 : In Remembrance of Viridescent Fields +23405 : Viridescent Venerer's Determination +23406 : Viridescent Venerer's Vessel +23407 : Viridescent Arrow Feather +23408 : Viridescent Venerer's Diadem +23409 : Viridescent Venerer's Determination +23410 : Viridescent Venerer's Determination +23411 : Gladiator's Intoxication +23412 : Gladiator's Destiny +23413 : Gladiator's Triumphus +23414 : Gladiator's Nostalgia +23415 : Gladiator's Longing +23416 : Gladiator's Intoxication +23417 : Gladiator's Destiny +23418 : Gladiator's Triumphus +23419 : Gladiator's Nostalgia +23420 : Gladiator's Longing +23421 : Maiden's Fleeting Leisure +23422 : Maiden's Heart-stricken Infatuation +23423 : Maiden's Fading Beauty +23424 : Maiden's Distant Love +23425 : Maiden's Passing Youth +23426 : Maiden's Fleeting Leisure +23427 : Maiden's Heart-stricken Infatuation +23428 : Maiden's Fading Beauty +23429 : Maiden's Distant Love +23430 : Maiden's Passing Youth +23431 : Lavawalker's Epiphany +23432 : Lavawalker's Salvation +23433 : Lavawalker's Wisdom +23434 : Lavawalker's Resolution +23435 : Lavawalker's Torment +23436 : Lavawalker's Epiphany +23437 : Lavawalker's Salvation +23438 : Lavawalker's Wisdom +23439 : Lavawalker's Resolution +23440 : Lavawalker's Torment +23441 : Thundersoother's Goblet +23442 : Thundersoother's Plume +23443 : Thundersoother's Diadem +23444 : Thundersoother's Heart +23445 : Hour of Soothing Thunder +23446 : Thundersoother's Goblet +23447 : Thundersoother's Plume +23448 : Thundersoother's Diadem +23449 : Thundersoother's Heart +23450 : Hour of Soothing Thunder +23451 : Frost-Weaved Dignity +23452 : Icebreaker's Resolve +23453 : Broken Rime's Echo +23454 : Snowswept Memory +23455 : Frozen Homeland's Demise +23456 : Frost-Weaved Dignity +23457 : Icebreaker's Resolve +23458 : Broken Rime's Echo +23459 : Snowswept Memory +23460 : Frozen Homeland's Demise +23461 : Maiden's Fleeting Leisure +23462 : Maiden's Heart-stricken Infatuation +23463 : Maiden's Fading Beauty +23464 : Maiden's Distant Love +23465 : Maiden's Passing Youth +23466 : Maiden's Fleeting Leisure +23467 : Maiden's Heart-stricken Infatuation +23468 : Maiden's Fading Beauty +23469 : Maiden's Distant Love +23470 : Maiden's Passing Youth +23471 : Maiden's Fleeting Leisure +23472 : Maiden's Heart-stricken Infatuation +23473 : Maiden's Fading Beauty +23474 : Maiden's Distant Love +23475 : Maiden's Passing Youth +23476 : Maiden's Fleeting Leisure +23477 : Maiden's Heart-stricken Infatuation +23478 : Maiden's Fading Beauty +23479 : Maiden's Distant Love +23480 : Maiden's Passing Youth +23481 : Guardian's Vessel +23482 : Guardian's Sigil +23483 : Guardian's Band +23484 : Guardian's Flower +23485 : Guardian's Clock +23486 : Guardian's Vessel +23487 : Guardian's Sigil +23488 : Guardian's Band +23489 : Guardian's Flower +23490 : Guardian's Clock +23491 : Goblet of Chiseled Crag +23492 : Feather of Jagged Peaks +23493 : Mask of Solitude Basalt +23494 : Flower of Creviced Cliff +23495 : Sundial of Enduring Jade +23496 : Goblet of Chiseled Crag +23497 : Feather of Jagged Peaks +23498 : Mask of Solitude Basalt +23499 : Flower of Creviced Cliff +23500 : Sundial of Enduring Jade +23501 : Summer Night's Waterballoon +23502 : Summer Night's Finale +23503 : Summer Night's Mask +23504 : Summer Night's Bloom +23505 : Summer Night's Moment +23506 : Summer Night's Waterballoon +23507 : Summer Night's Finale +23508 : Summer Night's Mask +23509 : Summer Night's Bloom +23510 : Summer Night's Moment +23511 : Instructor's Tea Cup +23512 : Instructor's Feather Accessory +23513 : Instructor's Cap +23514 : Instructor's Brooch +23515 : Instructor's Pocket Watch +23516 : Instructor's Tea Cup +23517 : Instructor's Feather Accessory +23518 : Instructor's Cap +23519 : Instructor's Brooch +23520 : Instructor's Pocket Watch +23521 : Berserker's Bone Goblet +23522 : Berserker's Indigo Feather +23523 : Berserker's Battle Mask +23524 : Berserker's Rose +23525 : Berserker's Timepiece +23526 : Berserker's Bone Goblet +23527 : Berserker's Indigo Feather +23528 : Berserker's Battle Mask +23529 : Berserker's Rose +23530 : Berserker's Timepiece +23531 : Goblet of Thundering Deep +23532 : Gust of Nostalgia +23533 : Wine-Stained Tricorne +23534 : Gilded Corsage +23535 : Copper Compass +23536 : Goblet of Thundering Deep +23537 : Wine-Stained Tricorne +23538 : Wine-Stained Tricorne +23539 : Gilded Corsage +23540 : Copper Compass +23541 : Noble's Pledging Vessel +23542 : Ceremonial War-Plume +23543 : General's Ancient Helm +23544 : Flower of Accolades +23545 : Orichalceous Time-Dial +23546 : Noble's Pledging Vessel +23547 : Ceremonial War-Plume +23548 : General's Ancient Helm +23549 : Flower of Accolades +23550 : Orichalceous Time-Dial +23551 : Surpassing Cup +23552 : Wise Doctor's Pinion +23553 : Mocking Mask +23554 : Stainless Bloom +23555 : Moment of Cessation +23556 : Surpassing Cup +23557 : Wise Doctor's Pinion +23558 : Mocking Mask +23559 : Stainless Bloom +23560 : Moment of Cessation +23561 : Hopeful Heart +23562 : Shaft of Remembrance +23563 : Capricious Visage +23564 : Entangling Bloom +23565 : Morning Dew's Moment +23566 : Hopeful Heart +23567 : Shaft of Remembrance +23568 : Capricious Visage +23569 : Entangling Bloom +23570 : Morning Dew's Moment +23571 : Scarlet Vessel +23572 : Sundered Feather +23573 : Ornate Kabuto +23574 : Magnificent Tsuba +23575 : Storm Cage +23576 : Scarlet Vessel +23577 : Sundered Feather +23578 : Ornate Kabuto +23579 : Magnificent Tsuba +23580 : Storm Cage +23581 : Calabash of Awakening +23582 : Plume of Luxury +23583 : Skeletal Hat +23584 : Bloom Times +23585 : Song of Life +23586 : Calabash of Awakening +23587 : Plume of Luxury +23588 : Skeletal Hat +23589 : Bloom Times +23590 : Song of Life +23591 : Pearl Cage +23592 : Deep Palace's Plume +23593 : Crown of Watatsumi +23594 : Sea-Dyed Blossom +23595 : Cowry of Parting +23596 : Pearl Cage +23597 : Deep Palace's Plume +23598 : Crown of Watatsumi +23599 : Sea-Dyed Blossom +23600 : Cowry of Parting +23601 : Moment of the Pact +23602 : Feather of Nascent Light +23603 : Thundering Poise +23604 : Flowering Life +23605 : Solar Relic +23606 : Moment of the Pact +23607 : Feather of Nascent Light +23608 : Thundering Poise +23609 : Flowering Life +23610 : Solar Relic +23611 : Chalice of the Font +23612 : Jade Leaf +23613 : Flowing Rings +23614 : Soulscent Bloom +23615 : Symbol of Felicitation +23616 : Chalice of the Font +23617 : Jade Leaf +23618 : Flowing Rings +23619 : Soulscent Bloom +23620 : Symbol of Felicitation +24101 : Gladiator's Intoxication +24102 : Gladiator's Destiny +24103 : Ornate Kabuto +24104 : Magnificent Tsuba +24105 : Storm Cage +24111 : Witch's Heart Flames +24112 : Witch's Ever-Burning Plume +24113 : Witch's Scorching Hat +24114 : Witch's Flower of Blaze +24115 : Witch's End Time +24121 : Viridescent Venerer's Vessel +24122 : Viridescent Arrow Feather +24123 : Gladiator's Triumphus +24124 : Gladiator's Nostalgia +24125 : Gladiator's Longing +24131 : Frost-Weaved Dignity +24132 : Icebreaker's Resolve +24133 : Broken Rime's Echo +24134 : Snowswept Memory +24135 : Frozen Homeland's Demise +24141 : Viridescent Venerer's Vessel +24142 : Viridescent Arrow Feather +24143 : Viridescent Venerer's Diadem +24144 : In Remembrance of Viridescent Fields +24145 : Viridescent Venerer's Determination +24151 : Surpassing Cup +24152 : Wise Doctor's Pinion +24153 : Mocking Mask +24154 : Stainless Bloom +24155 : Moment of Cessation +24161 : Goblet of Thundering Deep +24162 : Gust of Nostalgia +24163 : Wine-Stained Tricorne +24164 : Gilded Corsage +24165 : Copper Compass +24171 : Viridescent Venerer's Vessel +24172 : Viridescent Arrow Feather +24173 : Viridescent Venerer's Diadem +24174 : In Remembrance of Viridescent Fields +24175 : Viridescent Venerer's Determination +24181 : Frost-Weaved Dignity +24182 : Icebreaker's Resolve +24183 : Broken Rime's Echo +24184 : Snowswept Memory +24185 : Frozen Homeland's Demise +24191 : Hopeful Heart +24192 : Shaft of Remembrance +24193 : Capricious Visage +24194 : Entangling Bloom +24195 : Morning Dew's Moment +24201 : Scarlet Vessel +24202 : Sundered Feather +24203 : Ornate Kabuto +24204 : Magnificent Tsuba +24205 : Storm Cage +24211 : Goblet of Thundering Deep +24212 : Gust of Nostalgia +24213 : Wine-Stained Tricorne +24214 : Gilded Corsage +24215 : Copper Compass +24221 : Noble's Pledging Vessel +24222 : Ceremonial War-Plume +24223 : General's Ancient Helm +24224 : Flower of Accolades +24225 : Orichalceous Time-Dial +24231 : Witch's Heart Flames +24232 : Witch's Ever-Burning Plume +24233 : Witch's Scorching Hat +24234 : Witch's Flower of Blaze +24235 : Witch's End Time +24241 : Omen of Thunderstorm +24242 : Survivor of Catastrophe +24243 : Gladiator's Triumphus +24244 : Gladiator's Nostalgia +24245 : Gladiator's Longing +24251 : Witch's Heart Flames +24252 : Witch's Ever-Burning Plume +24253 : Witch's Scorching Hat +24254 : Witch's Flower of Blaze +24255 : Witch's End Time +24261 : Royal Silver Urn +24262 : Royal Plume +24263 : Royal Masque +24264 : Royal Flora +24265 : Royal Pocket Watch +24271 : Viridescent Venerer's Vessel +24272 : Viridescent Arrow Feather +24273 : Viridescent Venerer's Diadem +24274 : In Remembrance of Viridescent Fields +24275 : Viridescent Venerer's Determination +24281 : Maiden's Fleeting Leisure +24282 : Maiden's Heart-Stricken Infatuation +24283 : Maiden's Fading Beauty +24284 : Maiden's Distant Love +24285 : Maiden's Passing Youth +24291 : Calabash of Awakening +24292 : Plume of Luxury +24293 : Skeletal Hat +24294 : Bloom Times +24295 : Song of Life +24301 : Calabash of Awakening +24302 : Plume of Luxury +24303 : Skeletal Hat +24304 : Bloom Times +24305 : Song of Life +24311 : Scarlet Vessel +24312 : Sundered Feather +24313 : Ornate Kabuto +24314 : Magnificent Tsuba +24315 : Storm Cage +24321 : Gladiator's Intoxication +24322 : Gladiator's Destiny +24323 : Gladiator's Triumphus +24324 : Thunderbird's Mercy +24325 : Hourglass of Thunder +24331 : Gladiator's Intoxication +24332 : Gladiator's Destiny +24333 : Gladiator's Triumphus +24334 : Gladiator's Nostalgia +24335 : Gladiator's Longing +24341 : Gladiator's Intoxication +24342 : Gladiator's Destiny +24343 : Gladiator's Triumphus +24344 : Gladiator's Nostalgia +24345 : Gladiator's Longing +24351 : Gladiator's Intoxication +24352 : Gladiator's Destiny +24353 : Gladiator's Triumphus +24354 : Gladiator's Nostalgia +24355 : Gladiator's Longing +24361 : Gladiator's Intoxication +24362 : Gladiator's Destiny +24363 : Gladiator's Triumphus +24364 : Gladiator's Nostalgia +24365 : Gladiator's Longing +24601 : Scarlet Vessel +24602 : Sundered Feather +24603 : Ornate Kabuto +24604 : Magnificent Tsuba +24605 : Storm Cage +24611 : Scarlet Vessel +24612 : Sundered Feather +24613 : Ornate Kabuto +24614 : Magnificent Tsuba +24615 : Storm Cage +24621 : Scarlet Vessel +24622 : Sundered Feather +24623 : Ornate Kabuto +24624 : Magnificent Tsuba +24625 : Storm Cage +24631 : Royal Silver Urn +24632 : Royal Plume +24633 : Royal Masque +24634 : Royal Flora +24635 : Royal Pocket Watch +24641 : Royal Silver Urn +24642 : Royal Plume +24643 : Royal Masque +24644 : Royal Flora +24645 : Royal Pocket Watch +24651 : Viridescent Venerer's Vessel +24652 : Viridescent Arrow Feather +24653 : Viridescent Venerer's Diadem +24654 : In Remembrance of Viridescent Fields +24655 : Viridescent Venerer's Determination +24661 : Surpassing Cup +24662 : Wise Doctor's Pinion +24663 : Mocking Mask +24664 : Stainless Bloom +24665 : Moment of Cessation +24671 : Royal Silver Urn +24672 : Royal Plume +24673 : Royal Masque +24674 : Royal Flora +24675 : Royal Pocket Watch +24681 : Witch's Heart Flames +24682 : Witch's Ever-Burning Plume +24683 : Witch's Scorching Hat +24684 : Witch's Flower of Blaze +24685 : Witch's End Time +24691 : Viridescent Venerer's Vessel +24692 : Viridescent Arrow Feather +24693 : Viridescent Venerer's Diadem +24694 : In Remembrance of Viridescent Fields +24695 : Viridescent Venerer's Determination +24701 : Noble's Pledging Vessel +24702 : Ceremonial War-Plume +24703 : General's Ancient Helm +24704 : Flower of Accolades +24705 : Orichalceous Time-Dial +24711 : Bloodstained Chevalier's Goblet +24712 : Bloodstained Black Plume +24713 : Bloodstained Iron Mask +24714 : Bloodstained Flower of Iron +24715 : Bloodstained Final Hour +24721 : Omen of Thunderstorm +24722 : Survivor of Catastrophe +24723 : Thunder Summoner's Crown +24724 : Thunderbird's Mercy +24725 : Hourglass of Thunder +24731 : Scarlet Vessel +24732 : Sundered Feather +24733 : Ornate Kabuto +24734 : Magnificent Tsuba +24735 : Storm Cage +24741 : Gladiator's Intoxication +24742 : Gladiator's Destiny +24743 : Mask of Solitude Basalt +24744 : Flower of Creviced Cliff +24745 : Sundial of Enduring Jade +24751 : Gladiator's Intoxication +24752 : Gladiator's Destiny +24753 : Thunder Summoner's Crown +24754 : Thunderbird's Mercy +24755 : Hourglass of Thunder +24761 : Gladiator's Intoxication +24762 : Gladiator's Destiny +24763 : Gladiator's Triumphus +24764 : Gladiator's Nostalgia +24765 : Gladiator's Longing +24771 : Scarlet Vessel +24772 : Sundered Feather +24773 : Ornate Kabuto +24774 : Magnificent Tsuba +24775 : Storm Cage +24781 : Summer Night's Waterballoon +24782 : Summer Night's Finale +24783 : Summer Night's Mask +24784 : Summer Night's Bloom +24785 : Summer Night's Moment +24791 : Maiden's Fleeting Leisure +24792 : Maiden's Heart-Stricken Infatuation +24793 : Maiden's Fading Beauty +24794 : Maiden's Distant Love +24795 : Maiden's Passing Youth +24801 : Scarlet Vessel +24802 : Sundered Feather +24803 : Ornate Kabuto +24804 : Magnificent Tsuba +24805 : Storm Cage +24811 : Calabash of Awakening +24812 : Plume of Luxury +24813 : Skeletal Hat +24814 : Bloom Times +24815 : Song of Life +24821 : Calabash of Awakening +24822 : Plume of Luxury +24823 : Skeletal Hat +24824 : Bloom Times +24825 : Song of Life +51110 : Goblet of the Sojourner +51111 : Goblet of the Sojourner +51112 : Goblet of the Sojourner +51113 : Goblet of the Sojourner +51114 : Goblet of the Sojourner +51120 : Feather of Homecoming +51121 : Feather of Homecoming +51122 : Feather of Homecoming +51123 : Feather of Homecoming +51124 : Feather of Homecoming +51130 : Crown of Parting +51131 : Crown of Parting +51132 : Crown of Parting +51133 : Crown of Parting +51134 : Crown of Parting +51140 : Heart of Comradeship +51141 : Heart of Comradeship +51142 : Heart of Comradeship +51143 : Heart of Comradeship +51144 : Heart of Comradeship +51150 : Sundial of the Sojourner +51151 : Sundial of the Sojourner +51152 : Sundial of the Sojourner +51153 : Sundial of the Sojourner +51154 : Sundial of the Sojourner +51210 : Goblet of the Sojourner +51211 : Goblet of the Sojourner +51212 : Goblet of the Sojourner +51213 : Goblet of the Sojourner +51214 : Goblet of the Sojourner +51220 : Feather of Homecoming +51221 : Feather of Homecoming +51222 : Feather of Homecoming +51223 : Feather of Homecoming +51224 : Feather of Homecoming +51230 : Crown of Parting +51231 : Crown of Parting +51232 : Crown of Parting +51233 : Crown of Parting +51234 : Crown of Parting +51240 : Heart of Comradeship +51241 : Heart of Comradeship +51242 : Heart of Comradeship +51243 : Heart of Comradeship +51244 : Heart of Comradeship +51250 : Sundial of the Sojourner +51251 : Sundial of the Sojourner +51252 : Sundial of the Sojourner +51253 : Sundial of the Sojourner +51254 : Sundial of the Sojourner +51310 : Goblet of the Sojourner +51311 : Goblet of the Sojourner +51312 : Goblet of the Sojourner +51313 : Goblet of the Sojourner +51314 : Goblet of the Sojourner +51320 : Feather of Homecoming +51321 : Feather of Homecoming +51322 : Feather of Homecoming +51323 : Feather of Homecoming +51324 : Feather of Homecoming +51330 : Crown of Parting +51331 : Crown of Parting +51332 : Crown of Parting +51333 : Crown of Parting +51334 : Crown of Parting +51340 : Heart of Comradeship +51341 : Heart of Comradeship +51342 : Heart of Comradeship +51343 : Heart of Comradeship +51344 : Heart of Comradeship +51350 : Sundial of the Sojourner +51351 : Sundial of the Sojourner +51352 : Sundial of the Sojourner +51353 : Sundial of the Sojourner +51354 : Sundial of the Sojourner +51410 : Goblet of the Sojourner +51411 : Goblet of the Sojourner +51412 : Goblet of the Sojourner +51413 : Goblet of the Sojourner +51414 : Goblet of the Sojourner +51420 : Feather of Homecoming +51421 : Feather of Homecoming +51422 : Feather of Homecoming +51423 : Feather of Homecoming +51424 : Feather of Homecoming +51430 : Crown of Parting +51431 : Crown of Parting +51432 : Crown of Parting +51433 : Crown of Parting +51434 : Crown of Parting +51440 : Heart of Comradeship +51441 : Heart of Comradeship +51442 : Heart of Comradeship +51443 : Heart of Comradeship +51444 : Heart of Comradeship +51450 : Sundial of the Sojourner +51451 : Sundial of the Sojourner +51452 : Sundial of the Sojourner +51453 : Sundial of the Sojourner +51454 : Sundial of the Sojourner +51510 : Goblet of the Sojourner +51511 : Goblet of the Sojourner +51512 : Goblet of the Sojourner +51513 : Goblet of the Sojourner +51514 : Goblet of the Sojourner +51520 : Feather of Homecoming +51521 : Feather of Homecoming +51522 : Feather of Homecoming +51523 : Feather of Homecoming +51524 : Feather of Homecoming +51530 : Crown of Parting +51531 : Crown of Parting +51532 : Crown of Parting +51533 : Crown of Parting +51534 : Crown of Parting +51540 : Heart of Comradeship +51541 : Heart of Comradeship +51542 : Heart of Comradeship +51543 : Heart of Comradeship +51544 : Heart of Comradeship +51550 : Sundial of the Sojourner +51551 : Sundial of the Sojourner +51552 : Sundial of the Sojourner +51553 : Sundial of the Sojourner +51554 : Sundial of the Sojourner +52110 : Outset of the Brave +52111 : Outset of the Brave +52112 : Outset of the Brave +52113 : Outset of the Brave +52114 : Outset of the Brave +52120 : Prospect of the Brave +52121 : Prospect of the Brave +52122 : Prospect of the Brave +52123 : Prospect of the Brave +52124 : Prospect of the Brave +52130 : Crown of the Brave +52131 : Crown of the Brave +52132 : Crown of the Brave +52133 : Crown of the Brave +52134 : Crown of the Brave +52140 : Medal of the Brave +52141 : Medal of the Brave +52142 : Medal of the Brave +52143 : Medal of the Brave +52144 : Medal of the Brave +52150 : Fortitude of the Brave +52151 : Fortitude of the Brave +52152 : Fortitude of the Brave +52153 : Fortitude of the Brave +52154 : Fortitude of the Brave +52210 : Outset of the Brave +52211 : Outset of the Brave +52212 : Outset of the Brave +52213 : Outset of the Brave +52214 : Outset of the Brave +52220 : Prospect of the Brave +52221 : Prospect of the Brave +52222 : Prospect of the Brave +52223 : Prospect of the Brave +52224 : Prospect of the Brave +52230 : Crown of the Brave +52231 : Crown of the Brave +52232 : Crown of the Brave +52233 : Crown of the Brave +52234 : Crown of the Brave +52240 : Medal of the Brave +52241 : Medal of the Brave +52242 : Medal of the Brave +52243 : Medal of the Brave +52244 : Medal of the Brave +52250 : Fortitude of the Brave +52251 : Fortitude of the Brave +52252 : Fortitude of the Brave +52253 : Fortitude of the Brave +52254 : Fortitude of the Brave +52310 : Outset of the Brave +52311 : Outset of the Brave +52312 : Outset of the Brave +52313 : Outset of the Brave +52314 : Outset of the Brave +52320 : Prospect of the Brave +52321 : Prospect of the Brave +52322 : Prospect of the Brave +52323 : Prospect of the Brave +52324 : Prospect of the Brave +52330 : Crown of the Brave +52331 : Crown of the Brave +52332 : Crown of the Brave +52333 : Crown of the Brave +52334 : Crown of the Brave +52340 : Medal of the Brave +52341 : Medal of the Brave +52342 : Medal of the Brave +52343 : Medal of the Brave +52344 : Medal of the Brave +52350 : Fortitude of the Brave +52351 : Fortitude of the Brave +52352 : Fortitude of the Brave +52353 : Fortitude of the Brave +52354 : Fortitude of the Brave +52410 : Outset of the Brave +52411 : Outset of the Brave +52412 : Outset of the Brave +52413 : Outset of the Brave +52414 : Outset of the Brave +52420 : Prospect of the Brave +52421 : Prospect of the Brave +52422 : Prospect of the Brave +52423 : Prospect of the Brave +52424 : Prospect of the Brave +52430 : Crown of the Brave +52431 : Crown of the Brave +52432 : Crown of the Brave +52433 : Crown of the Brave +52434 : Crown of the Brave +52440 : Medal of the Brave +52441 : Medal of the Brave +52442 : Medal of the Brave +52443 : Medal of the Brave +52444 : Medal of the Brave +52450 : Fortitude of the Brave +52451 : Fortitude of the Brave +52452 : Fortitude of the Brave +52453 : Fortitude of the Brave +52454 : Fortitude of the Brave +52510 : Outset of the Brave +52511 : Outset of the Brave +52512 : Outset of the Brave +52513 : Outset of the Brave +52514 : Outset of the Brave +52520 : Prospect of the Brave +52521 : Prospect of the Brave +52522 : Prospect of the Brave +52523 : Prospect of the Brave +52524 : Prospect of the Brave +52530 : Crown of the Brave +52531 : Crown of the Brave +52532 : Crown of the Brave +52533 : Crown of the Brave +52534 : Crown of the Brave +52540 : Medal of the Brave +52541 : Medal of the Brave +52542 : Medal of the Brave +52543 : Medal of the Brave +52544 : Medal of the Brave +52550 : Fortitude of the Brave +52551 : Fortitude of the Brave +52552 : Fortitude of the Brave +52553 : Fortitude of the Brave +52554 : Fortitude of the Brave +53110 : Guardian's Vessel +53111 : Guardian's Vessel +53112 : Guardian's Vessel +53113 : Guardian's Vessel +53114 : Guardian's Vessel +53120 : Guardian's Sigil +53121 : Guardian's Sigil +53122 : Guardian's Sigil +53123 : Guardian's Sigil +53124 : Guardian's Sigil +53130 : Guardian's Band +53131 : Guardian's Band +53132 : Guardian's Band +53133 : Guardian's Band +53134 : Guardian's Band +53140 : Guardian's Flower +53141 : Guardian's Flower +53142 : Guardian's Flower +53143 : Guardian's Flower +53144 : Guardian's Flower +53150 : Guardian's Clock +53151 : Guardian's Clock +53152 : Guardian's Clock +53153 : Guardian's Clock +53154 : Guardian's Clock +53210 : Guardian's Vessel +53211 : Guardian's Vessel +53212 : Guardian's Vessel +53213 : Guardian's Vessel +53214 : Guardian's Vessel +53220 : Guardian's Sigil +53221 : Guardian's Sigil +53222 : Guardian's Sigil +53223 : Guardian's Sigil +53224 : Guardian's Sigil +53230 : Guardian's Band +53231 : Guardian's Band +53232 : Guardian's Band +53233 : Guardian's Band +53234 : Guardian's Band +53240 : Guardian's Flower +53241 : Guardian's Flower +53242 : Guardian's Flower +53243 : Guardian's Flower +53244 : Guardian's Flower +53250 : Guardian's Clock +53251 : Guardian's Clock +53252 : Guardian's Clock +53253 : Guardian's Clock +53254 : Guardian's Clock +53310 : Guardian's Vessel +53311 : Guardian's Vessel +53312 : Guardian's Vessel +53313 : Guardian's Vessel +53314 : Guardian's Vessel +53320 : Guardian's Sigil +53321 : Guardian's Sigil +53322 : Guardian's Sigil +53323 : Guardian's Sigil +53324 : Guardian's Sigil +53330 : Guardian's Band +53331 : Guardian's Band +53332 : Guardian's Band +53333 : Guardian's Band +53334 : Guardian's Band +53340 : Guardian's Flower +53341 : Guardian's Flower +53342 : Guardian's Flower +53343 : Guardian's Flower +53344 : Guardian's Flower +53350 : Guardian's Clock +53351 : Guardian's Clock +53352 : Guardian's Clock +53353 : Guardian's Clock +53354 : Guardian's Clock +53410 : Guardian's Vessel +53411 : Guardian's Vessel +53412 : Guardian's Vessel +53413 : Guardian's Vessel +53414 : Guardian's Vessel +53420 : Guardian's Sigil +53421 : Guardian's Sigil +53422 : Guardian's Sigil +53423 : Guardian's Sigil +53424 : Guardian's Sigil +53430 : Guardian's Band +53431 : Guardian's Band +53432 : Guardian's Band +53433 : Guardian's Band +53434 : Guardian's Band +53440 : Guardian's Flower +53441 : Guardian's Flower +53442 : Guardian's Flower +53443 : Guardian's Flower +53444 : Guardian's Flower +53450 : Guardian's Clock +53451 : Guardian's Clock +53452 : Guardian's Clock +53453 : Guardian's Clock +53454 : Guardian's Clock +53510 : Guardian's Vessel +53511 : Guardian's Vessel +53512 : Guardian's Vessel +53513 : Guardian's Vessel +53514 : Guardian's Vessel +53520 : Guardian's Sigil +53521 : Guardian's Sigil +53522 : Guardian's Sigil +53523 : Guardian's Sigil +53524 : Guardian's Sigil +53530 : Guardian's Band +53531 : Guardian's Band +53532 : Guardian's Band +53533 : Guardian's Band +53534 : Guardian's Band +53540 : Guardian's Flower +53541 : Guardian's Flower +53542 : Guardian's Flower +53543 : Guardian's Flower +53544 : Guardian's Flower +53550 : Guardian's Clock +53551 : Guardian's Clock +53552 : Guardian's Clock +53553 : Guardian's Clock +53554 : Guardian's Clock +54110 : Tiny Miracle's Goblet +54111 : Tiny Miracle's Goblet +54112 : Tiny Miracle's Goblet +54113 : Tiny Miracle's Goblet +54114 : Tiny Miracle's Goblet +54120 : Tiny Miracle's Feather +54121 : Tiny Miracle's Feather +54122 : Tiny Miracle's Feather +54123 : Tiny Miracle's Feather +54124 : Tiny Miracle's Feather +54130 : Tiny Miracle's Earrings +54131 : Tiny Miracle's Earrings +54132 : Tiny Miracle's Earrings +54133 : Tiny Miracle's Earrings +54134 : Tiny Miracle's Earrings +54140 : Tiny Miracle's Flower +54141 : Tiny Miracle's Flower +54142 : Tiny Miracle's Flower +54143 : Tiny Miracle's Flower +54144 : Tiny Miracle's Flower +54150 : Tiny Miracle's Hourglass +54151 : Tiny Miracle's Hourglass +54152 : Tiny Miracle's Hourglass +54153 : Tiny Miracle's Hourglass +54154 : Tiny Miracle's Hourglass +54210 : Tiny Miracle's Goblet +54211 : Tiny Miracle's Goblet +54212 : Tiny Miracle's Goblet +54213 : Tiny Miracle's Goblet +54214 : Tiny Miracle's Goblet +54220 : Tiny Miracle's Feather +54221 : Tiny Miracle's Feather +54222 : Tiny Miracle's Feather +54223 : Tiny Miracle's Feather +54224 : Tiny Miracle's Feather +54230 : Tiny Miracle's Earrings +54231 : Tiny Miracle's Earrings +54232 : Tiny Miracle's Earrings +54233 : Tiny Miracle's Earrings +54234 : Tiny Miracle's Earrings +54240 : Tiny Miracle's Flower +54241 : Tiny Miracle's Flower +54242 : Tiny Miracle's Flower +54243 : Tiny Miracle's Flower +54244 : Tiny Miracle's Flower +54250 : Tiny Miracle's Hourglass +54251 : Tiny Miracle's Hourglass +54252 : Tiny Miracle's Hourglass +54253 : Tiny Miracle's Hourglass +54254 : Tiny Miracle's Hourglass +54310 : Tiny Miracle's Goblet +54311 : Tiny Miracle's Goblet +54312 : Tiny Miracle's Goblet +54313 : Tiny Miracle's Goblet +54314 : Tiny Miracle's Goblet +54320 : Tiny Miracle's Feather +54321 : Tiny Miracle's Feather +54322 : Tiny Miracle's Feather +54323 : Tiny Miracle's Feather +54324 : Tiny Miracle's Feather +54330 : Tiny Miracle's Earrings +54331 : Tiny Miracle's Earrings +54332 : Tiny Miracle's Earrings +54333 : Tiny Miracle's Earrings +54334 : Tiny Miracle's Earrings +54340 : Tiny Miracle's Flower +54341 : Tiny Miracle's Flower +54342 : Tiny Miracle's Flower +54343 : Tiny Miracle's Flower +54344 : Tiny Miracle's Flower +54350 : Tiny Miracle's Hourglass +54351 : Tiny Miracle's Hourglass +54352 : Tiny Miracle's Hourglass +54353 : Tiny Miracle's Hourglass +54354 : Tiny Miracle's Hourglass +54410 : Tiny Miracle's Goblet +54411 : Tiny Miracle's Goblet +54412 : Tiny Miracle's Goblet +54413 : Tiny Miracle's Goblet +54414 : Tiny Miracle's Goblet +54420 : Tiny Miracle's Feather +54421 : Tiny Miracle's Feather +54422 : Tiny Miracle's Feather +54423 : Tiny Miracle's Feather +54424 : Tiny Miracle's Feather +54430 : Tiny Miracle's Earrings +54431 : Tiny Miracle's Earrings +54432 : Tiny Miracle's Earrings +54433 : Tiny Miracle's Earrings +54434 : Tiny Miracle's Earrings +54440 : Tiny Miracle's Flower +54441 : Tiny Miracle's Flower +54442 : Tiny Miracle's Flower +54443 : Tiny Miracle's Flower +54444 : Tiny Miracle's Flower +54450 : Tiny Miracle's Hourglass +54451 : Tiny Miracle's Hourglass +54452 : Tiny Miracle's Hourglass +54453 : Tiny Miracle's Hourglass +54454 : Tiny Miracle's Hourglass +54510 : Tiny Miracle's Goblet +54511 : Tiny Miracle's Goblet +54512 : Tiny Miracle's Goblet +54513 : Tiny Miracle's Goblet +54514 : Tiny Miracle's Goblet +54520 : Tiny Miracle's Feather +54521 : Tiny Miracle's Feather +54522 : Tiny Miracle's Feather +54523 : Tiny Miracle's Feather +54524 : Tiny Miracle's Feather +54530 : Tiny Miracle's Earrings +54531 : Tiny Miracle's Earrings +54532 : Tiny Miracle's Earrings +54533 : Tiny Miracle's Earrings +54534 : Tiny Miracle's Earrings +54540 : Tiny Miracle's Flower +54541 : Tiny Miracle's Flower +54542 : Tiny Miracle's Flower +54543 : Tiny Miracle's Flower +54544 : Tiny Miracle's Flower +54550 : Tiny Miracle's Hourglass +54551 : Tiny Miracle's Hourglass +54552 : Tiny Miracle's Hourglass +54553 : Tiny Miracle's Hourglass +54554 : Tiny Miracle's Hourglass +55110 : Berserker's Bone Goblet +55111 : Berserker's Bone Goblet +55112 : Berserker's Bone Goblet +55113 : Berserker's Bone Goblet +55114 : Berserker's Bone Goblet +55120 : Berserker's Indigo Feather +55121 : Berserker's Indigo Feather +55122 : Berserker's Indigo Feather +55123 : Berserker's Indigo Feather +55124 : Berserker's Indigo Feather +55130 : Berserker's Battle Mask +55131 : Berserker's Battle Mask +55132 : Berserker's Battle Mask +55133 : Berserker's Battle Mask +55134 : Berserker's Battle Mask +55140 : Berserker's Rose +55141 : Berserker's Rose +55142 : Berserker's Rose +55143 : Berserker's Rose +55144 : Berserker's Rose +55150 : Berserker's Timepiece +55151 : Berserker's Timepiece +55152 : Berserker's Timepiece +55153 : Berserker's Timepiece +55154 : Berserker's Timepiece +55210 : Berserker's Bone Goblet +55211 : Berserker's Bone Goblet +55212 : Berserker's Bone Goblet +55213 : Berserker's Bone Goblet +55214 : Berserker's Bone Goblet +55220 : Berserker's Indigo Feather +55221 : Berserker's Indigo Feather +55222 : Berserker's Indigo Feather +55223 : Berserker's Indigo Feather +55224 : Berserker's Indigo Feather +55230 : Berserker's Battle Mask +55231 : Berserker's Battle Mask +55232 : Berserker's Battle Mask +55233 : Berserker's Battle Mask +55234 : Berserker's Battle Mask +55240 : Berserker's Rose +55241 : Berserker's Rose +55242 : Berserker's Rose +55243 : Berserker's Rose +55244 : Berserker's Rose +55250 : Berserker's Timepiece +55251 : Berserker's Timepiece +55252 : Berserker's Timepiece +55253 : Berserker's Timepiece +55254 : Berserker's Timepiece +55310 : Berserker's Bone Goblet +55311 : Berserker's Bone Goblet +55312 : Berserker's Bone Goblet +55313 : Berserker's Bone Goblet +55314 : Berserker's Bone Goblet +55320 : Berserker's Indigo Feather +55321 : Berserker's Indigo Feather +55322 : Berserker's Indigo Feather +55323 : Berserker's Indigo Feather +55324 : Berserker's Indigo Feather +55330 : Berserker's Battle Mask +55331 : Berserker's Battle Mask +55332 : Berserker's Battle Mask +55333 : Berserker's Battle Mask +55334 : Berserker's Battle Mask +55340 : Berserker's Rose +55341 : Berserker's Rose +55342 : Berserker's Rose +55343 : Berserker's Rose +55344 : Berserker's Rose +55350 : Berserker's Timepiece +55351 : Berserker's Timepiece +55352 : Berserker's Timepiece +55353 : Berserker's Timepiece +55354 : Berserker's Timepiece +55410 : Berserker's Bone Goblet +55411 : Berserker's Bone Goblet +55412 : Berserker's Bone Goblet +55413 : Berserker's Bone Goblet +55414 : Berserker's Bone Goblet +55420 : Berserker's Indigo Feather +55421 : Berserker's Indigo Feather +55422 : Berserker's Indigo Feather +55423 : Berserker's Indigo Feather +55424 : Berserker's Indigo Feather +55430 : Berserker's Battle Mask +55431 : Berserker's Battle Mask +55432 : Berserker's Battle Mask +55433 : Berserker's Battle Mask +55434 : Berserker's Battle Mask +55440 : Berserker's Rose +55441 : Berserker's Rose +55442 : Berserker's Rose +55443 : Berserker's Rose +55444 : Berserker's Rose +55450 : Berserker's Timepiece +55451 : Berserker's Timepiece +55452 : Berserker's Timepiece +55453 : Berserker's Timepiece +55454 : Berserker's Timepiece +55510 : Berserker's Bone Goblet +55511 : Berserker's Bone Goblet +55512 : Berserker's Bone Goblet +55513 : Berserker's Bone Goblet +55514 : Berserker's Bone Goblet +55520 : Berserker's Indigo Feather +55521 : Berserker's Indigo Feather +55522 : Berserker's Indigo Feather +55523 : Berserker's Indigo Feather +55524 : Berserker's Indigo Feather +55530 : Berserker's Battle Mask +55531 : Berserker's Battle Mask +55532 : Berserker's Battle Mask +55533 : Berserker's Battle Mask +55534 : Berserker's Battle Mask +55540 : Berserker's Rose +55541 : Berserker's Rose +55542 : Berserker's Rose +55543 : Berserker's Rose +55544 : Berserker's Rose +55550 : Berserker's Timepiece +55551 : Berserker's Timepiece +55552 : Berserker's Timepiece +55553 : Berserker's Timepiece +55554 : Berserker's Timepiece +56110 : Martial Artist's Wine Cup +56111 : Martial Artist's Wine Cup +56112 : Martial Artist's Wine Cup +56113 : Martial Artist's Wine Cup +56114 : Martial Artist's Wine Cup +56120 : Martial Artist's Feather Accessory +56121 : Martial Artist's Feather Accessory +56122 : Martial Artist's Feather Accessory +56123 : Martial Artist's Feather Accessory +56124 : Martial Artist's Feather Accessory +56130 : Martial Artist's Bandana +56131 : Martial Artist's Bandana +56132 : Martial Artist's Bandana +56133 : Martial Artist's Bandana +56134 : Martial Artist's Bandana +56140 : Martial Artist's Red Flower +56141 : Martial Artist's Red Flower +56142 : Martial Artist's Red Flower +56143 : Martial Artist's Red Flower +56144 : Martial Artist's Red Flower +56150 : Martial Artist's Water Hourglass +56151 : Martial Artist's Water Hourglass +56152 : Martial Artist's Water Hourglass +56153 : Martial Artist's Water Hourglass +56154 : Martial Artist's Water Hourglass +56210 : Martial Artist's Wine Cup +56211 : Martial Artist's Wine Cup +56212 : Martial Artist's Wine Cup +56213 : Martial Artist's Wine Cup +56214 : Martial Artist's Wine Cup +56220 : Martial Artist's Feather Accessory +56221 : Martial Artist's Feather Accessory +56222 : Martial Artist's Feather Accessory +56223 : Martial Artist's Feather Accessory +56224 : Martial Artist's Feather Accessory +56230 : Martial Artist's Bandana +56231 : Martial Artist's Bandana +56232 : Martial Artist's Bandana +56233 : Martial Artist's Bandana +56234 : Martial Artist's Bandana +56240 : Martial Artist's Red Flower +56241 : Martial Artist's Red Flower +56242 : Martial Artist's Red Flower +56243 : Martial Artist's Red Flower +56244 : Martial Artist's Red Flower +56250 : Martial Artist's Water Hourglass +56251 : Martial Artist's Water Hourglass +56252 : Martial Artist's Water Hourglass +56253 : Martial Artist's Water Hourglass +56254 : Martial Artist's Water Hourglass +56310 : Martial Artist's Wine Cup +56311 : Martial Artist's Wine Cup +56312 : Martial Artist's Wine Cup +56313 : Martial Artist's Wine Cup +56314 : Martial Artist's Wine Cup +56320 : Martial Artist's Feather Accessory +56321 : Martial Artist's Feather Accessory +56322 : Martial Artist's Feather Accessory +56323 : Martial Artist's Feather Accessory +56324 : Martial Artist's Feather Accessory +56330 : Martial Artist's Bandana +56331 : Martial Artist's Bandana +56332 : Martial Artist's Bandana +56333 : Martial Artist's Bandana +56334 : Martial Artist's Bandana +56340 : Martial Artist's Red Flower +56341 : Martial Artist's Red Flower +56342 : Martial Artist's Red Flower +56343 : Martial Artist's Red Flower +56344 : Martial Artist's Red Flower +56350 : Martial Artist's Water Hourglass +56351 : Martial Artist's Water Hourglass +56352 : Martial Artist's Water Hourglass +56353 : Martial Artist's Water Hourglass +56354 : Martial Artist's Water Hourglass +56410 : Martial Artist's Wine Cup +56411 : Martial Artist's Wine Cup +56412 : Martial Artist's Wine Cup +56413 : Martial Artist's Wine Cup +56414 : Martial Artist's Wine Cup +56420 : Martial Artist's Feather Accessory +56421 : Martial Artist's Feather Accessory +56422 : Martial Artist's Feather Accessory +56423 : Martial Artist's Feather Accessory +56424 : Martial Artist's Feather Accessory +56430 : Martial Artist's Bandana +56431 : Martial Artist's Bandana +56432 : Martial Artist's Bandana +56433 : Martial Artist's Bandana +56434 : Martial Artist's Bandana +56440 : Martial Artist's Red Flower +56441 : Martial Artist's Red Flower +56442 : Martial Artist's Red Flower +56443 : Martial Artist's Red Flower +56444 : Martial Artist's Red Flower +56450 : Martial Artist's Water Hourglass +56451 : Martial Artist's Water Hourglass +56452 : Martial Artist's Water Hourglass +56453 : Martial Artist's Water Hourglass +56454 : Martial Artist's Water Hourglass +56510 : Martial Artist's Wine Cup +56511 : Martial Artist's Wine Cup +56512 : Martial Artist's Wine Cup +56513 : Martial Artist's Wine Cup +56514 : Martial Artist's Wine Cup +56520 : Martial Artist's Feather Accessory +56521 : Martial Artist's Feather Accessory +56522 : Martial Artist's Feather Accessory +56523 : Martial Artist's Feather Accessory +56524 : Martial Artist's Feather Accessory +56530 : Martial Artist's Bandana +56531 : Martial Artist's Bandana +56532 : Martial Artist's Bandana +56533 : Martial Artist's Bandana +56534 : Martial Artist's Bandana +56540 : Martial Artist's Red Flower +56541 : Martial Artist's Red Flower +56542 : Martial Artist's Red Flower +56543 : Martial Artist's Red Flower +56544 : Martial Artist's Red Flower +56550 : Martial Artist's Water Hourglass +56551 : Martial Artist's Water Hourglass +56552 : Martial Artist's Water Hourglass +56553 : Martial Artist's Water Hourglass +56554 : Martial Artist's Water Hourglass +57110 : Instructor's Tea Cup +57111 : Instructor's Tea Cup +57112 : Instructor's Tea Cup +57113 : Instructor's Tea Cup +57114 : Instructor's Tea Cup +57120 : Instructor's Feather Accessory +57121 : Instructor's Feather Accessory +57122 : Instructor's Feather Accessory +57123 : Instructor's Feather Accessory +57124 : Instructor's Feather Accessory +57130 : Instructor's Cap +57131 : Instructor's Cap +57132 : Instructor's Cap +57133 : Instructor's Cap +57134 : Instructor's Cap +57140 : Instructor's Brooch +57141 : Instructor's Brooch +57142 : Instructor's Brooch +57143 : Instructor's Brooch +57144 : Instructor's Brooch +57150 : Instructor's Pocket Watch +57151 : Instructor's Pocket Watch +57152 : Instructor's Pocket Watch +57153 : Instructor's Pocket Watch +57154 : Instructor's Pocket Watch +57210 : Instructor's Tea Cup +57211 : Instructor's Tea Cup +57212 : Instructor's Tea Cup +57213 : Instructor's Tea Cup +57214 : Instructor's Tea Cup +57220 : Instructor's Feather Accessory +57221 : Instructor's Feather Accessory +57222 : Instructor's Feather Accessory +57223 : Instructor's Feather Accessory +57224 : Instructor's Feather Accessory +57230 : Instructor's Cap +57231 : Instructor's Cap +57232 : Instructor's Cap +57233 : Instructor's Cap +57234 : Instructor's Cap +57240 : Instructor's Brooch +57241 : Instructor's Brooch +57242 : Instructor's Brooch +57243 : Instructor's Brooch +57244 : Instructor's Brooch +57250 : Instructor's Pocket Watch +57251 : Instructor's Pocket Watch +57252 : Instructor's Pocket Watch +57253 : Instructor's Pocket Watch +57254 : Instructor's Pocket Watch +57310 : Instructor's Tea Cup +57311 : Instructor's Tea Cup +57312 : Instructor's Tea Cup +57313 : Instructor's Tea Cup +57314 : Instructor's Tea Cup +57320 : Instructor's Feather Accessory +57321 : Instructor's Feather Accessory +57322 : Instructor's Feather Accessory +57323 : Instructor's Feather Accessory +57324 : Instructor's Feather Accessory +57330 : Instructor's Cap +57331 : Instructor's Cap +57332 : Instructor's Cap +57333 : Instructor's Cap +57334 : Instructor's Cap +57340 : Instructor's Brooch +57341 : Instructor's Brooch +57342 : Instructor's Brooch +57343 : Instructor's Brooch +57344 : Instructor's Brooch +57350 : Instructor's Pocket Watch +57351 : Instructor's Pocket Watch +57352 : Instructor's Pocket Watch +57353 : Instructor's Pocket Watch +57354 : Instructor's Pocket Watch +57410 : Instructor's Tea Cup +57411 : Instructor's Tea Cup +57412 : Instructor's Tea Cup +57413 : Instructor's Tea Cup +57414 : Instructor's Tea Cup +57420 : Instructor's Feather Accessory +57421 : Instructor's Feather Accessory +57422 : Instructor's Feather Accessory +57423 : Instructor's Feather Accessory +57424 : Instructor's Feather Accessory +57430 : Instructor's Cap +57431 : Instructor's Cap +57432 : Instructor's Cap +57433 : Instructor's Cap +57434 : Instructor's Cap +57440 : Instructor's Brooch +57441 : Instructor's Brooch +57442 : Instructor's Brooch +57443 : Instructor's Brooch +57444 : Instructor's Brooch +57450 : Instructor's Pocket Watch +57451 : Instructor's Pocket Watch +57452 : Instructor's Pocket Watch +57453 : Instructor's Pocket Watch +57454 : Instructor's Pocket Watch +57510 : Instructor's Tea Cup +57511 : Instructor's Tea Cup +57512 : Instructor's Tea Cup +57513 : Instructor's Tea Cup +57514 : Instructor's Tea Cup +57520 : Instructor's Feather Accessory +57521 : Instructor's Feather Accessory +57522 : Instructor's Feather Accessory +57523 : Instructor's Feather Accessory +57524 : Instructor's Feather Accessory +57530 : Instructor's Cap +57531 : Instructor's Cap +57532 : Instructor's Cap +57533 : Instructor's Cap +57534 : Instructor's Cap +57540 : Instructor's Brooch +57541 : Instructor's Brooch +57542 : Instructor's Brooch +57543 : Instructor's Brooch +57544 : Instructor's Brooch +57550 : Instructor's Pocket Watch +57551 : Instructor's Pocket Watch +57552 : Instructor's Pocket Watch +57553 : Instructor's Pocket Watch +57554 : Instructor's Pocket Watch +58210 : Gambler's Dice Cup +58211 : Gambler's Dice Cup +58212 : Gambler's Dice Cup +58213 : Gambler's Dice Cup +58214 : Gambler's Dice Cup +58220 : Gambler's Feather Accessory +58221 : Gambler's Feather Accessory +58222 : Gambler's Feather Accessory +58223 : Gambler's Feather Accessory +58224 : Gambler's Feather Accessory +58230 : Gambler's Earrings +58231 : Gambler's Earrings +58232 : Gambler's Earrings +58233 : Gambler's Earrings +58234 : Gambler's Earrings +58240 : Gambler's Brooch +58241 : Gambler's Brooch +58242 : Gambler's Brooch +58243 : Gambler's Brooch +58244 : Gambler's Brooch +58250 : Gambler's Pocket Watch +58251 : Gambler's Pocket Watch +58252 : Gambler's Pocket Watch +58253 : Gambler's Pocket Watch +58254 : Gambler's Pocket Watch +58310 : Gambler's Dice Cup +58311 : Gambler's Dice Cup +58312 : Gambler's Dice Cup +58313 : Gambler's Dice Cup +58314 : Gambler's Dice Cup +58320 : Gambler's Feather Accessory +58321 : Gambler's Feather Accessory +58322 : Gambler's Feather Accessory +58323 : Gambler's Feather Accessory +58324 : Gambler's Feather Accessory +58330 : Gambler's Earrings +58331 : Gambler's Earrings +58332 : Gambler's Earrings +58333 : Gambler's Earrings +58334 : Gambler's Earrings +58340 : Gambler's Brooch +58341 : Gambler's Brooch +58342 : Gambler's Brooch +58343 : Gambler's Brooch +58344 : Gambler's Brooch +58350 : Gambler's Pocket Watch +58351 : Gambler's Pocket Watch +58352 : Gambler's Pocket Watch +58353 : Gambler's Pocket Watch +58354 : Gambler's Pocket Watch +58410 : Gambler's Dice Cup +58411 : Gambler's Dice Cup +58412 : Gambler's Dice Cup +58413 : Gambler's Dice Cup +58414 : Gambler's Dice Cup +58420 : Gambler's Feather Accessory +58421 : Gambler's Feather Accessory +58422 : Gambler's Feather Accessory +58423 : Gambler's Feather Accessory +58424 : Gambler's Feather Accessory +58430 : Gambler's Earrings +58431 : Gambler's Earrings +58432 : Gambler's Earrings +58433 : Gambler's Earrings +58434 : Gambler's Earrings +58440 : Gambler's Brooch +58441 : Gambler's Brooch +58442 : Gambler's Brooch +58443 : Gambler's Brooch +58444 : Gambler's Brooch +58450 : Gambler's Pocket Watch +58451 : Gambler's Pocket Watch +58452 : Gambler's Pocket Watch +58453 : Gambler's Pocket Watch +58454 : Gambler's Pocket Watch +58510 : Gambler's Dice Cup +58511 : Gambler's Dice Cup +58512 : Gambler's Dice Cup +58513 : Gambler's Dice Cup +58514 : Gambler's Dice Cup +58520 : Gambler's Feather Accessory +58521 : Gambler's Feather Accessory +58522 : Gambler's Feather Accessory +58523 : Gambler's Feather Accessory +58524 : Gambler's Feather Accessory +58530 : Gambler's Earrings +58531 : Gambler's Earrings +58532 : Gambler's Earrings +58533 : Gambler's Earrings +58534 : Gambler's Earrings +58540 : Gambler's Brooch +58541 : Gambler's Brooch +58542 : Gambler's Brooch +58543 : Gambler's Brooch +58544 : Gambler's Brooch +58550 : Gambler's Pocket Watch +58551 : Gambler's Pocket Watch +58552 : Gambler's Pocket Watch +58553 : Gambler's Pocket Watch +58554 : Gambler's Pocket Watch +59110 : Exile's Goblet +59111 : Exile's Goblet +59112 : Exile's Goblet +59113 : Exile's Goblet +59114 : Exile's Goblet +59120 : Exile's Feather +59121 : Exile's Feather +59122 : Exile's Feather +59123 : Exile's Feather +59124 : Exile's Feather +59130 : Exile's Circlet +59131 : Exile's Circlet +59132 : Exile's Circlet +59133 : Exile's Circlet +59134 : Exile's Circlet +59140 : Exile's Flower +59141 : Exile's Flower +59142 : Exile's Flower +59143 : Exile's Flower +59144 : Exile's Flower +59150 : Exile's Pocket Watch +59151 : Exile's Pocket Watch +59152 : Exile's Pocket Watch +59153 : Exile's Pocket Watch +59154 : Exile's Pocket Watch +59210 : Exile's Goblet +59211 : Exile's Goblet +59212 : Exile's Goblet +59213 : Exile's Goblet +59214 : Exile's Goblet +59220 : Exile's Feather +59221 : Exile's Feather +59222 : Exile's Feather +59223 : Exile's Feather +59224 : Exile's Feather +59230 : Exile's Circlet +59231 : Exile's Circlet +59232 : Exile's Circlet +59233 : Exile's Circlet +59234 : Exile's Circlet +59240 : Exile's Flower +59241 : Exile's Flower +59242 : Exile's Flower +59243 : Exile's Flower +59244 : Exile's Flower +59250 : Exile's Pocket Watch +59251 : Exile's Pocket Watch +59252 : Exile's Pocket Watch +59253 : Exile's Pocket Watch +59254 : Exile's Pocket Watch +59310 : Exile's Goblet +59311 : Exile's Goblet +59312 : Exile's Goblet +59313 : Exile's Goblet +59314 : Exile's Goblet +59320 : Exile's Feather +59321 : Exile's Feather +59322 : Exile's Feather +59323 : Exile's Feather +59324 : Exile's Feather +59330 : Exile's Circlet +59331 : Exile's Circlet +59332 : Exile's Circlet +59333 : Exile's Circlet +59334 : Exile's Circlet +59340 : Exile's Flower +59341 : Exile's Flower +59342 : Exile's Flower +59343 : Exile's Flower +59344 : Exile's Flower +59350 : Exile's Pocket Watch +59351 : Exile's Pocket Watch +59352 : Exile's Pocket Watch +59353 : Exile's Pocket Watch +59354 : Exile's Pocket Watch +59410 : Exile's Goblet +59411 : Exile's Goblet +59412 : Exile's Goblet +59413 : Exile's Goblet +59414 : Exile's Goblet +59420 : Exile's Feather +59421 : Exile's Feather +59422 : Exile's Feather +59423 : Exile's Feather +59424 : Exile's Feather +59430 : Exile's Circlet +59431 : Exile's Circlet +59432 : Exile's Circlet +59433 : Exile's Circlet +59434 : Exile's Circlet +59440 : Exile's Flower +59441 : Exile's Flower +59442 : Exile's Flower +59443 : Exile's Flower +59444 : Exile's Flower +59450 : Exile's Pocket Watch +59451 : Exile's Pocket Watch +59452 : Exile's Pocket Watch +59453 : Exile's Pocket Watch +59454 : Exile's Pocket Watch +59510 : Exile's Goblet +59511 : Exile's Goblet +59512 : Exile's Goblet +59513 : Exile's Goblet +59514 : Exile's Goblet +59520 : Exile's Feather +59521 : Exile's Feather +59522 : Exile's Feather +59523 : Exile's Feather +59524 : Exile's Feather +59530 : Exile's Circlet +59531 : Exile's Circlet +59532 : Exile's Circlet +59533 : Exile's Circlet +59534 : Exile's Circlet +59540 : Exile's Flower +59541 : Exile's Flower +59542 : Exile's Flower +59543 : Exile's Flower +59544 : Exile's Flower +59550 : Exile's Pocket Watch +59551 : Exile's Pocket Watch +59552 : Exile's Pocket Watch +59553 : Exile's Pocket Watch +59554 : Exile's Pocket Watch +60110 : Adventurer's Golden Goblet +60111 : Adventurer's Golden Goblet +60112 : Adventurer's Golden Goblet +60113 : Adventurer's Golden Goblet +60114 : Adventurer's Golden Goblet +60120 : Adventurer's Tail Feather +60121 : Adventurer's Tail Feather +60122 : Adventurer's Tail Feather +60123 : Adventurer's Tail Feather +60124 : Adventurer's Tail Feather +60130 : Adventurer's Bandana +60131 : Adventurer's Bandana +60132 : Adventurer's Bandana +60133 : Adventurer's Bandana +60134 : Adventurer's Bandana +60140 : Adventurer's Flower +60141 : Adventurer's Flower +60142 : Adventurer's Flower +60143 : Adventurer's Flower +60144 : Adventurer's Flower +60150 : Adventurer's Pocket Watch +60151 : Adventurer's Pocket Watch +60152 : Adventurer's Pocket Watch +60153 : Adventurer's Pocket Watch +60154 : Adventurer's Pocket Watch +60210 : Adventurer's Golden Goblet +60211 : Adventurer's Golden Goblet +60212 : Adventurer's Golden Goblet +60213 : Adventurer's Golden Goblet +60214 : Adventurer's Golden Goblet +60220 : Adventurer's Tail Feather +60221 : Adventurer's Tail Feather +60222 : Adventurer's Tail Feather +60223 : Adventurer's Tail Feather +60224 : Adventurer's Tail Feather +60230 : Adventurer's Bandana +60231 : Adventurer's Bandana +60232 : Adventurer's Bandana +60233 : Adventurer's Bandana +60234 : Adventurer's Bandana +60240 : Adventurer's Flower +60241 : Adventurer's Flower +60242 : Adventurer's Flower +60243 : Adventurer's Flower +60244 : Adventurer's Flower +60250 : Adventurer's Pocket Watch +60251 : Adventurer's Pocket Watch +60252 : Adventurer's Pocket Watch +60253 : Adventurer's Pocket Watch +60254 : Adventurer's Pocket Watch +60310 : Adventurer's Golden Goblet +60311 : Adventurer's Golden Goblet +60312 : Adventurer's Golden Goblet +60313 : Adventurer's Golden Goblet +60314 : Adventurer's Golden Goblet +60320 : Adventurer's Tail Feather +60321 : Adventurer's Tail Feather +60322 : Adventurer's Tail Feather +60323 : Adventurer's Tail Feather +60324 : Adventurer's Tail Feather +60330 : Adventurer's Bandana +60331 : Adventurer's Bandana +60332 : Adventurer's Bandana +60333 : Adventurer's Bandana +60334 : Adventurer's Bandana +60340 : Adventurer's Flower +60341 : Adventurer's Flower +60342 : Adventurer's Flower +60343 : Adventurer's Flower +60344 : Adventurer's Flower +60350 : Adventurer's Pocket Watch +60351 : Adventurer's Pocket Watch +60352 : Adventurer's Pocket Watch +60353 : Adventurer's Pocket Watch +60354 : Adventurer's Pocket Watch +60410 : Adventurer's Golden Goblet +60411 : Adventurer's Golden Goblet +60412 : Adventurer's Golden Goblet +60413 : Adventurer's Golden Goblet +60414 : Adventurer's Golden Goblet +60420 : Adventurer's Tail Feather +60421 : Adventurer's Tail Feather +60422 : Adventurer's Tail Feather +60423 : Adventurer's Tail Feather +60424 : Adventurer's Tail Feather +60430 : Adventurer's Bandana +60431 : Adventurer's Bandana +60432 : Adventurer's Bandana +60433 : Adventurer's Bandana +60434 : Adventurer's Bandana +60440 : Adventurer's Flower +60441 : Adventurer's Flower +60442 : Adventurer's Flower +60443 : Adventurer's Flower +60444 : Adventurer's Flower +60450 : Adventurer's Pocket Watch +60451 : Adventurer's Pocket Watch +60452 : Adventurer's Pocket Watch +60453 : Adventurer's Pocket Watch +60454 : Adventurer's Pocket Watch +61110 : Lucky Dog's Goblet +61111 : Lucky Dog's Goblet +61112 : Lucky Dog's Goblet +61113 : Lucky Dog's Goblet +61114 : Lucky Dog's Goblet +61120 : Lucky Dog's Eagle Feather +61121 : Lucky Dog's Eagle Feather +61122 : Lucky Dog's Eagle Feather +61123 : Lucky Dog's Eagle Feather +61124 : Lucky Dog's Eagle Feather +61130 : Lucky Dog's Silver Circlet +61131 : Lucky Dog's Silver Circlet +61132 : Lucky Dog's Silver Circlet +61133 : Lucky Dog's Silver Circlet +61134 : Lucky Dog's Silver Circlet +61140 : Lucky Dog's Clover +61141 : Lucky Dog's Clover +61142 : Lucky Dog's Clover +61143 : Lucky Dog's Clover +61144 : Lucky Dog's Clover +61150 : Lucky Dog's Hourglass +61151 : Lucky Dog's Hourglass +61152 : Lucky Dog's Hourglass +61153 : Lucky Dog's Hourglass +61154 : Lucky Dog's Hourglass +61210 : Lucky Dog's Goblet +61211 : Lucky Dog's Goblet +61212 : Lucky Dog's Goblet +61213 : Lucky Dog's Goblet +61214 : Lucky Dog's Goblet +61220 : Lucky Dog's Eagle Feather +61221 : Lucky Dog's Eagle Feather +61222 : Lucky Dog's Eagle Feather +61223 : Lucky Dog's Eagle Feather +61224 : Lucky Dog's Eagle Feather +61230 : Lucky Dog's Silver Circlet +61231 : Lucky Dog's Silver Circlet +61232 : Lucky Dog's Silver Circlet +61233 : Lucky Dog's Silver Circlet +61234 : Lucky Dog's Silver Circlet +61240 : Lucky Dog's Clover +61241 : Lucky Dog's Clover +61242 : Lucky Dog's Clover +61243 : Lucky Dog's Clover +61244 : Lucky Dog's Clover +61250 : Lucky Dog's Hourglass +61251 : Lucky Dog's Hourglass +61252 : Lucky Dog's Hourglass +61253 : Lucky Dog's Hourglass +61254 : Lucky Dog's Hourglass +61310 : Lucky Dog's Goblet +61311 : Lucky Dog's Goblet +61312 : Lucky Dog's Goblet +61313 : Lucky Dog's Goblet +61314 : Lucky Dog's Goblet +61320 : Lucky Dog's Eagle Feather +61321 : Lucky Dog's Eagle Feather +61322 : Lucky Dog's Eagle Feather +61323 : Lucky Dog's Eagle Feather +61324 : Lucky Dog's Eagle Feather +61330 : Lucky Dog's Silver Circlet +61331 : Lucky Dog's Silver Circlet +61332 : Lucky Dog's Silver Circlet +61333 : Lucky Dog's Silver Circlet +61334 : Lucky Dog's Silver Circlet +61340 : Lucky Dog's Clover +61341 : Lucky Dog's Clover +61342 : Lucky Dog's Clover +61343 : Lucky Dog's Clover +61344 : Lucky Dog's Clover +61350 : Lucky Dog's Hourglass +61351 : Lucky Dog's Hourglass +61352 : Lucky Dog's Hourglass +61353 : Lucky Dog's Hourglass +61354 : Lucky Dog's Hourglass +61410 : Lucky Dog's Goblet +61411 : Lucky Dog's Goblet +61412 : Lucky Dog's Goblet +61413 : Lucky Dog's Goblet +61414 : Lucky Dog's Goblet +61420 : Lucky Dog's Eagle Feather +61421 : Lucky Dog's Eagle Feather +61422 : Lucky Dog's Eagle Feather +61423 : Lucky Dog's Eagle Feather +61424 : Lucky Dog's Eagle Feather +61430 : Lucky Dog's Silver Circlet +61431 : Lucky Dog's Silver Circlet +61432 : Lucky Dog's Silver Circlet +61433 : Lucky Dog's Silver Circlet +61434 : Lucky Dog's Silver Circlet +61440 : Lucky Dog's Clover +61441 : Lucky Dog's Clover +61442 : Lucky Dog's Clover +61443 : Lucky Dog's Clover +61444 : Lucky Dog's Clover +61450 : Lucky Dog's Hourglass +61451 : Lucky Dog's Hourglass +61452 : Lucky Dog's Hourglass +61453 : Lucky Dog's Hourglass +61454 : Lucky Dog's Hourglass +62110 : Scholar's Ink Cup +62111 : Scholar's Ink Cup +62112 : Scholar's Ink Cup +62113 : Scholar's Ink Cup +62114 : Scholar's Ink Cup +62120 : Scholar's Quill Pen +62121 : Scholar's Quill Pen +62122 : Scholar's Quill Pen +62123 : Scholar's Quill Pen +62124 : Scholar's Quill Pen +62130 : Scholar's Lens +62131 : Scholar's Lens +62132 : Scholar's Lens +62133 : Scholar's Lens +62134 : Scholar's Lens +62140 : Scholar's Bookmark +62141 : Scholar's Bookmark +62142 : Scholar's Bookmark +62143 : Scholar's Bookmark +62144 : Scholar's Bookmark +62150 : Scholar's Clock +62151 : Scholar's Clock +62152 : Scholar's Clock +62153 : Scholar's Clock +62154 : Scholar's Clock +62210 : Scholar's Ink Cup +62211 : Scholar's Ink Cup +62212 : Scholar's Ink Cup +62213 : Scholar's Ink Cup +62214 : Scholar's Ink Cup +62220 : Scholar's Quill Pen +62221 : Scholar's Quill Pen +62222 : Scholar's Quill Pen +62223 : Scholar's Quill Pen +62224 : Scholar's Quill Pen +62230 : Scholar's Lens +62231 : Scholar's Lens +62232 : Scholar's Lens +62233 : Scholar's Lens +62234 : Scholar's Lens +62240 : Scholar's Bookmark +62241 : Scholar's Bookmark +62242 : Scholar's Bookmark +62243 : Scholar's Bookmark +62244 : Scholar's Bookmark +62250 : Scholar's Clock +62251 : Scholar's Clock +62252 : Scholar's Clock +62253 : Scholar's Clock +62254 : Scholar's Clock +62310 : Scholar's Ink Cup +62311 : Scholar's Ink Cup +62312 : Scholar's Ink Cup +62313 : Scholar's Ink Cup +62314 : Scholar's Ink Cup +62320 : Scholar's Quill Pen +62321 : Scholar's Quill Pen +62322 : Scholar's Quill Pen +62323 : Scholar's Quill Pen +62324 : Scholar's Quill Pen +62330 : Scholar's Lens +62331 : Scholar's Lens +62332 : Scholar's Lens +62333 : Scholar's Lens +62334 : Scholar's Lens +62340 : Scholar's Bookmark +62341 : Scholar's Bookmark +62342 : Scholar's Bookmark +62343 : Scholar's Bookmark +62344 : Scholar's Bookmark +62350 : Scholar's Clock +62351 : Scholar's Clock +62352 : Scholar's Clock +62353 : Scholar's Clock +62354 : Scholar's Clock +62410 : Scholar's Ink Cup +62411 : Scholar's Ink Cup +62412 : Scholar's Ink Cup +62413 : Scholar's Ink Cup +62414 : Scholar's Ink Cup +62420 : Scholar's Quill Pen +62421 : Scholar's Quill Pen +62422 : Scholar's Quill Pen +62423 : Scholar's Quill Pen +62424 : Scholar's Quill Pen +62430 : Scholar's Lens +62431 : Scholar's Lens +62432 : Scholar's Lens +62433 : Scholar's Lens +62434 : Scholar's Lens +62440 : Scholar's Bookmark +62441 : Scholar's Bookmark +62442 : Scholar's Bookmark +62443 : Scholar's Bookmark +62444 : Scholar's Bookmark +62450 : Scholar's Clock +62451 : Scholar's Clock +62452 : Scholar's Clock +62453 : Scholar's Clock +62454 : Scholar's Clock +62510 : Scholar's Ink Cup +62511 : Scholar's Ink Cup +62512 : Scholar's Ink Cup +62513 : Scholar's Ink Cup +62514 : Scholar's Ink Cup +62520 : Scholar's Quill Pen +62521 : Scholar's Quill Pen +62522 : Scholar's Quill Pen +62523 : Scholar's Quill Pen +62524 : Scholar's Quill Pen +62530 : Scholar's Lens +62531 : Scholar's Lens +62532 : Scholar's Lens +62533 : Scholar's Lens +62534 : Scholar's Lens +62540 : Scholar's Bookmark +62541 : Scholar's Bookmark +62542 : Scholar's Bookmark +62543 : Scholar's Bookmark +62544 : Scholar's Bookmark +62550 : Scholar's Clock +62551 : Scholar's Clock +62552 : Scholar's Clock +62553 : Scholar's Clock +62554 : Scholar's Clock +63110 : Traveling Doctor's Medicine Pot +63111 : Traveling Doctor's Medicine Pot +63112 : Traveling Doctor's Medicine Pot +63113 : Traveling Doctor's Medicine Pot +63114 : Traveling Doctor's Medicine Pot +63120 : Traveling Doctor's Owl Feather +63121 : Traveling Doctor's Owl Feather +63122 : Traveling Doctor's Owl Feather +63123 : Traveling Doctor's Owl Feather +63124 : Traveling Doctor's Owl Feather +63130 : Traveling Doctor's Handkerchief +63131 : Traveling Doctor's Handkerchief +63132 : Traveling Doctor's Handkerchief +63133 : Traveling Doctor's Handkerchief +63134 : Traveling Doctor's Handkerchief +63140 : Traveling Doctor's Silver Lotus +63141 : Traveling Doctor's Silver Lotus +63142 : Traveling Doctor's Silver Lotus +63143 : Traveling Doctor's Silver Lotus +63144 : Traveling Doctor's Silver Lotus +63150 : Traveling Doctor's Pocket Watch +63151 : Traveling Doctor's Pocket Watch +63152 : Traveling Doctor's Pocket Watch +63153 : Traveling Doctor's Pocket Watch +63154 : Traveling Doctor's Pocket Watch +63210 : Traveling Doctor's Medicine Pot +63211 : Traveling Doctor's Medicine Pot +63212 : Traveling Doctor's Medicine Pot +63213 : Traveling Doctor's Medicine Pot +63214 : Traveling Doctor's Medicine Pot +63220 : Traveling Doctor's Owl Feather +63221 : Traveling Doctor's Owl Feather +63222 : Traveling Doctor's Owl Feather +63223 : Traveling Doctor's Owl Feather +63224 : Traveling Doctor's Owl Feather +63230 : Traveling Doctor's Handkerchief +63231 : Traveling Doctor's Handkerchief +63232 : Traveling Doctor's Handkerchief +63233 : Traveling Doctor's Handkerchief +63234 : Traveling Doctor's Handkerchief +63240 : Traveling Doctor's Silver Lotus +63241 : Traveling Doctor's Silver Lotus +63242 : Traveling Doctor's Silver Lotus +63243 : Traveling Doctor's Silver Lotus +63244 : Traveling Doctor's Silver Lotus +63250 : Traveling Doctor's Pocket Watch +63251 : Traveling Doctor's Pocket Watch +63252 : Traveling Doctor's Pocket Watch +63253 : Traveling Doctor's Pocket Watch +63254 : Traveling Doctor's Pocket Watch +63310 : Traveling Doctor's Medicine Pot +63311 : Traveling Doctor's Medicine Pot +63312 : Traveling Doctor's Medicine Pot +63313 : Traveling Doctor's Medicine Pot +63314 : Traveling Doctor's Medicine Pot +63320 : Traveling Doctor's Owl Feather +63321 : Traveling Doctor's Owl Feather +63322 : Traveling Doctor's Owl Feather +63323 : Traveling Doctor's Owl Feather +63324 : Traveling Doctor's Owl Feather +63330 : Traveling Doctor's Handkerchief +63331 : Traveling Doctor's Handkerchief +63332 : Traveling Doctor's Handkerchief +63333 : Traveling Doctor's Handkerchief +63334 : Traveling Doctor's Handkerchief +63340 : Traveling Doctor's Silver Lotus +63341 : Traveling Doctor's Silver Lotus +63342 : Traveling Doctor's Silver Lotus +63343 : Traveling Doctor's Silver Lotus +63344 : Traveling Doctor's Silver Lotus +63350 : Traveling Doctor's Pocket Watch +63351 : Traveling Doctor's Pocket Watch +63352 : Traveling Doctor's Pocket Watch +63353 : Traveling Doctor's Pocket Watch +63354 : Traveling Doctor's Pocket Watch +63410 : Traveling Doctor's Medicine Pot +63411 : Traveling Doctor's Medicine Pot +63412 : Traveling Doctor's Medicine Pot +63413 : Traveling Doctor's Medicine Pot +63414 : Traveling Doctor's Medicine Pot +63420 : Traveling Doctor's Owl Feather +63421 : Traveling Doctor's Owl Feather +63422 : Traveling Doctor's Owl Feather +63423 : Traveling Doctor's Owl Feather +63424 : Traveling Doctor's Owl Feather +63430 : Traveling Doctor's Handkerchief +63431 : Traveling Doctor's Handkerchief +63432 : Traveling Doctor's Handkerchief +63433 : Traveling Doctor's Handkerchief +63434 : Traveling Doctor's Handkerchief +63440 : Traveling Doctor's Silver Lotus +63441 : Traveling Doctor's Silver Lotus +63442 : Traveling Doctor's Silver Lotus +63443 : Traveling Doctor's Silver Lotus +63444 : Traveling Doctor's Silver Lotus +63450 : Traveling Doctor's Pocket Watch +63451 : Traveling Doctor's Pocket Watch +63452 : Traveling Doctor's Pocket Watch +63453 : Traveling Doctor's Pocket Watch +63454 : Traveling Doctor's Pocket Watch +71310 : Frost-Weaved Dignity +71311 : Frost-Weaved Dignity +71312 : Frost-Weaved Dignity +71313 : Frost-Weaved Dignity +71314 : Frost-Weaved Dignity +71320 : Icebreaker's Resolve +71321 : Icebreaker's Resolve +71322 : Icebreaker's Resolve +71323 : Icebreaker's Resolve +71324 : Icebreaker's Resolve +71330 : Broken Rime's Echo +71331 : Broken Rime's Echo +71332 : Broken Rime's Echo +71333 : Broken Rime's Echo +71334 : Broken Rime's Echo +71340 : Snowswept Memory +71341 : Snowswept Memory +71342 : Snowswept Memory +71343 : Snowswept Memory +71344 : Snowswept Memory +71350 : Frozen Homeland's Demise +71351 : Frozen Homeland's Demise +71352 : Frozen Homeland's Demise +71353 : Frozen Homeland's Demise +71354 : Frozen Homeland's Demise +71410 : Frost-Weaved Dignity +71411 : Frost-Weaved Dignity +71412 : Frost-Weaved Dignity +71413 : Frost-Weaved Dignity +71414 : Frost-Weaved Dignity +71420 : Icebreaker's Resolve +71421 : Icebreaker's Resolve +71422 : Icebreaker's Resolve +71423 : Icebreaker's Resolve +71424 : Icebreaker's Resolve +71430 : Broken Rime's Echo +71431 : Broken Rime's Echo +71432 : Broken Rime's Echo +71433 : Broken Rime's Echo +71434 : Broken Rime's Echo +71440 : Snowswept Memory +71441 : Snowswept Memory +71442 : Snowswept Memory +71443 : Snowswept Memory +71444 : Snowswept Memory +71450 : Frozen Homeland's Demise +71451 : Frozen Homeland's Demise +71452 : Frozen Homeland's Demise +71453 : Frozen Homeland's Demise +71454 : Frozen Homeland's Demise +71510 : Frost-Weaved Dignity +71511 : Frost-Weaved Dignity +71512 : Frost-Weaved Dignity +71513 : Frost-Weaved Dignity +71514 : Frost-Weaved Dignity +71520 : Icebreaker's Resolve +71521 : Icebreaker's Resolve +71522 : Icebreaker's Resolve +71523 : Icebreaker's Resolve +71524 : Icebreaker's Resolve +71530 : Broken Rime's Echo +71531 : Broken Rime's Echo +71532 : Broken Rime's Echo +71533 : Broken Rime's Echo +71534 : Broken Rime's Echo +71540 : Snowswept Memory +71541 : Snowswept Memory +71542 : Snowswept Memory +71543 : Snowswept Memory +71544 : Snowswept Memory +71550 : Frozen Homeland's Demise +71551 : Frozen Homeland's Demise +71552 : Frozen Homeland's Demise +71553 : Frozen Homeland's Demise +71554 : Frozen Homeland's Demise +72310 : Thundersoother's Goblet +72311 : Thundersoother's Goblet +72312 : Thundersoother's Goblet +72313 : Thundersoother's Goblet +72314 : Thundersoother's Goblet +72320 : Thundersoother's Plume +72321 : Thundersoother's Plume +72322 : Thundersoother's Plume +72323 : Thundersoother's Plume +72324 : Thundersoother's Plume +72330 : Thundersoother's Diadem +72331 : Thundersoother's Diadem +72332 : Thundersoother's Diadem +72333 : Thundersoother's Diadem +72334 : Thundersoother's Diadem +72340 : Thundersoother's Heart +72341 : Thundersoother's Heart +72342 : Thundersoother's Heart +72343 : Thundersoother's Heart +72344 : Thundersoother's Heart +72350 : Hour of Soothing Thunder +72351 : Hour of Soothing Thunder +72352 : Hour of Soothing Thunder +72353 : Hour of Soothing Thunder +72354 : Hour of Soothing Thunder +72410 : Thundersoother's Goblet +72411 : Thundersoother's Goblet +72412 : Thundersoother's Goblet +72413 : Thundersoother's Goblet +72414 : Thundersoother's Goblet +72420 : Thundersoother's Plume +72421 : Thundersoother's Plume +72422 : Thundersoother's Plume +72423 : Thundersoother's Plume +72424 : Thundersoother's Plume +72430 : Thundersoother's Diadem +72431 : Thundersoother's Diadem +72432 : Thundersoother's Diadem +72433 : Thundersoother's Diadem +72434 : Thundersoother's Diadem +72440 : Thundersoother's Heart +72441 : Thundersoother's Heart +72442 : Thundersoother's Heart +72443 : Thundersoother's Heart +72444 : Thundersoother's Heart +72450 : Hour of Soothing Thunder +72451 : Hour of Soothing Thunder +72452 : Hour of Soothing Thunder +72453 : Hour of Soothing Thunder +72454 : Hour of Soothing Thunder +72510 : Thundersoother's Goblet +72511 : Thundersoother's Goblet +72512 : Thundersoother's Goblet +72513 : Thundersoother's Goblet +72514 : Thundersoother's Goblet +72520 : Thundersoother's Plume +72521 : Thundersoother's Plume +72522 : Thundersoother's Plume +72523 : Thundersoother's Plume +72524 : Thundersoother's Plume +72530 : Thundersoother's Diadem +72531 : Thundersoother's Diadem +72532 : Thundersoother's Diadem +72533 : Thundersoother's Diadem +72534 : Thundersoother's Diadem +72540 : Thundersoother's Heart +72541 : Thundersoother's Heart +72542 : Thundersoother's Heart +72543 : Thundersoother's Heart +72544 : Thundersoother's Heart +72550 : Hour of Soothing Thunder +72551 : Hour of Soothing Thunder +72552 : Hour of Soothing Thunder +72553 : Hour of Soothing Thunder +72554 : Hour of Soothing Thunder +73310 : Lavawalker's Epiphany +73311 : Lavawalker's Epiphany +73312 : Lavawalker's Epiphany +73313 : Lavawalker's Epiphany +73314 : Lavawalker's Epiphany +73320 : Lavawalker's Salvation +73321 : Lavawalker's Salvation +73322 : Lavawalker's Salvation +73323 : Lavawalker's Salvation +73324 : Lavawalker's Salvation +73330 : Lavawalker's Wisdom +73331 : Lavawalker's Wisdom +73332 : Lavawalker's Wisdom +73333 : Lavawalker's Wisdom +73334 : Lavawalker's Wisdom +73340 : Lavawalker's Resolution +73341 : Lavawalker's Resolution +73342 : Lavawalker's Resolution +73343 : Lavawalker's Resolution +73344 : Lavawalker's Resolution +73350 : Lavawalker's Torment +73351 : Lavawalker's Torment +73352 : Lavawalker's Torment +73353 : Lavawalker's Torment +73354 : Lavawalker's Torment +73410 : Lavawalker's Epiphany +73411 : Lavawalker's Epiphany +73412 : Lavawalker's Epiphany +73413 : Lavawalker's Epiphany +73414 : Lavawalker's Epiphany +73420 : Lavawalker's Salvation +73421 : Lavawalker's Salvation +73422 : Lavawalker's Salvation +73423 : Lavawalker's Salvation +73424 : Lavawalker's Salvation +73430 : Lavawalker's Wisdom +73431 : Lavawalker's Wisdom +73432 : Lavawalker's Wisdom +73433 : Lavawalker's Wisdom +73434 : Lavawalker's Wisdom +73440 : Lavawalker's Resolution +73441 : Lavawalker's Resolution +73442 : Lavawalker's Resolution +73443 : Lavawalker's Resolution +73444 : Lavawalker's Resolution +73450 : Lavawalker's Torment +73451 : Lavawalker's Torment +73452 : Lavawalker's Torment +73453 : Lavawalker's Torment +73454 : Lavawalker's Torment +73510 : Lavawalker's Epiphany +73511 : Lavawalker's Epiphany +73512 : Lavawalker's Epiphany +73513 : Lavawalker's Epiphany +73514 : Lavawalker's Epiphany +73520 : Lavawalker's Salvation +73521 : Lavawalker's Salvation +73522 : Lavawalker's Salvation +73523 : Lavawalker's Salvation +73524 : Lavawalker's Salvation +73530 : Lavawalker's Wisdom +73531 : Lavawalker's Wisdom +73532 : Lavawalker's Wisdom +73533 : Lavawalker's Wisdom +73534 : Lavawalker's Wisdom +73540 : Lavawalker's Resolution +73541 : Lavawalker's Resolution +73542 : Lavawalker's Resolution +73543 : Lavawalker's Resolution +73544 : Lavawalker's Resolution +73550 : Lavawalker's Torment +73551 : Lavawalker's Torment +73552 : Lavawalker's Torment +73553 : Lavawalker's Torment +73554 : Lavawalker's Torment +74310 : Maiden's Fleeting Leisure +74311 : Maiden's Fleeting Leisure +74312 : Maiden's Fleeting Leisure +74313 : Maiden's Fleeting Leisure +74314 : Maiden's Fleeting Leisure +74320 : Maiden's Heart-stricken Infatuation +74321 : Maiden's Heart-stricken Infatuation +74322 : Maiden's Heart-stricken Infatuation +74323 : Maiden's Heart-stricken Infatuation +74324 : Maiden's Heart-stricken Infatuation +74330 : Maiden's Fading Beauty +74331 : Maiden's Fading Beauty +74332 : Maiden's Fading Beauty +74333 : Maiden's Fading Beauty +74334 : Maiden's Fading Beauty +74340 : Maiden's Distant Love +74341 : Maiden's Distant Love +74342 : Maiden's Distant Love +74343 : Maiden's Distant Love +74344 : Maiden's Distant Love +74350 : Maiden's Passing Youth +74351 : Maiden's Passing Youth +74352 : Maiden's Passing Youth +74353 : Maiden's Passing Youth +74354 : Maiden's Passing Youth +74410 : Maiden's Fleeting Leisure +74411 : Maiden's Fleeting Leisure +74412 : Maiden's Fleeting Leisure +74413 : Maiden's Fleeting Leisure +74414 : Maiden's Fleeting Leisure +74420 : Maiden's Heart-stricken Infatuation +74421 : Maiden's Heart-stricken Infatuation +74422 : Maiden's Heart-stricken Infatuation +74423 : Maiden's Heart-stricken Infatuation +74424 : Maiden's Heart-stricken Infatuation +74430 : Maiden's Fading Beauty +74431 : Maiden's Fading Beauty +74432 : Maiden's Fading Beauty +74433 : Maiden's Fading Beauty +74434 : Maiden's Fading Beauty +74440 : Maiden's Distant Love +74441 : Maiden's Distant Love +74442 : Maiden's Distant Love +74443 : Maiden's Distant Love +74444 : Maiden's Distant Love +74450 : Maiden's Passing Youth +74451 : Maiden's Passing Youth +74452 : Maiden's Passing Youth +74453 : Maiden's Passing Youth +74454 : Maiden's Passing Youth +74510 : Maiden's Fleeting Leisure +74511 : Maiden's Fleeting Leisure +74512 : Maiden's Fleeting Leisure +74513 : Maiden's Fleeting Leisure +74514 : Maiden's Fleeting Leisure +74520 : Maiden's Heart-stricken Infatuation +74521 : Maiden's Heart-stricken Infatuation +74522 : Maiden's Heart-stricken Infatuation +74523 : Maiden's Heart-stricken Infatuation +74524 : Maiden's Heart-stricken Infatuation +74530 : Maiden's Fading Beauty +74531 : Maiden's Fading Beauty +74532 : Maiden's Fading Beauty +74533 : Maiden's Fading Beauty +74534 : Maiden's Fading Beauty +74540 : Maiden's Distant Love +74541 : Maiden's Distant Love +74542 : Maiden's Distant Love +74543 : Maiden's Distant Love +74544 : Maiden's Distant Love +74550 : Maiden's Passing Youth +74551 : Maiden's Passing Youth +74552 : Maiden's Passing Youth +74553 : Maiden's Passing Youth +74554 : Maiden's Passing Youth +75310 : Gladiator's Intoxication +75311 : Gladiator's Intoxication +75312 : Gladiator's Intoxication +75313 : Gladiator's Intoxication +75314 : Gladiator's Intoxication +75320 : Gladiator's Destiny +75321 : Gladiator's Destiny +75322 : Gladiator's Destiny +75323 : Gladiator's Destiny +75324 : Gladiator's Destiny +75330 : Gladiator's Triumphus +75331 : Gladiator's Triumphus +75332 : Gladiator's Triumphus +75333 : Gladiator's Triumphus +75334 : Gladiator's Triumphus +75340 : Gladiator's Nostalgia +75341 : Gladiator's Nostalgia +75342 : Gladiator's Nostalgia +75343 : Gladiator's Nostalgia +75344 : Gladiator's Nostalgia +75350 : Gladiator's Longing +75351 : Gladiator's Longing +75352 : Gladiator's Longing +75353 : Gladiator's Longing +75354 : Gladiator's Longing +75410 : Gladiator's Intoxication +75411 : Gladiator's Intoxication +75412 : Gladiator's Intoxication +75413 : Gladiator's Intoxication +75414 : Gladiator's Intoxication +75420 : Gladiator's Destiny +75421 : Gladiator's Destiny +75422 : Gladiator's Destiny +75423 : Gladiator's Destiny +75424 : Gladiator's Destiny +75430 : Gladiator's Triumphus +75431 : Gladiator's Triumphus +75432 : Gladiator's Triumphus +75433 : Gladiator's Triumphus +75434 : Gladiator's Triumphus +75440 : Gladiator's Nostalgia +75441 : Gladiator's Nostalgia +75442 : Gladiator's Nostalgia +75443 : Gladiator's Nostalgia +75444 : Gladiator's Nostalgia +75450 : Gladiator's Longing +75451 : Gladiator's Longing +75452 : Gladiator's Longing +75453 : Gladiator's Longing +75454 : Gladiator's Longing +75510 : Gladiator's Intoxication +75511 : Gladiator's Intoxication +75512 : Gladiator's Intoxication +75513 : Gladiator's Intoxication +75514 : Gladiator's Intoxication +75520 : Gladiator's Destiny +75521 : Gladiator's Destiny +75522 : Gladiator's Destiny +75523 : Gladiator's Destiny +75524 : Gladiator's Destiny +75530 : Gladiator's Triumphus +75531 : Gladiator's Triumphus +75532 : Gladiator's Triumphus +75533 : Gladiator's Triumphus +75534 : Gladiator's Triumphus +75540 : Gladiator's Nostalgia +75541 : Gladiator's Nostalgia +75542 : Gladiator's Nostalgia +75543 : Gladiator's Nostalgia +75544 : Gladiator's Nostalgia +75550 : Gladiator's Longing +75551 : Gladiator's Longing +75552 : Gladiator's Longing +75553 : Gladiator's Longing +75554 : Gladiator's Longing +76310 : Viridescent Venerer's Vessel +76311 : Viridescent Venerer's Vessel +76312 : Viridescent Venerer's Vessel +76313 : Viridescent Venerer's Vessel +76314 : Viridescent Venerer's Vessel +76320 : Viridescent Arrow Feather +76321 : Viridescent Arrow Feather +76322 : Viridescent Arrow Feather +76323 : Viridescent Arrow Feather +76324 : Viridescent Arrow Feather +76330 : Viridescent Venerer's Diadem +76331 : Viridescent Venerer's Diadem +76332 : Viridescent Venerer's Diadem +76333 : Viridescent Venerer's Diadem +76334 : Viridescent Venerer's Diadem +76340 : In Remembrance of Viridescent Fields +76341 : In Remembrance of Viridescent Fields +76342 : In Remembrance of Viridescent Fields +76343 : In Remembrance of Viridescent Fields +76344 : In Remembrance of Viridescent Fields +76350 : Viridescent Venerer's Determination +76351 : Viridescent Venerer's Determination +76352 : Viridescent Venerer's Determination +76353 : Viridescent Venerer's Determination +76354 : Viridescent Venerer's Determination +76410 : Viridescent Venerer's Vessel +76411 : Viridescent Venerer's Vessel +76412 : Viridescent Venerer's Vessel +76413 : Viridescent Venerer's Vessel +76414 : Viridescent Venerer's Vessel +76420 : Viridescent Arrow Feather +76421 : Viridescent Arrow Feather +76422 : Viridescent Arrow Feather +76423 : Viridescent Arrow Feather +76424 : Viridescent Arrow Feather +76430 : Viridescent Venerer's Diadem +76431 : Viridescent Venerer's Diadem +76432 : Viridescent Venerer's Diadem +76433 : Viridescent Venerer's Diadem +76434 : Viridescent Venerer's Diadem +76440 : In Remembrance of Viridescent Fields +76441 : In Remembrance of Viridescent Fields +76442 : In Remembrance of Viridescent Fields +76443 : In Remembrance of Viridescent Fields +76444 : In Remembrance of Viridescent Fields +76450 : Viridescent Venerer's Determination +76451 : Viridescent Venerer's Determination +76452 : Viridescent Venerer's Determination +76453 : Viridescent Venerer's Determination +76454 : Viridescent Venerer's Determination +76510 : Viridescent Venerer's Vessel +76511 : Viridescent Venerer's Vessel +76512 : Viridescent Venerer's Vessel +76513 : Viridescent Venerer's Vessel +76514 : Viridescent Venerer's Vessel +76520 : Viridescent Arrow Feather +76521 : Viridescent Arrow Feather +76522 : Viridescent Arrow Feather +76523 : Viridescent Arrow Feather +76524 : Viridescent Arrow Feather +76530 : Viridescent Venerer's Diadem +76531 : Viridescent Venerer's Diadem +76532 : Viridescent Venerer's Diadem +76533 : Viridescent Venerer's Diadem +76534 : Viridescent Venerer's Diadem +76540 : In Remembrance of Viridescent Fields +76541 : In Remembrance of Viridescent Fields +76542 : In Remembrance of Viridescent Fields +76543 : In Remembrance of Viridescent Fields +76544 : In Remembrance of Viridescent Fields +76550 : Viridescent Venerer's Determination +76551 : Viridescent Venerer's Determination +76552 : Viridescent Venerer's Determination +76553 : Viridescent Venerer's Determination +76554 : Viridescent Venerer's Determination +77310 : Wanderer's String-Kettle +77311 : Wanderer's String-Kettle +77312 : Wanderer's String-Kettle +77313 : Wanderer's String-Kettle +77314 : Wanderer's String-Kettle +77320 : Bard's Arrow Feather +77321 : Bard's Arrow Feather +77322 : Bard's Arrow Feather +77323 : Bard's Arrow Feather +77324 : Bard's Arrow Feather +77330 : Conductor's Top Hat +77331 : Conductor's Top Hat +77332 : Conductor's Top Hat +77333 : Conductor's Top Hat +77334 : Conductor's Top Hat +77340 : Troupe's Dawnlight +77341 : Troupe's Dawnlight +77342 : Troupe's Dawnlight +77343 : Troupe's Dawnlight +77344 : Troupe's Dawnlight +77350 : Concert's Final Hour +77351 : Concert's Final Hour +77352 : Concert's Final Hour +77353 : Concert's Final Hour +77354 : Concert's Final Hour +77410 : Wanderer's String-Kettle +77411 : Wanderer's String-Kettle +77412 : Wanderer's String-Kettle +77413 : Wanderer's String-Kettle +77414 : Wanderer's String-Kettle +77420 : Bard's Arrow Feather +77421 : Bard's Arrow Feather +77422 : Bard's Arrow Feather +77423 : Bard's Arrow Feather +77424 : Bard's Arrow Feather +77430 : Conductor's Top Hat +77431 : Conductor's Top Hat +77432 : Conductor's Top Hat +77433 : Conductor's Top Hat +77434 : Conductor's Top Hat +77440 : Troupe's Dawnlight +77441 : Troupe's Dawnlight +77442 : Troupe's Dawnlight +77443 : Troupe's Dawnlight +77444 : Troupe's Dawnlight +77450 : Concert's Final Hour +77451 : Concert's Final Hour +77452 : Concert's Final Hour +77453 : Concert's Final Hour +77454 : Concert's Final Hour +77510 : Wanderer's String-Kettle +77511 : Wanderer's String-Kettle +77512 : Wanderer's String-Kettle +77513 : Wanderer's String-Kettle +77514 : Wanderer's String-Kettle +77520 : Bard's Arrow Feather +77521 : Bard's Arrow Feather +77522 : Bard's Arrow Feather +77523 : Bard's Arrow Feather +77524 : Bard's Arrow Feather +77530 : Conductor's Top Hat +77531 : Conductor's Top Hat +77532 : Conductor's Top Hat +77533 : Conductor's Top Hat +77534 : Conductor's Top Hat +77540 : Troupe's Dawnlight +77541 : Troupe's Dawnlight +77542 : Troupe's Dawnlight +77543 : Troupe's Dawnlight +77544 : Troupe's Dawnlight +77550 : Concert's Final Hour +77551 : Concert's Final Hour +77552 : Concert's Final Hour +77553 : Concert's Final Hour +77554 : Concert's Final Hour +78310 : Goblet of Aquilo +78311 : Goblet of Aquilo +78312 : Goblet of Aquilo +78313 : Goblet of Aquilo +78314 : Goblet of Aquilo +78320 : Plume of Snow +78321 : Plume of Snow +78322 : Plume of Snow +78323 : Plume of Snow +78324 : Plume of Snow +78330 : Crown of Glacier +78331 : Crown of Glacier +78332 : Crown of Glacier +78333 : Crown of Glacier +78334 : Crown of Glacier +78340 : Heart of Frost +78341 : Heart of Frost +78342 : Heart of Frost +78343 : Heart of Frost +78344 : Heart of Frost +78350 : Glacial Sand +78351 : Glacial Sand +78352 : Glacial Sand +78353 : Glacial Sand +78354 : Glacial Sand +78410 : Goblet of Aquilo +78411 : Goblet of Aquilo +78412 : Goblet of Aquilo +78413 : Goblet of Aquilo +78414 : Goblet of Aquilo +78420 : Plume of Snow +78421 : Plume of Snow +78422 : Plume of Snow +78423 : Plume of Snow +78424 : Plume of Snow +78430 : Crown of Glacier +78431 : Crown of Glacier +78432 : Crown of Glacier +78433 : Crown of Glacier +78434 : Crown of Glacier +78440 : Heart of Frost +78441 : Heart of Frost +78442 : Heart of Frost +78443 : Heart of Frost +78444 : Heart of Frost +78450 : Glacial Sand +78451 : Glacial Sand +78452 : Glacial Sand +78453 : Glacial Sand +78454 : Glacial Sand +78510 : Goblet of Aquilo +78511 : Goblet of Aquilo +78512 : Goblet of Aquilo +78513 : Goblet of Aquilo +78514 : Goblet of Aquilo +78520 : Plume of Snow +78521 : Plume of Snow +78522 : Plume of Snow +78523 : Plume of Snow +78524 : Plume of Snow +78530 : Crown of Glacier +78531 : Crown of Glacier +78532 : Crown of Glacier +78533 : Crown of Glacier +78534 : Crown of Glacier +78540 : Heart of Frost +78541 : Heart of Frost +78542 : Heart of Frost +78543 : Heart of Frost +78544 : Heart of Frost +78550 : Glacial Sand +78551 : Glacial Sand +78552 : Glacial Sand +78553 : Glacial Sand +78554 : Glacial Sand +79310 : Omen of Thunderstorm +79311 : Omen of Thunderstorm +79312 : Omen of Thunderstorm +79313 : Omen of Thunderstorm +79314 : Omen of Thunderstorm +79320 : Survivor of Catastrophe +79321 : Survivor of Catastrophe +79322 : Survivor of Catastrophe +79323 : Survivor of Catastrophe +79324 : Survivor of Catastrophe +79330 : Thunder Summoner's Crown +79331 : Thunder Summoner's Crown +79332 : Thunder Summoner's Crown +79333 : Thunder Summoner's Crown +79334 : Thunder Summoner's Crown +79340 : Thunderbird's Mercy +79341 : Thunderbird's Mercy +79342 : Thunderbird's Mercy +79343 : Thunderbird's Mercy +79344 : Thunderbird's Mercy +79350 : Hourglass of Thunder +79351 : Hourglass of Thunder +79352 : Hourglass of Thunder +79353 : Hourglass of Thunder +79354 : Hourglass of Thunder +79410 : Omen of Thunderstorm +79411 : Omen of Thunderstorm +79412 : Omen of Thunderstorm +79413 : Omen of Thunderstorm +79414 : Omen of Thunderstorm +79420 : Survivor of Catastrophe +79421 : Survivor of Catastrophe +79422 : Survivor of Catastrophe +79423 : Survivor of Catastrophe +79424 : Survivor of Catastrophe +79430 : Thunder Summoner's Crown +79431 : Thunder Summoner's Crown +79432 : Thunder Summoner's Crown +79433 : Thunder Summoner's Crown +79434 : Thunder Summoner's Crown +79440 : Thunderbird's Mercy +79441 : Thunderbird's Mercy +79442 : Thunderbird's Mercy +79443 : Thunderbird's Mercy +79444 : Thunderbird's Mercy +79450 : Hourglass of Thunder +79451 : Hourglass of Thunder +79452 : Hourglass of Thunder +79453 : Hourglass of Thunder +79454 : Hourglass of Thunder +79510 : Omen of Thunderstorm +79511 : Omen of Thunderstorm +79512 : Omen of Thunderstorm +79513 : Omen of Thunderstorm +79514 : Omen of Thunderstorm +79520 : Survivor of Catastrophe +79521 : Survivor of Catastrophe +79522 : Survivor of Catastrophe +79523 : Survivor of Catastrophe +79524 : Survivor of Catastrophe +79530 : Thunder Summoner's Crown +79531 : Thunder Summoner's Crown +79532 : Thunder Summoner's Crown +79533 : Thunder Summoner's Crown +79534 : Thunder Summoner's Crown +79540 : Thunderbird's Mercy +79541 : Thunderbird's Mercy +79542 : Thunderbird's Mercy +79543 : Thunderbird's Mercy +79544 : Thunderbird's Mercy +79550 : Hourglass of Thunder +79551 : Hourglass of Thunder +79552 : Hourglass of Thunder +79553 : Hourglass of Thunder +79554 : Hourglass of Thunder +80310 : Witch's Heart Flames +80311 : Witch's Heart Flames +80312 : Witch's Heart Flames +80313 : Witch's Heart Flames +80314 : Witch's Heart Flames +80320 : Witch's Ever-Burning Plume +80321 : Witch's Ever-Burning Plume +80322 : Witch's Ever-Burning Plume +80323 : Witch's Ever-Burning Plume +80324 : Witch's Ever-Burning Plume +80330 : Witch's Scorching Hat +80331 : Witch's Scorching Hat +80332 : Witch's Scorching Hat +80333 : Witch's Scorching Hat +80334 : Witch's Scorching Hat +80340 : Witch's Flower of Blaze +80341 : Witch's Flower of Blaze +80342 : Witch's Flower of Blaze +80343 : Witch's Flower of Blaze +80344 : Witch's Flower of Blaze +80350 : Witch's End Time +80351 : Witch's End Time +80352 : Witch's End Time +80353 : Witch's End Time +80354 : Witch's End Time +80410 : Witch's Heart Flames +80411 : Witch's Heart Flames +80412 : Witch's Heart Flames +80413 : Witch's Heart Flames +80414 : Witch's Heart Flames +80420 : Witch's Ever-Burning Plume +80421 : Witch's Ever-Burning Plume +80422 : Witch's Ever-Burning Plume +80423 : Witch's Ever-Burning Plume +80424 : Witch's Ever-Burning Plume +80430 : Witch's Scorching Hat +80431 : Witch's Scorching Hat +80432 : Witch's Scorching Hat +80433 : Witch's Scorching Hat +80434 : Witch's Scorching Hat +80440 : Witch's Flower of Blaze +80441 : Witch's Flower of Blaze +80442 : Witch's Flower of Blaze +80443 : Witch's Flower of Blaze +80444 : Witch's Flower of Blaze +80450 : Witch's End Time +80451 : Witch's End Time +80452 : Witch's End Time +80453 : Witch's End Time +80454 : Witch's End Time +80510 : Witch's Heart Flames +80511 : Witch's Heart Flames +80512 : Witch's Heart Flames +80513 : Witch's Heart Flames +80514 : Witch's Heart Flames +80520 : Witch's Ever-Burning Plume +80521 : Witch's Ever-Burning Plume +80522 : Witch's Ever-Burning Plume +80523 : Witch's Ever-Burning Plume +80524 : Witch's Ever-Burning Plume +80530 : Witch's Scorching Hat +80531 : Witch's Scorching Hat +80532 : Witch's Scorching Hat +80533 : Witch's Scorching Hat +80534 : Witch's Scorching Hat +80540 : Witch's Flower of Blaze +80541 : Witch's Flower of Blaze +80542 : Witch's Flower of Blaze +80543 : Witch's Flower of Blaze +80544 : Witch's Flower of Blaze +80550 : Witch's End Time +80551 : Witch's End Time +80552 : Witch's End Time +80553 : Witch's End Time +80554 : Witch's End Time +81310 : Royal Silver Urn +81311 : Royal Silver Urn +81312 : Royal Silver Urn +81313 : Royal Silver Urn +81314 : Royal Silver Urn +81320 : Royal Plume +81321 : Royal Plume +81322 : Royal Plume +81323 : Royal Plume +81324 : Royal Plume +81330 : Royal Masque +81331 : Royal Masque +81332 : Royal Masque +81333 : Royal Masque +81334 : Royal Masque +81340 : Royal Flora +81341 : Royal Flora +81342 : Royal Flora +81343 : Royal Flora +81344 : Royal Flora +81350 : Royal Pocket Watch +81351 : Royal Pocket Watch +81352 : Royal Pocket Watch +81353 : Royal Pocket Watch +81354 : Royal Pocket Watch +81410 : Royal Silver Urn +81411 : Royal Silver Urn +81412 : Royal Silver Urn +81413 : Royal Silver Urn +81414 : Royal Silver Urn +81420 : Royal Plume +81421 : Royal Plume +81422 : Royal Plume +81423 : Royal Plume +81424 : Royal Plume +81430 : Royal Masque +81431 : Royal Masque +81432 : Royal Masque +81433 : Royal Masque +81434 : Royal Masque +81440 : Royal Flora +81441 : Royal Flora +81442 : Royal Flora +81443 : Royal Flora +81444 : Royal Flora +81450 : Royal Pocket Watch +81451 : Royal Pocket Watch +81452 : Royal Pocket Watch +81453 : Royal Pocket Watch +81454 : Royal Pocket Watch +81510 : Royal Silver Urn +81511 : Royal Silver Urn +81512 : Royal Silver Urn +81513 : Royal Silver Urn +81514 : Royal Silver Urn +81520 : Royal Plume +81521 : Royal Plume +81522 : Royal Plume +81523 : Royal Plume +81524 : Royal Plume +81530 : Royal Masque +81531 : Royal Masque +81532 : Royal Masque +81533 : Royal Masque +81534 : Royal Masque +81540 : Royal Flora +81541 : Royal Flora +81542 : Royal Flora +81543 : Royal Flora +81544 : Royal Flora +81550 : Royal Pocket Watch +81551 : Royal Pocket Watch +81552 : Royal Pocket Watch +81553 : Royal Pocket Watch +81554 : Royal Pocket Watch +82310 : Bloodstained Chevalier's Goblet +82311 : Bloodstained Chevalier's Goblet +82312 : Bloodstained Chevalier's Goblet +82313 : Bloodstained Chevalier's Goblet +82314 : Bloodstained Chevalier's Goblet +82320 : Bloodstained Black Plume +82321 : Bloodstained Black Plume +82322 : Bloodstained Black Plume +82323 : Bloodstained Black Plume +82324 : Bloodstained Black Plume +82330 : Bloodstained Iron Mask +82331 : Bloodstained Iron Mask +82332 : Bloodstained Iron Mask +82333 : Bloodstained Iron Mask +82334 : Bloodstained Iron Mask +82340 : Bloodstained Flower of Iron +82341 : Bloodstained Flower of Iron +82342 : Bloodstained Flower of Iron +82343 : Bloodstained Flower of Iron +82344 : Bloodstained Flower of Iron +82350 : Bloodstained Final Hour +82351 : Bloodstained Final Hour +82352 : Bloodstained Final Hour +82353 : Bloodstained Final Hour +82354 : Bloodstained Final Hour +82410 : Bloodstained Chevalier's Goblet +82411 : Bloodstained Chevalier's Goblet +82412 : Bloodstained Chevalier's Goblet +82413 : Bloodstained Chevalier's Goblet +82414 : Bloodstained Chevalier's Goblet +82420 : Bloodstained Black Plume +82421 : Bloodstained Black Plume +82422 : Bloodstained Black Plume +82423 : Bloodstained Black Plume +82424 : Bloodstained Black Plume +82430 : Bloodstained Iron Mask +82431 : Bloodstained Iron Mask +82432 : Bloodstained Iron Mask +82433 : Bloodstained Iron Mask +82434 : Bloodstained Iron Mask +82440 : Bloodstained Flower of Iron +82441 : Bloodstained Flower of Iron +82442 : Bloodstained Flower of Iron +82443 : Bloodstained Flower of Iron +82444 : Bloodstained Flower of Iron +82450 : Bloodstained Final Hour +82451 : Bloodstained Final Hour +82452 : Bloodstained Final Hour +82453 : Bloodstained Final Hour +82454 : Bloodstained Final Hour +82510 : Bloodstained Chevalier's Goblet +82511 : Bloodstained Chevalier's Goblet +82512 : Bloodstained Chevalier's Goblet +82513 : Bloodstained Chevalier's Goblet +82514 : Bloodstained Chevalier's Goblet +82520 : Bloodstained Black Plume +82521 : Bloodstained Black Plume +82522 : Bloodstained Black Plume +82523 : Bloodstained Black Plume +82524 : Bloodstained Black Plume +82530 : Bloodstained Iron Mask +82531 : Bloodstained Iron Mask +82532 : Bloodstained Iron Mask +82533 : Bloodstained Iron Mask +82534 : Bloodstained Iron Mask +82540 : Bloodstained Flower of Iron +82541 : Bloodstained Flower of Iron +82542 : Bloodstained Flower of Iron +82543 : Bloodstained Flower of Iron +82544 : Bloodstained Flower of Iron +82550 : Bloodstained Final Hour +82551 : Bloodstained Final Hour +82552 : Bloodstained Final Hour +82553 : Bloodstained Final Hour +82554 : Bloodstained Final Hour +83330 : Tiara of Flame +83331 : Tiara of Flame +83332 : Tiara of Flame +83333 : Tiara of Flame +83334 : Tiara of Flame +83430 : Tiara of Flame +83431 : Tiara of Flame +83432 : Tiara of Flame +83433 : Tiara of Flame +83434 : Tiara of Flame +83530 : Tiara of Flame +83531 : Tiara of Flame +83532 : Tiara of Flame +83533 : Tiara of Flame +83534 : Tiara of Flame +84330 : Tiara of Torrents +84331 : Tiara of Torrents +84332 : Tiara of Torrents +84333 : Tiara of Torrents +84334 : Tiara of Torrents +84430 : Tiara of Torrents +84431 : Tiara of Torrents +84432 : Tiara of Torrents +84433 : Tiara of Torrents +84434 : Tiara of Torrents +84530 : Tiara of Torrents +84531 : Tiara of Torrents +84532 : Tiara of Torrents +84533 : Tiara of Torrents +84534 : Tiara of Torrents +85330 : Tiara of Thunder +85331 : Tiara of Thunder +85332 : Tiara of Thunder +85333 : Tiara of Thunder +85334 : Tiara of Thunder +85430 : Tiara of Thunder +85431 : Tiara of Thunder +85432 : Tiara of Thunder +85433 : Tiara of Thunder +85434 : Tiara of Thunder +85530 : Tiara of Thunder +85531 : Tiara of Thunder +85532 : Tiara of Thunder +85533 : Tiara of Thunder +85534 : Tiara of Thunder +86330 : Tiara of Gales +86331 : Tiara of Gales +86332 : Tiara of Gales +86333 : Tiara of Gales +86334 : Tiara of Gales +86430 : Tiara of Gales +86431 : Tiara of Gales +86432 : Tiara of Gales +86433 : Tiara of Gales +86434 : Tiara of Gales +86530 : Tiara of Gales +86531 : Tiara of Gales +86532 : Tiara of Gales +86533 : Tiara of Gales +86534 : Tiara of Gales +87330 : Tiara of Frost +87331 : Tiara of Frost +87332 : Tiara of Frost +87333 : Tiara of Frost +87334 : Tiara of Frost +87430 : Tiara of Frost +87431 : Tiara of Frost +87432 : Tiara of Frost +87433 : Tiara of Frost +87434 : Tiara of Frost +87530 : Tiara of Frost +87531 : Tiara of Frost +87532 : Tiara of Frost +87533 : Tiara of Frost +87534 : Tiara of Frost +88310 : Goblet of Chiseled Crag +88311 : Goblet of Chiseled Crag +88312 : Goblet of Chiseled Crag +88313 : Goblet of Chiseled Crag +88314 : Goblet of Chiseled Crag +88320 : Feather of Jagged Peaks +88321 : Feather of Jagged Peaks +88322 : Feather of Jagged Peaks +88323 : Feather of Jagged Peaks +88324 : Feather of Jagged Peaks +88330 : Mask of Solitude Basalt +88331 : Mask of Solitude Basalt +88332 : Mask of Solitude Basalt +88333 : Mask of Solitude Basalt +88334 : Mask of Solitude Basalt +88340 : Flower of Creviced Cliff +88341 : Flower of Creviced Cliff +88342 : Flower of Creviced Cliff +88343 : Flower of Creviced Cliff +88344 : Flower of Creviced Cliff +88350 : Sundial of Enduring Jade +88351 : Sundial of Enduring Jade +88352 : Sundial of Enduring Jade +88353 : Sundial of Enduring Jade +88354 : Sundial of Enduring Jade +88410 : Goblet of Chiseled Crag +88411 : Goblet of Chiseled Crag +88412 : Goblet of Chiseled Crag +88413 : Goblet of Chiseled Crag +88414 : Goblet of Chiseled Crag +88420 : Feather of Jagged Peaks +88421 : Feather of Jagged Peaks +88422 : Feather of Jagged Peaks +88423 : Feather of Jagged Peaks +88424 : Feather of Jagged Peaks +88430 : Mask of Solitude Basalt +88431 : Mask of Solitude Basalt +88432 : Mask of Solitude Basalt +88433 : Mask of Solitude Basalt +88434 : Mask of Solitude Basalt +88440 : Flower of Creviced Cliff +88441 : Flower of Creviced Cliff +88442 : Flower of Creviced Cliff +88443 : Flower of Creviced Cliff +88444 : Flower of Creviced Cliff +88450 : Sundial of Enduring Jade +88451 : Sundial of Enduring Jade +88452 : Sundial of Enduring Jade +88453 : Sundial of Enduring Jade +88454 : Sundial of Enduring Jade +88510 : Goblet of Chiseled Crag +88511 : Goblet of Chiseled Crag +88512 : Goblet of Chiseled Crag +88513 : Goblet of Chiseled Crag +88514 : Goblet of Chiseled Crag +88520 : Feather of Jagged Peaks +88521 : Feather of Jagged Peaks +88522 : Feather of Jagged Peaks +88523 : Feather of Jagged Peaks +88524 : Feather of Jagged Peaks +88530 : Mask of Solitude Basalt +88531 : Mask of Solitude Basalt +88532 : Mask of Solitude Basalt +88533 : Mask of Solitude Basalt +88534 : Mask of Solitude Basalt +88540 : Flower of Creviced Cliff +88541 : Flower of Creviced Cliff +88542 : Flower of Creviced Cliff +88543 : Flower of Creviced Cliff +88544 : Flower of Creviced Cliff +88550 : Sundial of Enduring Jade +88551 : Sundial of Enduring Jade +88552 : Sundial of Enduring Jade +88553 : Sundial of Enduring Jade +88554 : Sundial of Enduring Jade +89310 : Summer Night's Waterballoon +89311 : Summer Night's Waterballoon +89312 : Summer Night's Waterballoon +89313 : Summer Night's Waterballoon +89314 : Summer Night's Waterballoon +89320 : Summer Night's Finale +89321 : Summer Night's Finale +89322 : Summer Night's Finale +89323 : Summer Night's Finale +89324 : Summer Night's Finale +89330 : Summer Night's Mask +89331 : Summer Night's Mask +89332 : Summer Night's Mask +89333 : Summer Night's Mask +89334 : Summer Night's Mask +89340 : Summer Night's Bloom +89341 : Summer Night's Bloom +89342 : Summer Night's Bloom +89343 : Summer Night's Bloom +89344 : Summer Night's Bloom +89350 : Summer Night's Moment +89351 : Summer Night's Moment +89352 : Summer Night's Moment +89353 : Summer Night's Moment +89354 : Summer Night's Moment +89410 : Summer Night's Waterballoon +89411 : Summer Night's Waterballoon +89412 : Summer Night's Waterballoon +89413 : Summer Night's Waterballoon +89414 : Summer Night's Waterballoon +89420 : Summer Night's Finale +89421 : Summer Night's Finale +89422 : Summer Night's Finale +89423 : Summer Night's Finale +89424 : Summer Night's Finale +89430 : Summer Night's Mask +89431 : Summer Night's Mask +89432 : Summer Night's Mask +89433 : Summer Night's Mask +89434 : Summer Night's Mask +89440 : Summer Night's Bloom +89441 : Summer Night's Bloom +89442 : Summer Night's Bloom +89443 : Summer Night's Bloom +89444 : Summer Night's Bloom +89450 : Summer Night's Moment +89451 : Summer Night's Moment +89452 : Summer Night's Moment +89453 : Summer Night's Moment +89454 : Summer Night's Moment +89510 : Summer Night's Waterballoon +89511 : Summer Night's Waterballoon +89512 : Summer Night's Waterballoon +89513 : Summer Night's Waterballoon +89514 : Summer Night's Waterballoon +89520 : Summer Night's Finale +89521 : Summer Night's Finale +89522 : Summer Night's Finale +89523 : Summer Night's Finale +89524 : Summer Night's Finale +89530 : Summer Night's Mask +89531 : Summer Night's Mask +89532 : Summer Night's Mask +89533 : Summer Night's Mask +89534 : Summer Night's Mask +89540 : Summer Night's Bloom +89541 : Summer Night's Bloom +89542 : Summer Night's Bloom +89543 : Summer Night's Bloom +89544 : Summer Night's Bloom +89550 : Summer Night's Moment +89551 : Summer Night's Moment +89552 : Summer Night's Moment +89553 : Summer Night's Moment +89554 : Summer Night's Moment +90310 : Goblet of Thundering Deep +90311 : Goblet of Thundering Deep +90312 : Goblet of Thundering Deep +90313 : Goblet of Thundering Deep +90314 : Goblet of Thundering Deep +90320 : Gust of Nostalgia +90321 : Gust of Nostalgia +90322 : Gust of Nostalgia +90323 : Gust of Nostalgia +90324 : Gust of Nostalgia +90330 : Wine-Stained Tricorne +90331 : Wine-Stained Tricorne +90332 : Wine-Stained Tricorne +90333 : Wine-Stained Tricorne +90334 : Wine-Stained Tricorne +90340 : Gilded Corsage +90341 : Gilded Corsage +90342 : Gilded Corsage +90343 : Gilded Corsage +90344 : Gilded Corsage +90350 : Copper Compass +90351 : Copper Compass +90352 : Copper Compass +90353 : Copper Compass +90354 : Copper Compass +90410 : Goblet of Thundering Deep +90411 : Goblet of Thundering Deep +90412 : Goblet of Thundering Deep +90413 : Goblet of Thundering Deep +90414 : Goblet of Thundering Deep +90420 : Gust of Nostalgia +90421 : Gust of Nostalgia +90422 : Gust of Nostalgia +90423 : Gust of Nostalgia +90424 : Gust of Nostalgia +90430 : Wine-Stained Tricorne +90431 : Wine-Stained Tricorne +90432 : Wine-Stained Tricorne +90433 : Wine-Stained Tricorne +90434 : Wine-Stained Tricorne +90440 : Gilded Corsage +90441 : Gilded Corsage +90442 : Gilded Corsage +90443 : Gilded Corsage +90444 : Gilded Corsage +90450 : Copper Compass +90451 : Copper Compass +90452 : Copper Compass +90453 : Copper Compass +90454 : Copper Compass +90510 : Goblet of Thundering Deep +90511 : Goblet of Thundering Deep +90512 : Goblet of Thundering Deep +90513 : Goblet of Thundering Deep +90514 : Goblet of Thundering Deep +90520 : Gust of Nostalgia +90521 : Gust of Nostalgia +90522 : Gust of Nostalgia +90523 : Gust of Nostalgia +90524 : Gust of Nostalgia +90530 : Wine-Stained Tricorne +90531 : Wine-Stained Tricorne +90532 : Wine-Stained Tricorne +90533 : Wine-Stained Tricorne +90534 : Wine-Stained Tricorne +90540 : Gilded Corsage +90541 : Gilded Corsage +90542 : Gilded Corsage +90543 : Gilded Corsage +90544 : Gilded Corsage +90550 : Copper Compass +90551 : Copper Compass +90552 : Copper Compass +90553 : Copper Compass +90554 : Copper Compass +91310 : Noble's Pledging Vessel +91311 : Noble's Pledging Vessel +91312 : Noble's Pledging Vessel +91313 : Noble's Pledging Vessel +91314 : Noble's Pledging Vessel +91320 : Ceremonial War-Plume +91321 : Ceremonial War-Plume +91322 : Ceremonial War-Plume +91323 : Ceremonial War-Plume +91324 : Ceremonial War-Plume +91330 : General's Ancient Helm +91331 : General's Ancient Helm +91332 : General's Ancient Helm +91333 : General's Ancient Helm +91334 : General's Ancient Helm +91340 : Flower of Accolades +91341 : Flower of Accolades +91342 : Flower of Accolades +91343 : Flower of Accolades +91344 : Flower of Accolades +91350 : Orichalceous Time-Dial +91351 : Orichalceous Time-Dial +91352 : Orichalceous Time-Dial +91353 : Orichalceous Time-Dial +91354 : Orichalceous Time-Dial +91410 : Noble's Pledging Vessel +91411 : Noble's Pledging Vessel +91412 : Noble's Pledging Vessel +91413 : Noble's Pledging Vessel +91414 : Noble's Pledging Vessel +91420 : Ceremonial War-Plume +91421 : Ceremonial War-Plume +91422 : Ceremonial War-Plume +91423 : Ceremonial War-Plume +91424 : Ceremonial War-Plume +91430 : General's Ancient Helm +91431 : General's Ancient Helm +91432 : General's Ancient Helm +91433 : General's Ancient Helm +91434 : General's Ancient Helm +91440 : Flower of Accolades +91441 : Flower of Accolades +91442 : Flower of Accolades +91443 : Flower of Accolades +91444 : Flower of Accolades +91450 : Orichalceous Time-Dial +91451 : Orichalceous Time-Dial +91452 : Orichalceous Time-Dial +91453 : Orichalceous Time-Dial +91454 : Orichalceous Time-Dial +91510 : Noble's Pledging Vessel +91511 : Noble's Pledging Vessel +91512 : Noble's Pledging Vessel +91513 : Noble's Pledging Vessel +91514 : Noble's Pledging Vessel +91520 : Ceremonial War-Plume +91521 : Ceremonial War-Plume +91522 : Ceremonial War-Plume +91523 : Ceremonial War-Plume +91524 : Ceremonial War-Plume +91530 : General's Ancient Helm +91531 : General's Ancient Helm +91532 : General's Ancient Helm +91533 : General's Ancient Helm +91534 : General's Ancient Helm +91540 : Flower of Accolades +91541 : Flower of Accolades +91542 : Flower of Accolades +91543 : Flower of Accolades +91544 : Flower of Accolades +91550 : Orichalceous Time-Dial +91551 : Orichalceous Time-Dial +91552 : Orichalceous Time-Dial +91553 : Orichalceous Time-Dial +91554 : Orichalceous Time-Dial +92310 : Surpassing Cup +92311 : Surpassing Cup +92312 : Surpassing Cup +92313 : Surpassing Cup +92314 : Surpassing Cup +92320 : Wise Doctor's Pinion +92321 : Wise Doctor's Pinion +92322 : Wise Doctor's Pinion +92323 : Wise Doctor's Pinion +92324 : Wise Doctor's Pinion +92330 : Mocking Mask +92331 : Mocking Mask +92332 : Mocking Mask +92333 : Mocking Mask +92334 : Mocking Mask +92340 : Stainless Bloom +92341 : Stainless Bloom +92342 : Stainless Bloom +92343 : Stainless Bloom +92344 : Stainless Bloom +92350 : Moment of Cessation +92351 : Moment of Cessation +92352 : Moment of Cessation +92353 : Moment of Cessation +92354 : Moment of Cessation +92410 : Surpassing Cup +92411 : Surpassing Cup +92412 : Surpassing Cup +92413 : Surpassing Cup +92414 : Surpassing Cup +92420 : Wise Doctor's Pinion +92421 : Wise Doctor's Pinion +92422 : Wise Doctor's Pinion +92423 : Wise Doctor's Pinion +92424 : Wise Doctor's Pinion +92430 : Mocking Mask +92431 : Mocking Mask +92432 : Mocking Mask +92433 : Mocking Mask +92434 : Mocking Mask +92440 : Stainless Bloom +92441 : Stainless Bloom +92442 : Stainless Bloom +92443 : Stainless Bloom +92444 : Stainless Bloom +92450 : Moment of Cessation +92451 : Moment of Cessation +92452 : Moment of Cessation +92453 : Moment of Cessation +92454 : Moment of Cessation +92510 : Surpassing Cup +92511 : Surpassing Cup +92512 : Surpassing Cup +92513 : Surpassing Cup +92514 : Surpassing Cup +92520 : Wise Doctor's Pinion +92521 : Wise Doctor's Pinion +92522 : Wise Doctor's Pinion +92523 : Wise Doctor's Pinion +92524 : Wise Doctor's Pinion +92530 : Mocking Mask +92531 : Mocking Mask +92532 : Mocking Mask +92533 : Mocking Mask +92534 : Mocking Mask +92540 : Stainless Bloom +92541 : Stainless Bloom +92542 : Stainless Bloom +92543 : Stainless Bloom +92544 : Stainless Bloom +92550 : Moment of Cessation +92551 : Moment of Cessation +92552 : Moment of Cessation +92553 : Moment of Cessation +92554 : Moment of Cessation +93412 : Hopeful Heart +93413 : Hopeful Heart +93422 : Shaft of Remembrance +93423 : Shaft of Remembrance +93432 : Capricious Visage +93433 : Capricious Visage +93442 : Entangling Bloom +93443 : Entangling Bloom +93452 : Morning Dew's Moment +93453 : Morning Dew's Moment +93513 : Hopeful Heart +93514 : Hopeful Heart +93523 : Shaft of Remembrance +93524 : Shaft of Remembrance +93533 : Capricious Visage +93534 : Capricious Visage +93543 : Entangling Bloom +93544 : Entangling Bloom +93553 : Morning Dew's Moment +93554 : Morning Dew's Moment +94412 : Scarlet Vessel +94413 : Scarlet Vessel +94422 : Sundered Feather +94423 : Sundered Feather +94432 : Ornate Kabuto +94433 : Ornate Kabuto +94442 : Magnificent Tsuba +94443 : Magnificent Tsuba +94452 : Storm Cage +94453 : Storm Cage +94513 : Scarlet Vessel +94514 : Scarlet Vessel +94523 : Sundered Feather +94524 : Sundered Feather +94533 : Ornate Kabuto +94534 : Ornate Kabuto +94543 : Magnificent Tsuba +94544 : Magnificent Tsuba +94553 : Storm Cage +94554 : Storm Cage +95412 : Calabash of Awakening +95413 : Calabash of Awakening +95422 : Plume of Luxury +95423 : Plume of Luxury +95432 : Skeletal Hat +95433 : Skeletal Hat +95442 : Bloom Times +95443 : Bloom Times +95452 : Song of Life +95453 : Song of Life +95513 : Calabash of Awakening +95514 : Calabash of Awakening +95523 : Plume of Luxury +95524 : Plume of Luxury +95533 : Skeletal Hat +95534 : Skeletal Hat +95543 : Bloom Times +95544 : Bloom Times +95553 : Song of Life +95554 : Song of Life +96412 : Pearl Cage +96413 : Pearl Cage +96422 : Deep Palace's Plume +96423 : Deep Palace's Plume +96432 : Crown of Watatsumi +96433 : Crown of Watatsumi +96442 : Sea-Dyed Blossom +96443 : Sea-Dyed Blossom +96452 : Cowry of Parting +96453 : Cowry of Parting +96513 : Pearl Cage +96514 : Pearl Cage +96523 : Deep Palace's Plume +96524 : Deep Palace's Plume +96533 : Crown of Watatsumi +96534 : Crown of Watatsumi +96543 : Sea-Dyed Blossom +96544 : Sea-Dyed Blossom +96553 : Cowry of Parting +96554 : Cowry of Parting +97412 : Moment of the Pact +97413 : Moment of the Pact +97422 : Feather of Nascent Light +97423 : Feather of Nascent Light +97432 : Thundering Poise +97433 : Thundering Poise +97442 : Flowering Life +97443 : Flowering Life +97452 : Solar Relic +97453 : Solar Relic +97513 : Moment of the Pact +97514 : Moment of the Pact +97523 : Feather of Nascent Light +97524 : Feather of Nascent Light +97533 : Thundering Poise +97534 : Thundering Poise +97543 : Flowering Life +97544 : Flowering Life +97553 : Solar Relic +97554 : Solar Relic +98412 : Chalice of the Font +98413 : Chalice of the Font +98422 : Jade Leaf +98423 : Jade Leaf +98432 : Flowing Rings +98433 : Flowing Rings +98442 : Soulscent Bloom +98443 : Soulscent Bloom +98452 : Symbol of Felicitation +98453 : Symbol of Felicitation +98513 : Chalice of the Font +98514 : Chalice of the Font +98523 : Jade Leaf +98524 : Jade Leaf +98533 : Flowing Rings +98534 : Flowing Rings +98543 : Soulscent Bloom +98544 : Soulscent Bloom +98553 : Symbol of Felicitation +98554 : Symbol of Felicitation +99310 : Lord of Wind over Firmament's Cup +99311 : Lord of Wind over Firmament's Cup +99312 : Lord of Wind over Firmament's Cup +99313 : Lord of Wind over Firmament's Cup +99314 : Lord of Wind over Firmament's Cup +99320 : Lord of Wind over Firmament's Feather +99321 : Lord of Wind over Firmament's Feather +99322 : Lord of Wind over Firmament's Feather +99323 : Lord of Wind over Firmament's Feather +99324 : Lord of Wind over Firmament's Feather +99330 : Lord of Wind over Firmament's Crown +99331 : Lord of Wind over Firmament's Crown +99332 : Lord of Wind over Firmament's Crown +99333 : Lord of Wind over Firmament's Crown +99334 : Lord of Wind over Firmament's Crown +99340 : Lord of Wind over Firmament's Flower +99341 : Lord of Wind over Firmament's Flower +99342 : Lord of Wind over Firmament's Flower +99343 : Lord of Wind over Firmament's Flower +99344 : Lord of Wind over Firmament's Flower +99350 : Lord of Wind over Firmament's Hourglass +99351 : Lord of Wind over Firmament's Hourglass +99352 : Lord of Wind over Firmament's Hourglass +99353 : Lord of Wind over Firmament's Hourglass +99354 : Lord of Wind over Firmament's Hourglass +99410 : Lord of Wind over Firmament's Cup +99411 : Lord of Wind over Firmament's Cup +99412 : Lord of Wind over Firmament's Cup +99413 : Lord of Wind over Firmament's Cup +99414 : Lord of Wind over Firmament's Cup +99420 : Lord of Wind over Firmament's Feather +99421 : Lord of Wind over Firmament's Feather +99422 : Lord of Wind over Firmament's Feather +99423 : Lord of Wind over Firmament's Feather +99424 : Lord of Wind over Firmament's Feather +99430 : Lord of Wind over Firmament's Crown +99431 : Lord of Wind over Firmament's Crown +99432 : Lord of Wind over Firmament's Crown +99433 : Lord of Wind over Firmament's Crown +99434 : Lord of Wind over Firmament's Crown +99440 : Lord of Wind over Firmament's Flower +99441 : Lord of Wind over Firmament's Flower +99442 : Lord of Wind over Firmament's Flower +99443 : Lord of Wind over Firmament's Flower +99444 : Lord of Wind over Firmament's Flower +99450 : Lord of Wind over Firmament's Hourglass +99451 : Lord of Wind over Firmament's Hourglass +99452 : Lord of Wind over Firmament's Hourglass +99453 : Lord of Wind over Firmament's Hourglass +99454 : Lord of Wind over Firmament's Hourglass +99510 : Lord of Wind over Firmament's Cup +99511 : Lord of Wind over Firmament's Cup +99512 : Lord of Wind over Firmament's Cup +99513 : Lord of Wind over Firmament's Cup +99514 : Lord of Wind over Firmament's Cup +99520 : Lord of Wind over Firmament's Feather +99521 : Lord of Wind over Firmament's Feather +99522 : Lord of Wind over Firmament's Feather +99523 : Lord of Wind over Firmament's Feather +99524 : Lord of Wind over Firmament's Feather +99530 : Lord of Wind over Firmament's Crown +99531 : Lord of Wind over Firmament's Crown +99532 : Lord of Wind over Firmament's Crown +99533 : Lord of Wind over Firmament's Crown +99534 : Lord of Wind over Firmament's Crown +99540 : Lord of Wind over Firmament's Flower +99541 : Lord of Wind over Firmament's Flower +99542 : Lord of Wind over Firmament's Flower +99543 : Lord of Wind over Firmament's Flower +99544 : Lord of Wind over Firmament's Flower +99550 : Lord of Wind over Firmament's Hourglass +99551 : Lord of Wind over Firmament's Hourglass +99552 : Lord of Wind over Firmament's Hourglass +99553 : Lord of Wind over Firmament's Hourglass +99554 : Lord of Wind over Firmament's Hourglass +100001 : Apple +100002 : Sunsettia +100003 : A Piece of Paper +100004 : Stolen Items +100006 : Hilichurl Antidote +100007 : Climbing Finish Line Garland +100008 : Gliding Finish Line Garland +100009 : Gliding Finish Line Garland +100010 : Gliding Champion Cup +100011 : Mushroom +100012 : Sweet Flower +100013 : Carrot +100014 : Radish +100015 : Snapdragon +100016 : Mint +100017 : Wheat +100018 : Cabbage +100019 : Silver Lotus +100020 : Pinecone +100021 : Wolfhook +100022 : Valberry +100023 : Cecilia +100024 : Windwheel Aster +100025 : Philanemo Mushroom +100026 : Lotus Head +100027 : Jueyun Chili +100028 : Noctilucous Jade +100029 : Silk Flower +100030 : Glaze Lily +100031 : Qingxin +100032 : Horsetail +100033 : Starconch +100034 : Violetgrass +100051 : Berry +100052 : Mist Flower Corolla +100053 : Flaming Flower Stamen +100054 : Electro Crystal +100055 : Small Lamp Grass +100056 : Calla Lily +100057 : Dandelion Seed +100058 : Cor Lapis +100061 : Raw Meat +100062 : Bird Egg +100063 : Matsutake +100064 : Fowl +100072 : Butterfly Wings +100073 : Crab +100074 : Crab Roe +100075 : Salt +100076 : Onion +100077 : Pepper +100078 : Milk +100079 : Tomato +100080 : Potato +100081 : Frog +100082 : Luminescent Spine +100083 : Lizard Tail +100084 : Fish +100085 : Crystal Core +100086 : Raw Meat (S) +100087 : Fowl (S) +100088 : Tofu +100089 : Almond +100090 : Loach Pearl +100091 : Bamboo Shoot +100092 : Rice +100093 : Shrimp Meat +100094 : Chilled Meat +100095 : Unagi Meat +100101 : Jean's Document Package +100102 : Extreme Escape +100103 : Incomplete Score (Part 1) +100104 : Incomplete Score (Part 2) +100105 : Private Letter from Lisa to Jean +100106 : Autumn Night +100107 : Tasty-Looking Potion +100108 : Potion +100109 : Barbara's Treatment +100110 : Incomplete Poem (Part 1) +100111 : Incomplete Poem (Part 2) +100112 : Incomplete Poem (Part 3) +100113 : Inscription Rubbing +100114 : Form Restoration Potion +100115 : Holy Lyre der Himmel +100120 : Cricket Hair +100121 : Cricket (White) +100122 : Cricket (Blue) +100123 : Cricket (Purple) +100124 : Cricket (Gold) +100125 : Hydro Amber +100126 : Anemo Amber +100131 : Random Loot (A) +100132 : Random Loot (B) +100133 : Random Loot (A) +100134 : Random Loot (B) +100135 : Crimson Crystal +100136 : Seal Clue 101 +100137 : Seal Clue 102 +100138 : Seal Clue 103 +100139 : Seal Clue 201 +100140 : Seal Clue 202 +100141 : Seal Clue 203 +100142 : Seal Clue 301 +100143 : Seal Clue 302 +100144 : Seal Clue 303 +100145 : Break Seal 1 +100146 : Break Seal 2 +100147 : Break Seal 3 +100148 : Investigate the Seal of Stormterror's Lair +100149 : Break the seal of Stormterror's Lair +100151 : Fragmented Memory (Wind) +100152 : Sword Cemetery Seal 1 +100153 : Sword Cemetery Seal 2 +100154 : Sword Cemetery Seal 3 +100158 : Teardrop Crystal +100159 : Teardrop Crystal +100160 : Teardrop Crystal +100161 : Holy Lyre der Himmel +100162 : Partially Repaired Holy Lyre der Himmel +100163 : Completely Repaired Holy Lyre der Himmel +100164 : Clear Dvalin Tear +100165 : Damaged Holy Lyre der Himmel +100171 : Treasure Clue (I) +100172 : Treasure Clue (II) +100173 : Treasure Map +100174 : Universal Temporary Interaction +100175 : Hidden Key +100176 : Black Key +100177 : Scene Interaction +100178 : Vera's Melancholy (I) +100179 : Vera's Melancholy (II) +100180 : Vera's Melancholy (III) +100181 : Along with Divinity: Prologue +100182 : The Legend of Vennessa (I) +100183 : The Legend of Vennessa (II) +100184 : Poster +100185 : Poster +100186 : Mondstadt General Goods Order Board +100187 : Cat's Tail Tavern Message Board +100188 : The Fox in the Dandelion Sea (I) +100189 : The Fox in the Dandelion Sea (II) +100190 : The Fox in the Dandelion Sea (III) +100191 : The Fox in the Dandelion Sea (V) +100192 : The Fox in the Dandelion Sea (VI) +100193 : The Fox in the Dandelion Sea (VII) +100194 : The Fox in the Dandelion Sea (X) +100195 : The Fox in the Dandelion Sea (XI) +100196 : Hilichurl Ballad Selection (I) +100197 : Hilichurl Ballad Selection (II) +100198 : Vera's Melancholy (V) +100199 : Vera's Melancholy (IX) +100200 : Vera's Melancholy (X) +100201 : Breeze Amidst the Forest - Ballad Selection Excerpt +100202 : The Boar Princess (I) +100203 : The Boar Princess (II) +100204 : The Boar Princess (III) +100205 : The Boar Princess (IV) +100206 : The Boar Princess (V) +100207 : The Boar Princess (VII) +100208 : The Mondstadt Tower (I) +100210 : Elemental Mark +100211 : Broken-off Branch +100212 : Fabric Piece +100213 : Breeze Amidst the Forest Supplement: The Dragon Tome +100214 : Letter from the Abyss Order +100215 : The Pale Princess and the Six Pygmies (I) +100216 : The Pale Princess and the Six Pygmies (II) +100217 : The Pale Princess and the Six Pygmies (III) +100218 : The Pale Princess and the Six Pygmies (IV) +100219 : The Pale Princess and the Six Pygmies (V) +100220 : The Pale Princess and the Six Pygmies (VI) +100221 : The Pale Princess and the Six Pygmies (VII) +100222 : 1000 Years of Loneliness +100223 : Teyvat Travel Guide - Mondstadt +100224 : Wind, Courage, and Wings +100225 : Hunting Trap +100226 : Diary of Roald the Adventurer: Qingce Village +100227 : Diary of Roald the Adventurer: Luhua Pool +100228 : Diary of Roald the Adventurer: Yaoguang Shoal +100229 : Letter for Dongdong +100230 : Someone's Diary I: Yaoguang Shoal +100231 : Scattered Page +100232 : Intact Tome +100233 : Hearty Mushrooms +100234 : Crunchy Carrots +100235 : A Plump Cabbage +100236 : Gliding Instruction Manual +100237 : Azurite +100238 : Vermillionite +100239 : Someone's Diary II: Guili Plains +100240 : Someone's Diary III: Jueyun Karst +100241 : Someone's Diary IV: Liyue Harbor +100242 : Letter to the Treasure Hoarders +100243 : Nephrite Ring +100244 : Delicious Golden Crab +100245 : "Of Mountains and Seas" +100246 : Draft Manuscript of "Hyakunin Ikki: The Greatest Battle" +100301 : Wyatt's Red Key +100302 : Wyatt's Black Key +100303 : Coin Pouch +100304 : Meal Fee Pouch +100305 : Delicious Sticky Honey Roast +100306 : Sturdy Plank +100307 : Fragile Wooden Plank +100308 : A Bundle of Ropes +100309 : Meal Fee Pouch +100310 : Lost Coin Pouch +100311 : Meal Fee Pouch +100312 : Delicious Fried Radish Balls +100313 : Delicious Calla Lily Seafood Soup +100314 : Bag of Goods +100315 : Processed Noctilucous Jade +100316 : "Mondstadt Sunset" +100317 : "Margaret" +100318 : "Charged Attack" +100319 : "Pearl" +100320 : Messy "Mondstadt Sunset" +100321 : Unusual "Margaret" +100322 : Bizarre "Charged Attack" +100323 : Unusual "Pearl" +100324 : Odd Cocktail +100325 : Messy Cocktail +100326 : Bizarre Cocktail +100327 : Unusual Beer +100328 : Barely Drinkable Cocktail +100329 : Unknown Cocktail +100330 : Plain Liquor +100331 : (TEST) Cocktail 16 +100332 : (TEST) Cocktail 17 +100333 : (TEST) Cocktail 18 +100334 : (TEST) Cocktail 19 +100335 : (TEST) Cocktail 20 +100336 : (TEST) Cocktail 21 +100337 : (TEST) Cocktail 22 +100338 : (TEST) Cocktail 23 +100339 : (TEST) Cocktail 24 +100340 : (TEST) Cocktail 25 +100341 : (TEST) Cocktail 26 +100342 : (TEST) Cocktail 27 +100343 : (TEST) Cocktail 28 +100344 : (TEST) Cocktail 29 +100345 : (TEST) Cocktail 30 +100346 : (TEST) Cocktail 31 +100347 : (TEST) Cocktail 32 +100348 : Godwin's Letter +100349 : Someone's Drifting Bottle +100350 : (TEST) Klee's Notebook +100351 : Tunner's Cough Syrup +100352 : Draff's Letter +100353 : Materials for Training Dummy +100354 : Sara's Letter +100355 : Clean Radish +100356 : Guy's Letter +100357 : Quinn's Special +100358 : Margaret's Special +100359 : Jack's Special +100360 : Draff's Special +100361 : Teyvat Travel Guide - Liyue +100362 : Letter +100363 : A Huge Bag of Mora +100364 : Legend of the Shattered Halberd (VI) +100365 : Intact Training Dummy +100366 : Legend of the Geo Archon: God of the Stove +100367 : Legend of the Geo Archon: The Groundbreaker +100368 : Legend of the Geo Archon: God of Wealth +100369 : Legend of the Geo Archon: God of History +100370 : The Wrath of Haishan +100371 : +100372 : +100373 : Ring of Raining Blades (I) +100374 : Ring of Raining Blades (II) +100375 : +100376 : Meal Box by Smiley Yanxiao for Jiangxue +100377 : A log of ships coming in and out by Little Lulu +100378 : A log of ships coming in and out by Little Lulu +100379 : A log of ships coming in and out by Little Lulu +100380 : A log of ships coming in and out by Little Fei +100381 : A log of ships coming in and out by Little Fei +100382 : A log of ships coming in and out by Little Fei +100383 : A log of ships coming in and out by Little Meng +100384 : A log of ships coming in and out by Little Meng +100385 : A log of ships coming in and out by Little Meng +100386 : Sealed Package +100387 : First Apprentice of Guhua +100388 : Diary of Roald the Adventurer: Guyun Stone Forest +100389 : Diary of Roald the Adventurer: Sal Terrae +100390 : Diary of Roald the Adventurer: Qingyun Peak, Jueyun Karst +100391 : Diary of Roald the Adventurer: Aocang Lake, Jueyun Karst +100392 : Treasure Map of Lone Gorge +100393 : Treasure Map of Lone Gorge +100394 : Treasure Map of Lone Gorge +100395 : Poorly-Sealed Box +100396 : Tightly-Sealed Box +100397 : +100398 : Katheryne's Letter +100399 : Records of Jueyun: Stone Beasts +100400 : Records of Jueyun: Palace Beneath the Sea +100401 : Verses of Equilibrium +100402 : Records of the Gallant: The Hermit +100403 : Customs of Liyue: Flower Ball +100404 : Stone Tablet Compilations: Vol. I +100405 : Humor From Tianheng +100406 : Hilichurl Cultural Customs (I) +100407 : Hilichurl Cultural Customs (II) +100408 : Hilichurl Cultural Customs (IV) +100409 : History of Kings and Clans: Prologue +100410 : Biography of Gunnhildr +100411 : Ballads of the Squire (I) +100412 : Ballads of the Squire (II) +100413 : Teyvat Wilderness Survivalist's Recipes +100414 : Treasure Map of Giant's Steps +100415 : Treasure Map of Giant's Steps +100416 : Treasure Map of Giant's Steps +100417 : Treasure Map of The Vast Blue +100418 : Treasure Map of The Vast Blue +100419 : Treasure Map of The Vast Blue +100420 : +100421 : +100422 : +100423 : +100424 : +100425 : +100426 : Yakshas: The Guardian Adepti +100427 : Witness Sigil +100428 : Special Almond Tofu +100429 : Dropped Package +100430 : Sigil of Permission +100431 : Klee's Wooden Sign +100432 : Legend of the Shattered Halberd (I) +100433 : Legend of the Shattered Halberd (II) +100434 : Legend of the Shattered Halberd (III) +100435 : Legend of the Shattered Halberd (IV) +100436 : Legend of the Shattered Halberd (V) +100437 : Heart's Desire: Moonlight +100438 : Heart's Desire: Crystal Glaze +100439 : Heart's Desire: Sapphire +100440 : Heart's Desire: Stone Heart +100441 : Diary of Roald the Adventurer: Qingxu Pool +100442 : Traveler's Notes +100443 : Traveler's Notes +100444 : Traveler's Notes +100445 : Traveler's Notes +100450 : Censer +100451 : Seven-Star Lamp +100452 : Letter from Starsnatcher +100453 : Special Mondstadt Hash Brown +100454 : Dendro-Processed Berry +100455 : Thick Hydro Slime Condensate +100456 : Wind-Caressed Aster +100457 : Collected Fragment +100458 : Collected Fragment +100459 : Collected Fragment +100460 : Transcription from a stone tablet +100461 : Transcription from a stone tablet +100462 : Transcription from a stone tablet +100463 : Transcription from a stone tablet +100464 : Transcription from a stone tablet +100465 : Transcription from a ruin +100466 : Transcription from a ruin +100467 : Hidden Treasure of Qingce +100468 : +100469 : Draft Lines of Hilichurlian Poetry +100470 : +100471 : +100472 : A Letter by Timmie +100473 : Marjorie's Recommended Gift +100474 : A Gift from Quinn +100475 : Sara's Special Dish +100476 : Traveling Merchant's Package +100477 : Box of Goods Invoices +100478 : Box of Goods Invoices +100479 : Box of Goods Invoices +100480 : Heart of Clear Springs (I) +100481 : Heart of Clear Springs (II) +100482 : Heart of Clear Springs (III) +100483 : Heart of Clear Springs (IV) +100484 : Linling's Anthology of Selected Poetry +100485 : Goods Invoice +100486 : Invoice of Goods Quantities +100487 : Golden House Maiden +100488 : Valley Weaver +100489 : Fate's Yearning +100490 : Golden House Maiden Essential Oil +100491 : Valley Weaver Essential Oil +100492 : Fate's Yearning Essential Oil +100493 : Bao'er's Empty Box +100494 : Heavy Box +100495 : Sopping Wet Page +100496 : A Huge Bag of Mora +100497 : Golden House Maiden Perfume +100498 : Valley Weaver Perfume +100499 : Fate's Yearning Perfume +100500 : A Box of Gadgets +100501 : Cleansing Bell +100502 : Guizhong Ballista Maintenance Material +100503 : A Record of Qiming and Zhihua's Conversation +100504 : A Record of Sisi and Chaoxi's Conversation +100505 : A Record of Little Meng, Little Fei, and Little Lulu's Conversation +100506 : Norma's Order +100507 : Hilichurl Ballad: Recital Draft +100508 : Hilichurl Ballad: Narrative Draft +100509 : Hilichurl Ballad: Lyrical Draft +100510 : Vile's Gift +100511 : Stolen Relic +100512 : Madame Ping's Box +100513 : A Torn Out Page +100514 : Page of Scribbled Writing +100515 : Noctilucous Jade Sample +100516 : A Bag of Mora +100517 : Mitachurl Loot +100518 : Treasure Hoarder Loot +100519 : Ruin Guard Loot +100520 : Noctilucous Jade Sample +100521 : Noctilucous Jade Sample +100522 : Everlasting Incense +100523 : Guizhong Ballista Maintenance Material +100524 : Sturdy Wooden Plank +100525 : Box of Leaves +100526 : +100527 : +100528 : Treasure Hoarder's Key +100529 : Alrani's Note +100530 : Nameless Treasure +100531 : Nameless Treasure +100532 : Nameless Treasure +100533 : Stone of Remembrance +100534 : Dull Ring +100535 : Vermeer's Paintbrushes +100536 : Vermeer's Paints +100537 : Black and White Sketch +100538 : Color Sketch +100539 : Nameless Sketch +100540 : Strange Stone +100541 : Fresh Qingxin +100542 : Good Hunter's Specialty Dish +100543 : Flora's Bookmark +100544 : Special Beverage from Angel's Share +100545 : Special Perfume +100546 : Mint Essential Oil +100547 : Tasty Slime Condensate +100548 : Extra-Sweet Sweet Flower +100549 : Fresh Sweet Flower +100550 : Fresh Cecilia +100551 : Fresh Windwheel Aster +100552 : Fresh Small Lamp Grass +100553 : Strange Cocktail Ingredient +100554 : Teucer's Mora Pouch +100555 : Childe and Teucer's Mora Pouch +100556 : Plump Sunsettia +100557 : Merchant Poster +100558 : Merchant Poster +100559 : Merchant Poster +100560 : Jiayi's Gifts +100561 : Treasure Hoarder's Map +100562 : Ragged Notebook +100563 : Strange Stone +100564 : Knights of Favonius Handbook - 5th Edition +100565 : Tales From the Waves: Rising Tide +100566 : Tales From the Waves: Wild Storm +100567 : Tales From the Waves: Receding Torrent +100568 : Hex & Hound (I) +100569 : Hex & Hound (II) +100570 : Hex & Hound (III) +100571 : Hex & Hound (IV) +100572 : Hex & Hound (V) +100573 : Moonlit Bamboo Forest (I) +100574 : Moonlit Bamboo Forest (II) +100575 : Moonlit Bamboo Forest (III) +100576 : Moonlit Bamboo Forest (IV) +100577 : A Drunkard's Tale (I) +100578 : A Drunkard's Tale (II) +100579 : A Drunkard's Tale (III) +100580 : A Drunkard's Tale (IV) +100581 : +100582 : +100583 : "Dwelling in the Clouds" Blueprints +100584 : Tainted Blood +100585 : Monolith Fragment +100586 : Rex Incognito (I) +100587 : Rex Incognito (II) +100588 : Rex Incognito (III) +100589 : Rex Incognito (IV) +100590 : Legend of the Lone Sword (I) +100591 : Legend of the Lone Sword (II) +100592 : Legend of the Lone Sword (III) +100593 : Legend of the Lone Sword (IV) +100594 : Little Liu's Gifts +100595 : Chaoxi's Reply to Cui'er +100596 : Little Yue's Gift +100597 : Yinxing's Letter to Bolai +100598 : Clerk Zhao's Invoice for Jiangzhou +100599 : Clerk Zhao's Invoice for Nervous An +100600 : Cui'er's Letter to Chaoxi +100601 : Thick Notebook +100602 : Jack's Map +100603 : Jack's Adventurer Handbook +100604 : Cage Key +100605 : Sugar-Frosted Slime +100606 : Wild Glaze Lily +100607 : The Fox in the Dandelion Sea (IV) +100608 : The Fox in the Dandelion Sea (VIII) +100609 : The Fox in the Dandelion Sea (IX) +100610 : The Boar Princess (VI) +100611 : Vera's Melancholy (IV) +100612 : Vera's Melancholy (VI) +100613 : Vera's Melancholy (VII) +100614 : Vera's Melancholy (VIII) +100615 : Hilichurl Cultural Customs (III) +100616 : +100617 : "Of Mountains and Seas" +100618 : Strange Tooth +100619 : Vitalized Dragontooth +100620 : Princess's Box +100621 : Priest's Box +100622 : Scribe's Box +100623 : Very Ordinary-Looking Sweet Flower +100624 : Customs of Liyue: Receiving God +100625 : Mr. Cyclops Action Figure +100626 : Little Liu's Letter +100627 : Used Training Dummy +100628 : Crude Sack +100629 : Mysterious Stone Tablet +100630 : Treasure Hoarder Scouting Report +100631 : Viktor's Lost Box +100632 : Notice Paper +100633 : Old Business Permit +100634 : Business Premises and Safety Certificates +100635 : Approved Exit Permit +100636 : Great Snowboar King Meat +100637 : Records of Jueyun: Wuwang +100638 : Records of Jueyun: Mountain Spirits +100639 : Meadow of Gems +100640 : Customs of Liyue: Silk Flowers +100641 : Customs of Liyue: Glaze Lilies +100642 : String of Pearls (I) +100643 : String of Pearls (II) +100644 : String of Pearls (III) +100645 : Ancient Investigation Journal: Part I +100646 : Special Mondstadt Hash Brown +100647 : Special Almond Tofu +100648 : Special Jewelry Soup +100649 : Special Sweet Madame +100650 : Special Matsutake Meat Rolls +100651 : Special Jade Parcels +100652 : Special Flaming Red Bolognese +100653 : Special Black-Back Perch Stew +100654 : Special Mora Meat +100655 : Special Tea Break Pancake +100656 : Special Come and Get It +100657 : Special Jueyun Chili Chicken +100658 : Special Mondstadt Hash Brown +100659 : Special Black-Back Perch Stew +100660 : Special Come and Get It +100661 : Special Mondstadt Grilled Fish +100662 : Special Stir-Fried Filet +100663 : Special Lotus Seed and Bird Egg Soup +100664 : Special Fisherman's Toast +100665 : Special Almond Tofu +100666 : Special Jewelry Soup +100667 : Orders +100668 : +100669 : +100670 : +100671 : +100672 : +100673 : +100674 : +100675 : +100676 : +100677 : +100678 : +100679 : +100680 : +100681 : Jiayi's Letter +100682 : Nostalgic Jueyun Chili Chicken +100683 : Luxurious Toybox +100684 : Congzi's Plaustrite Shards +100685 : Custom-Made Xiao Lantern +100686 : Glory's Dandelion Seeds +100687 : Letter to Cyrus +100688 : Qingzhou's Signature +100689 : Package of Fresh Flowers +100690 : Package of Fresh Flowers +100691 : Rex Incognito (IV) +100692 : Ancient Investigation Journal: Part II +100693 : Ancient Investigation Journal: Part III +100694 : +100695 : +100696 : +100697 : +100698 : +100699 : Invoice From Second Life +100700 : Package of Fresh Flowers +100701 : Package of Fresh Flowers +100702 : Package of Fresh Flowers +100703 : Thank-You Letter +100704 : Experimental Potion +100705 : Chilled Meat +100706 : Diary of Roald the Adventurer: Dragonspine +100707 : Kamera Picture +100708 : Kamera Picture +100709 : Sigil of Permission +100710 : Harris' Special Cream Stew +100711 : Treasure Map +100712 : Strange Note +100713 : A Bag of Mora +100714 : Water-Logged Box +100715 : Meadow of Gems +100716 : Starsilver Catalyst +100717 : Starsilver Catalyst +100718 : Starsilver Catalyst +100719 : Starsilver Catalyst +100720 : Starsilver Catalyst +100721 : +100722 : +100723 : Dummy's Xiao Lantern +100724 : Unnamed Mingxiao Lantern +100725 : +100726 : Herbalist Gui's Medicine +100727 : Starsilver Catalyst +100728 : Dandelion Seed +100729 : Siyu's Xiao Lantern +100730 : Records of Jueyun: Qilin +100731 : Records of Jueyun: Hidden Jade +100732 : Records of the Gallant: Black Raccoons +100733 : Records of the Gallant: Dust +100734 : Hex & Hound (VI) +100735 : Hex & Hound (VII) +100736 : Hex & Hound (VIII) +100737 : Aunt Qiao's Almond Tofu +100738 : Zhuyu's Golden Shrimp Balls +100739 : Ominous Dish +100740 : Lost Adventure Notebook +100741 : Broken Xiao Lantern Lampshade +100742 : Hard Iron Chunk +100743 : Hard Crystal Chunk +100744 : Red Wolfhook +100745 : Fresh Jueyun Chili +100746 : Handpicked Gift +100747 : Lantern Rite Gift +100748 : Pyro Whopperflower Nectar +100749 : Wanmin Restaurant Take-Away +100750 : Strange Box +100751 : Inscribed Xiao Lantern +100752 : Soil Sample +100753 : Fresh Qingxin +100754 : Slime-Swallowed Calla Lily +100755 : Fresh Lotus Head +100756 : Plank +100757 : Fresh Raw Meat +100758 : High-Quality Chilled Meat +100759 : Picture of Windblume Festival +100760 : Picture of Windblume Festival +100761 : Picture of Windblume Festival +100762 : Wondrous Lovely Flower +100763 : Watch Out! +100764 : Fresh Valberry +100765 : Pyro Slime Condensate +100766 : Special Bottle +100767 : Notes of Some Kind +100768 : Ward +100769 : Ward +100770 : Ioroi's Ward +100771 : Scroll-Shaped Ward +100772 : Key-Shaped Ward +100773 : +100774 : Old Key +100775 : Old Stone Slate +100776 : Old Stone Slate +100777 : Old Stone Slate +100778 : Old Stone Slate +100779 : Rather Fine Dandelion Seeds +100780 : Rather Fine Windwheel Aster +100781 : Special Beverage +100782 : Special Beverage +100783 : Hex & Hound (IX) +100784 : Hex & Hound (X) +100785 : Hex & Hound (XI) +100786 : String of Pearls (IV) +100787 : String of Pearls (V) +100788 : Handy Handbook of Hilichurlian +100789 : Bamboo Slip +100790 : Bamboo Slip +100791 : Bamboo Slip +100792 : Bamboo Slip +100793 : Bamboo Slip +100794 : Bamboo Slip +100795 : Bamboo Slip +100796 : Bamboo Slip +100797 : Bamboo Slip +100798 : Fortune Slip +100799 : Fortune Slip +100800 : Fortune Slip +100801 : Fortune Slip +100802 : Fortune Slip +100803 : Fortune Slip +100804 : Fortune Slip +100805 : Fortune Slip +100806 : Fortune Slip +100807 : Strange Fortune Slip +100808 : Strange Fortune Slip +100809 : Strange Fortune Slip +100810 : Strange Fortune Slip +100811 : Picture of Cape Oath +100812 : Picture of Starsnatch Cliff +100813 : Picture of Windrise +100814 : Cyrus' Letter to Iris +100815 : Picture of Dragonspine +100816 : The Crux Clash Champion Medal +100817 : Well-Packaged Gebratenes Fleisch mit Sauerkraut +100818 : Tea Break Pancake Cooked by Lily +100819 : Mysterious Mechanical Part +100820 : Pale Yellow Crystal +100821 : Pale Red Crystal +100822 : Pale Blue Crystal +100823 : Pale Yellow Scale +100824 : Pale Blue Scale +100825 : Pale Red Scale +100826 : Cat Food +100827 : Cat Toy +100828 : Fresh Fish Scales +100829 : Some Strange... Drink? +100830 : Purse by the Dried-Up Well +100831 : Archaic Stone +100832 : Slightly Damaged Wooden Plank +100833 : Somewhat Rotten Wooden Plank +100834 : +100835 : Smaragdus Jadeite +100836 : Smaragdus Nephrite Fragment +100837 : The Jade Mystery's Affidavit +100838 : Ministry of Civil Affairs' Affidavit +100839 : Bubu Pharmacy's Affidavit +100840 : Fresh Slime Condensate +100841 : Minacious Isle Mural +100842 : Broken Isle Mural +100843 : Nameless Island Mural +100844 : Twinning Isle Mural +100845 : Illegible Notes +100846 : Fresh Fish +100847 : +100848 : +100849 : Ragged List of Goods +100850 : Cargo Bag Fished Out From Water +100851 : Nameless Islet Mural +100852 : Clear Image +100853 : Somewhat Clear Image +100854 : Rather Foggy Image +100855 : A Discarded Blade +100856 : A Jug of Wine +100857 : A Masterless Blade +100858 : Bag of Flower Seeds +100859 : Mysterious Conch +100860 : +100861 : The Sage Aetolia Will Die Tomorrow +100862 : The Honest Cat's Little Lie +100863 : Literature Club +100864 : Rust-Worn Key +100865 : Mask of Memories +100866 : The Violet Oni's Blade +100867 : The Crimson Oni's Blade +100868 : Fortune Slip +100869 : Fortune Slip +100870 : Fortune Slip +100871 : Fortune Slip +100872 : Fortune Slip +100873 : Fortune Slip +100874 : Fortune Slip +100875 : Chang the Ninth's Gift +100876 : Zhenyu's Gift +100880 : Cage Key +100881 : Metal Key +100882 : Atsuko's Letter +100883 : Illegible Fortune Slip +100884 : Damaged Note +100885 : Luxurious Silk Cloth +100886 : Special Recipe: Mushroom Pizza +100887 : +100888 : +100889 : Chef Mao's Special Jueyun Chili Chicken +100890 : Xiangling's Handwritten Notes +100891 : Yellowed Letter +100892 : Vahid's Kneaded Onigiri +100893 : Naganohara Fireworks Note +100894 : Spirit Pearl +100895 : Key of the Moon-bathed Deep +100896 : Strange Bottle +100897 : Water Welling With "Wishes" +100898 : Spiritherb Water +100899 : Rinzou's Letter +100900 : Rinzou's Signet +100901 : Hidden Ledger +100902 : Komore Teahouse Invitation Letter +100903 : A Love Letter(?) +100904 : Cooked Meat +100905 : "The Seventh Samurai" Script +100906 : +100907 : A Note Left by Someone +100908 : Bamboo Slip +100909 : Bamboo Slip +100910 : Bamboo Slip +100911 : Bamboo Slip +100912 : Bamboo Slip +100913 : Bamboo Slip +100914 : Bamboo Slip +100915 : +100916 : Lightly-Perfumed Letter +100917 : Travel Permit +100918 : Kujou Kamaji's Letter +100919 : Snack Box +100920 : Dull Golden Bridle +100921 : Golden Bridle +100922 : Reins of Revival Fragment (The Narrows) +100923 : Reins of Revival Fragment (Temple) +100924 : Reins of Revival Fragment (Serpent's Heart) +100925 : Reins of Revival +100926 : Offerings of The Narrows +100927 : Offerings of the Temple +100928 : Offerings of the Serpent's Heart +100929 : The Serpent and Drakes of Tokoyokoku +100930 : Bathysmal Vishap Experimental Records +100931 : Before Sun and Moon +100932 : Hydrological Studies in Byakuyakoku +100933 : In the Light, Beneath the Shadow +100934 : Key Sigil +100935 : Key Sigil +100936 : Key Sigil +100937 : Key Sigil +100938 : Key Sigil +100939 : Bloodbranch Coral +100940 : Divine Bridle +100941 : Date's Medal of Recognition +100942 : Date's Medal of Recognition +100943 : Secret Room Key +100944 : Waters of Lethe +100945 : Dragonbone Orb +100946 : Key to Some Place +100947 : Key to Some Place +100948 : Key to Some Place +100949 : Sun-Dried Sweet Flower +100950 : Peculiar Pinion +100951 : Maushiro +100952 : Maushiro +100953 : +100954 : +100955 : An Onikabuto Affected by Tatarigami +100956 : Missing Component(s) +100957 : Funerary Mask +100958 : Musoujin Gorge: Rock Pillar Pearl +100959 : Musoujin Gorge: Rock Pillar Warding Stone +100960 : Serpent's Head: Rock Pillar Pearl +100961 : Serpent's Head: Rock Pillar Warding Stone +100962 : Jakotsu Mine: Rock Pillar Pearl +100963 : Jakotsu Mine: Rock Pillar Warding Stone +100964 : Fort Mumei: Rock Pillar Pearl +100965 : Fort Mumei: Rock Pillar Warding Stone +100966 : Naku Weed Seed +100967 : High-Quality Chilled Meat +100968 : Piping-Hot Braised Meat +100969 : Family Letter +100970 : Tattered Letter +100971 : Pharmacist's Notebook (I) +100972 : Pharmacist's Notebook (II) +100973 : Pharmacist's Notebook (III) +100974 : Unsealed Letter +100975 : Inaba Tousaburou Kyuuzou's Final Words +100976 : Star-Shaped Gem +100977 : Stone Slate +100978 : Kamuijima Cannon Map +100979 : Secret Notes +100980 : High-Quality Rice +100981 : Fragrant Rice Pudding +100982 : Anemo Slime-Swallowed Bamboo Shoots +100983 : Piping-Hot Oncidium Tofu +100984 : Fossil Bag +100985 : "Treasury" Key +100986 : Incomplete Notes +100987 : Tattered Paper +100988 : Picture Commemorating Seirai Island +100989 : Picture Commemorating Seirai Island (II) +100990 : Picture Commemorating Seirai Island (III) +100991 : Picture Commemorating Seirai Island (IV) +100992 : Fujiwara Toshiko's Treasure Map +100993 : A Bag of Beans +100994 : +100995 : Right-Side Photo +100996 : Left-Side Photo +100997 : Inferior Starsilver +100998 : Quality Starsilver +100999 : Key +101000 : Box of Clothes +101001 : Iron Chunk +101002 : White Iron Chunk +101003 : Crystal Chunk +101004 : Magical Crystal Chunk +101005 : Scarlet Quartz +101006 : Starsilver +101007 : Scarlet Quartz +101008 : Amethyst Lump +101101 : Northlander Sword Billet +101102 : Northlander Bow Billet +101103 : Northlander Claymore Billet +101104 : Northlander Catalyst Billet +101105 : Northlander Polearm Billet +101106 : Northlander Sword +101107 : Northlander Bow +101108 : Northlander Claymore +101109 : Northlander Catalyst +101110 : Northlander Polearm +101201 : Onikabuto +101202 : Sakura Bloom +101203 : Crystal Marrow +101204 : Dendrobium +101205 : Naku Weed +101206 : Sea Ganoderma +101207 : Sango Pearl +101208 : Amakumo Fruit +101209 : Fluorescent Fungus +101210 : Seagrass +101211 : Lavender Melon +101212 : Starshroom +101301 : Birch Wood +101302 : Cuihua Wood +101303 : Pine Wood +101304 : Sandbearer Wood +101305 : Bamboo Segment +101306 : +101307 : Fragrant Cedar Wood +101308 : Fir Wood +101309 : Yumemiru Wood +101310 : Maple Wood +101311 : Aralia Wood +101312 : Otogi Wood +101401 : Fabric +101402 : Red Dye +101403 : Yellow Dye +101404 : Blue Dye +101501 : Torn Page: Toki Alley Tales (Prologue) +101502 : Torn Page: Toki Alley Tales (I) +101503 : Torn Page: Toki Alley Tales (II) +101504 : Torn Page: Toki Alley Tales (III) +101505 : Torn Page: Toki Alley Tales (IV) +101506 : Torn Page: Toki Alley Tales (V) +101507 : Toki Alley Tales (Prologue) +101508 : Toki Alley Tales (I) +101509 : Toki Alley Tales (II) +101510 : Toki Alley Tales (III) +101511 : Toki Alley Tales (IV) +101512 : Toki Alley Tales (V) +101513 : Pass Permit +101514 : Dango Milk +101515 : Realm Dispatch +101516 : +101517 : Special Sakura Bloom +101518 : Thunder Sakura Crab +101519 : Fresh Seagrass +101520 : Fresh Sakura Bloom +101521 : Fresh Snapdragon +101522 : Fresh Bird Egg +101523 : New Chronicles of the Six Kitsune: Prologue +101524 : New Chronicles of the Six Kitsune (I) +101525 : New Chronicles of the Six Kitsune (II) +101526 : New Chronicles of the Six Kitsune (III) +101527 : New Chronicles of the Six Kitsune (IV) +101528 : Sangonomiya Chronicles +101529 : The Saga of Hamavaran (Preface) +101530 : The Saga of Hamavaran (I) +101531 : The Saga of Hamavaran (II) +101532 : A Legend of Sword (I) +101533 : A Legend of Sword (II) +101534 : A Legend of Sword (III) +101535 : A Legend of Sword (IV) +101536 : A Legend of Sword (V) +101537 : Sacred Sakura Cleansing Summary +101538 : Fresh Mushroom +101539 : Crab Bait +101540 : Someone's Diary V: Jinren Island +101541 : Diary of Roald the Adventurer: Ritou +101542 : Grand Narukami Shrine Omamori +101543 : Official Tenryou Commission Document +101544 : Tenryou Commission Secret Letter +101545 : Supersized Firework +101546 : Special Magical Crystal Ore +101547 : Ore Slag +101548 : Princess Mina of the Fallen Nation (I) +101549 : Princess Mina of the Fallen Nation (II) +101550 : Princess Mina of the Fallen Nation (III) +101551 : Princess Mina of the Fallen Nation (IV) +101552 : Princess Mina of the Fallen Nation (V) +101553 : Princess Mina of the Fallen Nation (VI) +101554 : Flowers for Princess Fischl (0) +101555 : +101556 : +101557 : +101558 : Teyvat Travel Guide - Inazuma +101559 : Drifting Bottle With Letter +101560 : Onibudou +101561 : Grand Narukami Shrine Omamori +101570 : Lucky Omamori +101571 : Box of Nails +101572 : Planks +101573 : Rope +101574 : +101575 : Kito's Sachet +101576 : Treasure Map Fragment +101577 : Treasure Map Fragment +101578 : Treasure Map Fragment +101579 : Treasure Map Fragment +101580 : A Treasure Map Left for Shitoki +101581 : Makiri's Charm +101582 : General Purpose Directional Conduction Component +101583 : Rust-Worn Key +101584 : Heavy Key +101585 : Intact Key +101586 : Sumida's Letter +101587 : New Firework Model +101588 : New Chronicles of the Six Kitsune (V) +101589 : Northland Bank Check +101590 : Scrawled Treasure Map +101591 : Kiminami Anna's Invigorating Kitty Meal +101592 : Autake Slate +101593 : General Purpose Directional Conduction Component +101594 : General Purpose Directional Conduction Component +101595 : General Purpose Directional Conduction Component +101596 : A Preliminary Study of Sangonomiya Folk Belief +101597 : The Life of Mouun the Shrine Maiden +101598 : Debates on the "Viceroy of the East" +101599 : Treasured Tales of the Chouken Shinkageuchi (I) +101600 : Mysterious Stone +101601 : Diary of Roald the Adventurer: Tsurumi Island +101602 : Fresh Meat +101603 : Fresh Fish +101604 : Bag of Retrieved Items +101605 : Repaired Comb +101606 : Mysterious Flyer +101607 : Rigorous Schedule +101608 : Simple Schedule +101609 : Starsplinter Iron +101610 : Subrosium +101611 : Wonder Core +101612 : Adepti Sigil +101613 : Records of a Changing Village +101614 : Ragged Notebook +101615 : Mountainous Miscellany +101616 : Neatly-Written Note +101617 : Little Meng's Drifting Bottle +101618 : Lumenstone +101619 : Muning's Note +101620 : Treasure Map Fragment +101621 : Treasure Hoarders' Treasure Map +101622 : Storehouse Security Key No. 1 +101623 : Storehouse Security Key No. 2 +101624 : A Set of Cannonballs +101625 : Special Unmoving Essential Oil +101626 : Key to a Stony Hall +101627 : Photo of a Strange Rock +101628 : Academia Recommendation Letter +101629 : Orb of the Blue Depths +101630 : Metal Key +101631 : Miner's Key +101632 : Blessings of Wisdom +101633 : Mountainator Cannonball (Fuse Attached) +101634 : Toy Doll +101635 : Flower of Farsight +101636 : Skyfeather +101637 : Sundial of Ages +101638 : Cup of Commons +101639 : Helm of Warding +101640 : Warrior's Spear +101641 : Brass Ring +101642 : Archaic Stone +101643 : Shriveled Seed +101644 : Lumenstone Ore +101645 : Yue Chuan's Drifting Bottle +101648 : Hiraizumi's Goods +101649 : Cell Key +101650 : Freshly-Picked Calla Lily +101651 : Freshly-Picked Small Lamp Grass +101652 : Freshly-Picked Cecilia +101654 : Ruin Machine Core +101655 : Date's Key +101656 : Pile of Lavender Melons +101657 : Fine Incense +101658 : +101659 : Curious Cube +101660 : A Note Someone Stuffed You +101661 : Special Bamboo Slip +101662 : "Final Instructions" +101663 : Bag of Clothes +101664 : Special Fortune Slip +101665 : Strange Object +101666 : Bedrock Key Location Diagram +101667 : Light Mora Purse +101668 : Full Mora Purse +101669 : Plump Fish +101670 : Beautifully-Written Note +101671 : Yun Jin's Personal Letter +101672 : Lyudochka's Letter +101673 : Lyudochka's Mora Purse +101674 : Fatui Code Sheet +101675 : Light Purse +101676 : Marjorie's Gift +101677 : Viktor's Gift +101678 : Fresh Wolfhooks +101679 : Lyudochka's Fortune Slip +101680 : The Serpent and Drakes of Tokoyokoku +101681 : Before Sun and Moon +101682 : Hydrological Studies in Byakuyakoku +101683 : Bathysmal Vishap Experimental Records +101684 : In the Light, Beneath the Shadow +101685 : The Miraculous Adventures of the Traveler +101686 : The Miraculous Adventures of the Traveler +101687 : The Miraculous Adventures of the Traveler +101688 : The Miraculous Adventures of the Traveler +101689 : +101690 : Muning's Note +101691 : Frostglaze Crystal +101692 : Light Realm Sigil +101693 : Light Realm Core +101694 : Bloodied Sergeant's Insignia +101695 : Corporal Nikolay's Diary +101696 : Corporal Nikolay's Diary +101697 : Mora Purse +101698 : A Firsthand Guide to Summoning Spirits +101699 : Dream Sakura +101700 : Aphotium Ore +101701 : Tokoyo Legume +101702 : Husk Gem +101703 : Fragmented Accessory +101704 : Fragmented Accessory +101706 : Tsumi's Map +101707 : Hakuen Michimitsu Amenoma +101708 : Wooden Cage Key +101709 : Damaged Stone Slate +101710 : Mysterious Stone Slate +101711 : Yanbo's Note +101712 : Nikolay's Letter +101713 : +101714 : Fragrant Seasoning +101715 : Fragrant Vegetarian Abalone +101719 : Fragrant Mint Salad +101720 : Fragrant Triple-Layered Consommé +101724 : Zhiqiong's Letter +101725 : Arrival Schedule +101726 : Five Kasen Summary +101727 : The Five Kasen's Splendor: Suikou +101728 : The Five Kasen's Splendor: Aoi no Okina +101729 : The Five Kasen's Splendor: Akahito +101730 : The Five Kasen's Splendor: Sumizome +101731 : The Five Kasen's Splendor: Sumizome +101732 : Ancient Forging Blueprint +101733 : Kaedehara Yoshinori's Letter +101734 : Taliesin's Manuscript +101737 : Fragrant Stir-Fried Shrimp +101738 : Fragrant Golden Shrimp Balls +101739 : Fragrant Qingce Stir Fry +101740 : Fragrant Black-Back Perch Stew +101741 : Fragrant Stir-Fried Filet +101742 : Fragrant Grilled Tiger Fish +101743 : Fragrant Crab Roe Tofu +101744 : Fragrant Golden Crab +101745 : Fragrant Jewelry Soup +101746 : Fragrant Bamboo Shoot Soup +101747 : Fragrant Noodles with Mountain Delicacies +101748 : Fragrant Mora Meat +101749 : Fragrant Stir-Fried Fish Noodles +101750 : Fragrant Universal Peace +101751 : Fragrant Rice Buns +101752 : Fragrant Almond Tofu +101753 : Fragrant Lotus Flower Crisp +101754 : Sayu's Salary +101755 : Statue of Her Excellency, the Almighty Narukami Ogosho, God of Thunder +101756 : Kokomi's Shopping List +101757 : Toy Fox +101766 : A Legend of Sword (VI) +101767 : Shogun Almighty: Reborn as Raiden With Unlimited Power +101768 : Pretty Please, Kitsune Guuji? +101769 : Let's Go, Dodoco! +101782 : Jinwu's Soup +101783 : +101784 : +101785 : +101786 : +101787 : +101788 : +101789 : +101790 : +101791 : +101792 : +101793 : +101794 : +101795 : Bag of Ornaments +101797 : Let's Go, Dodoco! +102001 : Pyro Shard +102002 : Hydro Shard +102003 : Dendro Shard +102004 : Electro Shard +102005 : Anemo Shard +102006 : Cryo Shard +102007 : Geo Shard +102008 : Primordial Elemental Shard +103001 : Pyro Jikaka +103002 : Hydro Jikaka +103003 : Dendro Jikaka +103004 : Electro Jikaka +103005 : Anemo Jikaka +103006 : Cryo Jikaka +103007 : Geo Jikaka +103008 : Standard Jikaka +104001 : Wanderer's Advice +104002 : Adventurer's Experience +104003 : Hero's Wit +104011 : Enhancement Ore +104012 : Fine Enhancement Ore +104013 : Mystic Enhancement Ore +104101 : Brilliant Diamond Sliver +104102 : Brilliant Diamond Fragment +104103 : Brilliant Diamond Chunk +104104 : Brilliant Diamond Gemstone +104111 : Agnidus Agate Sliver +104112 : Agnidus Agate Fragment +104113 : Agnidus Agate Chunk +104114 : Agnidus Agate Gemstone +104121 : Varunada Lazurite Sliver +104122 : Varunada Lazurite Fragment +104123 : Varunada Lazurite Chunk +104124 : Varunada Lazurite Gemstone +104131 : Nagadus Emerald Sliver +104132 : Nagadus Emerald Fragment +104133 : Nagadus Emerald Chunk +104134 : Nagadus Emerald Gemstone +104141 : Vajrada Amethyst Sliver +104142 : Vajrada Amethyst Fragment +104143 : Vajrada Amethyst Chunk +104144 : Vajrada Amethyst Gemstone +104151 : Vayuda Turquoise Sliver +104152 : Vayuda Turquoise Fragment +104153 : Vayuda Turquoise Chunk +104154 : Vayuda Turquoise Gemstone +104161 : Shivada Jade Sliver +104162 : Shivada Jade Fragment +104163 : Shivada Jade Chunk +104164 : Shivada Jade Gemstone +104171 : Prithiva Topaz Sliver +104172 : Prithiva Topaz Fragment +104173 : Prithiva Topaz Chunk +104174 : Prithiva Topaz Gemstone +104201 : Dust of Azoth +104301 : Teachings of Freedom +104302 : Guide to Freedom +104303 : Philosophies of Freedom +104304 : Teachings of Resistance +104305 : Guide to Resistance +104306 : Philosophies of Resistance +104307 : Teachings of Ballad +104308 : Guide to Ballad +104309 : Philosophies of Ballad +104310 : Teachings of Prosperity +104311 : Guide to Prosperity +104312 : Philosophies of Prosperity +104313 : Teachings of Diligence +104314 : Guide to Diligence +104315 : Philosophies of Diligence +104316 : Teachings of Gold +104317 : Guide to Gold +104318 : Philosophies of Gold +104319 : Crown of Insight +104320 : Teachings of Transience +104321 : Guide to Transience +104322 : Philosophies of Transience +104323 : Teachings of Elegance +104324 : Guide to Elegance +104325 : Philosophies of Elegance +104326 : Teachings of Light +104327 : Guide to Light +104328 : Philosophies of Light +105001 : Sanctifying Droplet +105002 : Sanctifying Unction +105003 : Sanctifying Essence +105004 : Sanctifying Essence +106000 : Test Stamina Growth Item +106001 : Test Temporary stamina Growth Item +107001 : Anemoculus +107002 : Elemental Dust +107003 : Geoculus +107004 : Adventure Treasure Pack +107005 : Skyrider Greatsword Chest +107006 : Mondstadt Shrine of Depths Key +107007 : Liyue Shrine of Depths Key +107008 : Inazuma Shrine of Depths Key +107009 : Fragile Resin +107010 : Crimson Agate +107011 : Crimson Agate (Display) +107012 : Transient Resin +107013 : Vial of Adeptal Speed +107014 : Electroculus +107015 : Moonchase Charm +107016 : Lumenspar +108000 : Dish +108001 : Suspicious Fisherman's Toast +108002 : Fisherman's Toast +108003 : Delicious Fisherman's Toast +108004 : Suspicious Teyvat Fried Egg +108005 : Teyvat Fried Egg +108006 : Delicious Teyvat Fried Egg +108007 : Suspicious Steak +108008 : Steak +108009 : Delicious Steak +108010 : Outrider's Champion Steak! +108011 : Suspicious Chicken-Mushroom Skewer +108012 : Chicken-Mushroom Skewer +108013 : Delicious Chicken-Mushroom Skewer +108014 : Fruity Skewers +108015 : Suspicious Flaming Red Bolognese +108016 : Flaming Red Bolognese +108017 : Delicious Flaming Red Bolognese +108018 : Mysterious Bolognese +108019 : Suspicious Radish Veggie Soup +108020 : Radish Veggie Soup +108021 : Delicious Radish Veggie Soup +108022 : Suspicious Tea Break Pancake +108023 : Tea Break Pancake +108024 : Delicious Tea Break Pancake +108025 : Suspicious Fried Radish Balls +108026 : Fried Radish Balls +108027 : Delicious Fried Radish Balls +108028 : Suspicious Satisfying Salad +108029 : Satisfying Salad +108030 : Delicious Satisfying Salad +108031 : Suspicious Sweet Madame +108032 : Sweet Madame +108033 : Delicious Sweet Madame +108034 : Suspicious Northern Smoked Chicken +108035 : Northern Smoked Chicken +108036 : Delicious Northern Smoked Chicken +108037 : Suspicious Cream Stew +108038 : Cream Stew +108039 : Delicious Cream Stew +108040 : Spicy Stew +108041 : Suspicious Mushroom Pizza +108042 : Mushroom Pizza +108043 : Delicious Mushroom Pizza +108044 : Invigorating Pizza +108045 : Suspicious Mondstadt Hash Brown +108046 : Mondstadt Hash Brown +108047 : Delicious Mondstadt Hash Brown +108048 : Puppy-Paw Hash Brown +108049 : Suspicious Calla Lily Seafood Soup +108050 : Calla Lily Seafood Soup +108051 : Delicious Calla Lily Seafood Soup +108052 : Suspicious Sautéed Matsutake +108053 : Sautéed Matsutake +108054 : Delicious Sautéed Matsutake +108055 : Suspicious "Pile 'Em Up" +108056 : "Pile 'Em Up" +108057 : Delicious "Pile 'Em Up" +108058 : "Once Upon a Time in Mondstadt" +108059 : Suspicious Cold Cut Platter +108060 : Cold Cut Platter +108061 : Delicious Cold Cut Platter +108062 : Suspicious Sticky Honey Roast +108063 : Sticky Honey Roast +108064 : Delicious Sticky Honey Roast +108065 : Suspicious Crab, Ham & Veggie Bake +108066 : Crab, Ham & Veggie Bake +108067 : Delicious Crab, Ham & Veggie Bake +108068 : Suspicious Jade Parcels +108069 : Jade Parcels +108070 : Delicious Jade Parcels +108071 : Suspicious Zhongyuan Chop Suey +108072 : Zhongyuan Chop Suey +108073 : Delicious Zhongyuan Chop Suey +108074 : Suspicious Black-Back Perch Stew +108075 : Black-Back Perch Stew +108076 : Delicious Black-Back Perch Stew +108077 : Suspicious Squirrel Fish +108078 : Squirrel Fish +108079 : Delicious Squirrel Fish +108080 : Suspicious Almond Tofu +108081 : Almond Tofu +108082 : Delicious Almond Tofu +108083 : Suspicious Jueyun Chili Chicken +108084 : Jueyun Chili Chicken +108085 : Delicious Jueyun Chili Chicken +108086 : Suspicious Jewelry Soup +108087 : Jewelry Soup +108088 : Delicious Jewelry Soup +108089 : Suspicious Matsutake Meat Rolls +108090 : Matsutake Meat Rolls +108091 : Delicious Matsutake Meat Rolls +108092 : Suspicious Mora Meat +108093 : Mora Meat +108094 : Delicious Mora Meat +108095 : Suspicious Mondstadt Grilled Fish +108096 : Mondstadt Grilled Fish +108097 : Delicious Mondstadt Grilled Fish +108098 : Suspicious Stir-Fried Filet +108099 : Stir-Fried Filet +108100 : Delicious Stir-Fried Filet +108101 : Suspicious Golden Crab +108102 : Golden Crab +108103 : Delicious Golden Crab +108104 : Suspicious Crystal Shrimp +108105 : Crystal Shrimp +108106 : Delicious Crystal Shrimp +108107 : Suspicious Grilled Tiger Fish +108108 : Grilled Tiger Fish +108109 : Delicious Grilled Tiger Fish +108110 : Suspicious Barbatos Ratatouille +108111 : Barbatos Ratatouille +108112 : Delicious Barbatos Ratatouille +108113 : A Buoyant Breeze +108114 : Der Weisheit Letzter Schluss (Life) +108115 : Fish-Flavored Toast +108116 : Teyvat Charred Egg +108117 : Die Heilige Sinfonie +108118 : Lighter-Than-Air Pancake +108119 : Suspicious Lotus Seed and Bird Egg Soup +108120 : Lotus Seed and Bird Egg Soup +108121 : Delicious Lotus Seed and Bird Egg Soup +108122 : Suspicious Adeptus' Temptation +108123 : Adeptus' Temptation +108124 : Delicious Adeptus' Temptation +108125 : Suspicious Golden Shrimp Balls +108126 : Golden Shrimp Balls +108127 : Delicious Golden Shrimp Balls +108128 : Suspicious Qingce Stir Fry +108129 : Qingce Stir Fry +108130 : Delicious Qingce Stir Fry +108131 : Suspicious Come and Get It +108132 : Come and Get It +108133 : Delicious Come and Get It +108134 : Definitely Not Bar Food! +108135 : Wanmin Restaurant's Boiled Fish +108136 : All-Delicacy Parcels +108137 : "Sweet Dream" +108138 : Flash-Fried Filet +108139 : Qiankun Mora Meat +108140 : No Tomorrow +108141 : Suspicious Noodles with Mountain Delicacies +108142 : Noodles with Mountain Delicacies +108143 : Delicious Noodles with Mountain Delicacies +108144 : Cold Noodles with Mountain Delicacies +108145 : Survival Grilled Fish +108146 : Nutritious Meal (V.593) +108147 : Holy Water +108148 : Pop's Teas +108149 : Wolfhook Juice +108150 : Berry & Mint Burst +108151 : Apple Cider +108152 : Suspicious Bamboo Shoot Soup +108153 : Bamboo Shoot Soup +108154 : Delicious Bamboo Shoot Soup +108155 : Suspicious Triple-Layered Consommé +108156 : Triple-Layered Consommé +108157 : Delicious Triple-Layered Consommé +108158 : Suspicious Tianshu Meat +108159 : Tianshu Meat +108160 : Delicious Tianshu Meat +108161 : Suspicious Lotus Flower Crisp +108162 : Lotus Flower Crisp +108163 : Delicious Lotus Flower Crisp +108164 : Suspicious Moon Pie +108165 : Moon Pie +108166 : Delicious Moon Pie +108167 : Suspicious Adventurer's Breakfast Sandwich +108168 : Adventurer's Breakfast Sandwich +108169 : Delicious Adventurer's Breakfast Sandwich +108170 : Suspicious Northern Apple Stew +108171 : Northern Apple Stew +108172 : Delicious Northern Apple Stew +108173 : Slow-Cooked Bamboo Shoot Soup +108174 : Rockin' Riffin' Chicken! +108175 : A Prize Catch +108176 : Suspicious Crab Roe Tofu +108177 : Crab Roe Tofu +108178 : Delicious Crab Roe Tofu +108179 : Suspicious Fullmoon Egg +108180 : Fullmoon Egg +108181 : Delicious Fullmoon Egg +108182 : Suspicious Cured Pork Dry Hotpot +108183 : Cured Pork Dry Hotpot +108184 : Delicious Cured Pork Dry Hotpot +108185 : Suspicious Stir-Fried Fish Noodles +108186 : Stir-Fried Fish Noodles +108187 : Delicious Stir-Fried Fish Noodles +108188 : Suspicious Vegetarian Abalone +108189 : Vegetarian Abalone +108190 : Delicious Vegetarian Abalone +108191 : Suspicious Stone Harbor Delicacies +108192 : Stone Harbor Delicacies +108193 : Delicious Stone Harbor Delicacies +108194 : Suspicious Stir-Fried Shrimp +108195 : Stir-Fried Shrimp +108196 : Delicious Stir-Fried Shrimp +108197 : Suspicious Rice Buns +108198 : Rice Buns +108199 : Delicious Rice Buns +108200 : Ghostly March +108201 : Suspicious Universal Peace +108202 : Universal Peace +108203 : Delicious Universal Peace +108204 : Suspicious Goulash +108205 : Goulash +108206 : Delicious Goulash +108207 : Suspicious Sunshine Sprat +108208 : Sunshine Sprat +108209 : Delicious Sunshine Sprat +108210 : Suspicious Jueyun Guoba +108211 : Jueyun Guoba +108212 : Delicious Jueyun Guoba +108213 : Prosperous Peace +108214 : Woodland Dream +108215 : Lantern Rite Special Grilled Tiger Fish +108216 : Lantern Rite Special Fried Radish Balls +108217 : Lantern Rite Special Lotus Seed and Bird Egg Soup +108218 : Lantern Rite Special Jewelry Soup +108219 : Lantern Rite Special Noodles with Mountain Delicacies +108220 : Lantern Rite Special Come and Get It +108221 : Lantern Rite Special Triple-Layered Consommé +108222 : Suspicious Crispy Potato Shrimp Platter +108223 : Crispy Potato Shrimp Platter +108224 : Delicious Crispy Potato Shrimp Platter +108225 : Suspicious Mint Jelly +108226 : Mint Jelly +108227 : Delicious Mint Jelly +108228 : Suspicious Mint Salad +108229 : Mint Salad +108230 : Delicious Mint Salad +108231 : Suspicious Minty Meat Rolls +108232 : Minty Meat Rolls +108233 : Delicious Minty Meat Rolls +108234 : Dinner of Judgment +108235 : Suspicious Golden Fried Chicken +108236 : Golden Fried Chicken +108237 : Delicious Golden Fried Chicken +108238 : Suspicious Golden Chicken Burger +108239 : Golden Chicken Burger +108240 : Delicious Golden Chicken Burger +108241 : Suspicious Fragrant Mashed Potatoes +108242 : Fragrant Mashed Potatoes +108243 : Delicious Fragrant Mashed Potatoes +108244 : "My Way" +108245 : Stormcrest Pie +108246 : Suspicious Chicken Tofu Pudding +108247 : Chicken Tofu Pudding +108248 : Delicious Chicken Tofu Pudding +108249 : Suspicious Tuna Sushi +108250 : Tuna Sushi +108251 : Delicious Tuna Sushi +108252 : Suspicious Tricolor Dango +108253 : Tricolor Dango +108254 : Delicious Tricolor Dango +108255 : Suspicious Onigiri +108256 : Onigiri +108257 : Delicious Onigiri +108258 : Suspicious Sashimi Platter +108259 : Sashimi Platter +108260 : Delicious Sashimi Platter +108261 : Suspicious Tonkotsu Ramen +108262 : Tonkotsu Ramen +108263 : Delicious Tonkotsu Ramen +108264 : Suspicious Egg Roll +108265 : Egg Roll +108266 : Delicious Egg Roll +108267 : Suspicious Dry-Braised Salted Fish +108268 : Dry-Braised Salted Fish +108269 : Delicious Dry-Braised Salted Fish +108270 : Suspicious Butter Crab +108271 : Butter Crab +108272 : Delicious Butter Crab +108273 : Suspicious Tri-Flavored Skewer +108274 : Tri-Flavored Skewer +108275 : Delicious Tri-Flavored Skewer +108276 : Suspicious Miso Soup +108277 : Miso Soup +108278 : Delicious Miso Soup +108279 : Suspicious Imported Poultry +108280 : Imported Poultry +108281 : Delicious Imported Poultry +108282 : Suspicious Sakura Mochi +108283 : Sakura Mochi +108284 : Delicious Sakura Mochi +108285 : Suspicious Konda Cuisine +108286 : Konda Cuisine +108287 : Delicious Konda Cuisine +108288 : Suspicious Rice Cake Soup +108289 : Rice Cake Soup +108290 : Delicious Rice Cake Soup +108291 : Suspicious Mixed Yakisoba +108292 : Mixed Yakisoba +108293 : Delicious Mixed Yakisoba +108294 : Suspicious Crab Roe Kourayaki +108295 : Crab Roe Kourayaki +108296 : Delicious Crab Roe Kourayaki +108297 : Suspicious Sakura Tempura +108298 : Sakura Tempura +108299 : Delicious Sakura Tempura +108300 : "Snow on the Hearth" +108301 : All-Weather Beauty +108302 : Summer Festival Fish +108303 : Dizziness-Be-Gone no Jutsu Version 2.0 +108304 : Special Mushroom Pizza +108305 : Dango Milk +108306 : Suspicious Rice Pudding +108307 : Rice Pudding +108308 : Delicious Rice Pudding +108309 : Suspicious Braised Meat +108310 : Braised Meat +108311 : Delicious Braised Meat +108312 : Suspicious Oncidium Tofu +108313 : Oncidium Tofu +108314 : Delicious Oncidium Tofu +108315 : Suspicious Chili-Mince Cornbread Buns +108316 : Chili-Mince Cornbread Buns +108317 : Delicious Chili-Mince Cornbread Buns +108318 : Suspicious Invigorating Kitty Meal +108319 : Invigorating Kitty Meal +108320 : Delicious Invigorating Kitty Meal +108321 : Suspicious Sweet Shrimp Sushi +108322 : Sweet Shrimp Sushi +108323 : Delicious Sweet Shrimp Sushi +108324 : Suspicious Bird Egg Sushi +108325 : Bird Egg Sushi +108326 : Delicious Bird Egg Sushi +108327 : Suspicious Omelette Rice +108328 : Omelette Rice +108329 : Delicious Omelette Rice +108330 : Suspicious Taiyaki +108331 : Taiyaki +108332 : Delicious Taiyaki +108333 : Suspicious More-and-More +108334 : More-and-More +108335 : Delicious More-and-More +108336 : Suspicious Grilled Unagi Fillet +108337 : Grilled Unagi Fillet +108338 : Delicious Grilled Unagi Fillet +108339 : Satiety Gel +108340 : A Stunning Stratagem +108341 : Faith Eternal +108342 : Suspicious Radish and Fish Stew +108343 : Radish and Fish Stew +108344 : Delicious Radish and Fish Stew +108345 : Suspicious Wakatakeni +108346 : Wakatakeni +108347 : Delicious Wakatakeni +108348 : Suspicious Berry Mizu Manjuu +108349 : Berry Mizu Manjuu +108350 : Delicious Berry Mizu Manjuu +108351 : Suspicious Soba Noodles +108352 : Soba Noodles +108353 : Delicious Soba Noodles +108354 : "Warmth" +108355 : Suspicious Unagi Chazuke +108356 : Unagi Chazuke +108357 : Delicious Unagi Chazuke +108358 : Suspicious Five Pickled Treasures +108359 : Five Pickled Treasures +108360 : Delicious Five Pickled Treasures +108361 : Suspicious Sakura Shrimp Crackers +108362 : Sakura Shrimp Crackers +108363 : Delicious Sakura Shrimp Crackers +108364 : Way of the Strong +108365 : Victorious Legend +108366 : Suspicious Bountiful Year +108367 : Bountiful Year +108368 : Delicious Bountiful Year +108369 : Suspicious Dragon Beard Noodles +108370 : Dragon Beard Noodles +108371 : Delicious Dragon Beard Noodles +108372 : Heartstring Noodles +108373 : Cloud-Shrouded Jade +108374 : Suspicious Sangayaki +108375 : Sangayaki +108376 : Delicious Sangayaki +108377 : Suspicious Udon Noodles +108378 : Udon Noodles +108379 : Delicious Udon Noodles +108380 : Fukuuchi Udon +108381 : Suspicious Katsu Sandwich +108382 : Katsu Sandwich +108383 : Delicious Katsu Sandwich +108384 : Suspicious Rainbow Aster +108385 : Rainbow Aster +108386 : Delicious Rainbow Aster +108387 : Quiet Elegance +109000 : Recipe Item +109101 : Recipe: Chicken-Mushroom Skewer +109102 : Recipe: Fisherman's Toast +109103 : Recipe: Flaming Red Bolognese +109104 : Recipe: Sweet Madame +109106 : Recipe: Calla Lily Seafood Soup +109107 : Recipe: Sautéed Matsutake +109201 : Recipe: Teyvat Fried Egg +109202 : Recipe: Northern Smoked Chicken +109203 : Recipe: Cream Stew +109204 : Recipe: Cold Cut Platter +109205 : Recipe: Sticky Honey Roast +109206 : Recipe: Crab, Ham & Veggie Bake +109207 : Recipe: Mushroom Pizza +109301 : Recipe: Steak +109302 : Recipe: Radish Veggie Soup +109303 : Recipe: Mondstadt Hash Brown +109304 : Recipe: "Pile 'Em Up" +109401 : Recipe: Tea Break Pancake +109402 : Recipe: Fried Radish Balls +109403 : Recipe: Satisfying Salad +109404 : Recipe: Jade Parcels +109405 : Recipe: Mondstadt Grilled Fish +109406 : Recipe: Mora Meat +109407 : Recipe: Stir-Fried Filet +109408 : Recipe: Almond Tofu +109409 : Recipe: Jueyun Chili Chicken +109410 : Recipe: Jewelry Soup +109411 : Recipe: Matsutake Meat Rolls +109412 : Recipe: Zhongyuan Chop Suey +109413 : Recipe: Black-Back Perch Stew +109414 : Recipe: Squirrel Fish +109415 : Recipe: Golden Crab +109416 : Recipe: Crystal Shrimp +109417 : Recipe: Grilled Tiger Fish +109418 : Recipe: Barbatos Ratatouille +109419 : Recipe: Lotus Seed and Bird Egg Soup +109420 : Recipe: Adeptus' Temptation +109421 : Recipe: Golden Shrimp Balls +109422 : Recipe: Qingce Stir Fry +109423 : Recipe: Come and Get It +109424 : Recipe: Noodles with Mountain Delicacies +109425 : Recipe: Bamboo Shoot Soup +109426 : Recipe: Triple-Layered Consommé +109427 : Recipe: Tianshu Meat +109428 : Recipe: Lotus Flower Crisp +109429 : Recipe: Moon Pie +109430 : Recipe: Adventurer's Breakfast Sandwich +109431 : Recipe: Northern Apple Stew +109432 : Recipe: Crab Roe Tofu +109433 : Recipe: Fullmoon Egg +109434 : Recipe: Cured Pork Dry Hotpot +109435 : Recipe: Stir-Fried Fish Noodles +109436 : Recipe:Vegetarian Abalone +109437 : Recipe: Stone Harbor Delicacies +109438 : Recipe: Stir-Fried Shrimp +109439 : Recipe: Rice Buns +109440 : Recipe: Goulash +109441 : Recipe: Sunshine Sprat +109442 : Recipe: Universal Peace +109443 : Recipe: Jueyun Guoba +109444 : Recipe: Crispy Potato Shrimp Platter +109445 : Recipe: Mint Jelly +109446 : Recipe: Mint Salad +109447 : Recipe: Minty Meat Rolls +109448 : Recipe: Golden Fried Chicken +109449 : Recipe: Golden Chicken Burger +109450 : Recipe: Fragrant Mashed Potatoes +109451 : Recipe: Chicken Tofu Pudding +109452 : Recipe: Tuna Sushi +109453 : Recipe: Tricolor Dango +109454 : Recipe: Onigiri +109455 : Recipe: Sashimi Platter +109456 : Recipe: Tonkotsu Ramen +109457 : Recipe: Egg Roll +109458 : Recipe: Dry-Braised Salted Fish +109459 : Recipe: Butter Crab +109460 : Recipe: Tri-Flavored Skewer +109461 : Recipe: Miso Soup +109462 : Recipe: Imported Poultry +109463 : Recipe: Sakura Mochi +109464 : Recipe: Konda Cuisine +109465 : Recipe: Rice Cake Soup +109466 : Recipe: Mixed Yakisoba +109467 : Recipe: Crab Roe Kourayaki +109468 : Recipe: Sakura Tempura +109469 : Recipe: Rice Pudding +109470 : Recipe: Braised Meat +109471 : Recipe: Oncidium Tofu +109472 : Recipe: Chili-Mince Cornbread Buns +109473 : Recipe: Invigorating Kitty Meal +109474 : Recipe: Sweet Shrimp Sushi +109475 : Recipe: Bird Egg Sushi +109476 : Recipe: Omelette Rice +109477 : Recipe: Taiyaki +109478 : Recipe: More-and-More +109479 : Recipe: Grilled Unagi Fillet +109480 : Recipe: Radish and Fish Stew +109481 : Recipe: Wakatakeni +109482 : Recipe: Berry Mizu Manjuu +109483 : Recipe: Soba Noodles +109484 : Recipe: Unagi Chazuke +109485 : Recipe: Five Pickled Treasures +109486 : Recipe: Sakura Shrimp Crackers +109487 : Recipe: Bountiful Year +109488 : Recipe: Dragon Beard Noodles +109489 : Recipe: Sangayaki +109490 : Recipe: Udon Noodles +109491 : Recipe: Katsu Sandwich +109492 : Recipe: Rainbow Aster +110000 : Crafted Items +110001 : Flour +110002 : Cream +110003 : Smoked Fowl +110004 : Butter +110005 : Ham +110006 : Sugar +110008 : Jam +110009 : Cheese +110010 : Bacon +110011 : Sausage +110012 : Smoked Fish +110013 : Dried Fish +111006 : Heatshield Potion +111007 : Desiccant Potion +111008 : Frostshield Potion +111009 : Windbarrier Potion +111010 : Insulation Potion +111011 : Dustproof Potion +111012 : Dendrocide Potion +111013 : Flaming Essential Oil +111014 : Streaming Essential Oil +111015 : Frosting Essential Oil +111016 : Gushing Essential Oil +111017 : Shocking Essential Oil +111018 : Unmoving Essential Oil +111019 : Forest Essential Oil +111020 : Small Pretty Crystal +111021 : Medium Pretty Crystal +111022 : Big Pretty Crystal +111023 : Fruit Paste Bait +111024 : Redrot Bait +111025 : False Worm Bait +111026 : Fake Fly Bait +111027 : Glowgrass Bait +112001 : Primordial Essence +112002 : Slime Condensate +112003 : Slime Secretions +112004 : Slime Concentrate +112005 : Damaged Mask +112006 : Stained Mask +112007 : Ominous Mask +112008 : Divining Scroll +112009 : Sealed Scroll +112010 : Forbidden Curse Scroll +112011 : Firm Arrowhead +112012 : Sharp Arrowhead +112013 : Weathered Arrowhead +112014 : Heavy Horn +112015 : Black Bronze Horn +112016 : Black Crystal Horn +112017 : Gloomy Statuette +112018 : Dark Statuette +112019 : Deathly Statuette +112020 : Dead Ley Line Branch +112021 : Dead Ley Line Leaves +112022 : Ley Line Sprout +112023 : Chaos Device +112024 : Chaos Circuit +112025 : Chaos Core +112026 : Mist Grass Pollen +112027 : Mist Grass +112028 : Mist Grass Wick +112029 : Hunter's Sacrificial Knife +112030 : Agent's Sacrificial Knife +112031 : Inspector's Sacrificial Knife +112032 : Recruit's Insignia +112033 : Sergeant's Insignia +112034 : Lieutenant's Insignia +112035 : Treasure Hoarder Insignia +112036 : Silver Raven Insignia +112037 : Golden Raven Insignia +112038 : Whopperflower Nectar +112039 : Shimmering Nectar +112040 : Energy Nectar +112041 : Fragile Bone Shard +112042 : Sturdy Bone Shard +112043 : Fossilized Bone Shard +112044 : Old Handguard +112045 : Kageuchi Handguard +112046 : Famed Handguard +112047 : Chaos Gear +112048 : Chaos Axis +112049 : Chaos Oculus +112050 : Dismal Prism +112051 : Crystal Prism +112052 : Polarizing Prism +112053 : Spectral Husk +112054 : Spectral Heart +112055 : Spectral Nucleus +112056 : Concealed Claw +112057 : Concealed Unguis +112058 : Concealed Talon +112059 : Fungal Spores +112060 : Luminescent Pollen +112061 : Crystalline Cyst Dust +113001 : Hurricane Seed +113002 : Lightning Prism +113003 : Dvalin's Plume +113004 : Dvalin's Claw +113005 : Dvalin's Sigh +113006 : Tail of Boreas +113007 : Ring of Boreas +113008 : Spirit Locket of Boreas +113009 : Basalt Pillar +113010 : Hoarfrost Core +113011 : Everflame Seed +113012 : Cleansing Heart +113013 : Tusk of Monoceros Caeli +113014 : Shard of a Foul Legacy +113015 : Shadow of the Warrior +113016 : Juvenile Jade +113017 : Dragon Lord's Crown +113018 : Bloodjade Branch +113019 : Gilded Scale +113020 : Crystalline Bloom +113021 : Dream Solvent +113022 : Marionette Core +113023 : Perpetual Heart +113024 : Smoldering Pearl +113025 : Molten Moment +113026 : Hellfire Butterfly +113027 : Ashen Heart +113028 : Dew of Repudiation +113029 : Storm Beads +113030 : Riftborn Regalia +113031 : Dragonheir's False Fin +113032 : Mudra of the Malefic General +113033 : Tears of the Calamitous God +113034 : The Meaning of Aeons +113035 : Runic Fang +114001 : Tile of Decarabian's Tower +114002 : Debris of Decarabian's City +114003 : Fragment of Decarabian's Epic +114004 : Scattered Piece of Decarabian's Dream +114005 : Boreal Wolf's Milk Tooth +114006 : Boreal Wolf's Cracked Tooth +114007 : Boreal Wolf's Broken Fang +114008 : Boreal Wolf's Nostalgia +114009 : Fetters of the Dandelion Gladiator +114010 : Chains of the Dandelion Gladiator +114011 : Shackles of the Dandelion Gladiator +114012 : Dream of the Dandelion Gladiator +114013 : Luminous Sands from Guyun +114014 : Lustrous Stone from Guyun +114015 : Relic from Guyun +114016 : Divine Body from Guyun +114017 : Mist Veiled Lead Elixir +114018 : Mist Veiled Mercury Elixir +114019 : Mist Veiled Gold Elixir +114020 : Mist Veiled Primo Elixir +114021 : Grain of Aerosiderite +114022 : Piece of Aerosiderite +114023 : Bit of Aerosiderite +114024 : Chunk of Aerosiderite +114025 : Coral Branch of a Distant Sea +114026 : Jeweled Branch of a Distant Sea +114027 : Jade Branch of a Distant Sea +114028 : Golden Branch of a Distant Sea +114029 : Narukami's Wisdom +114030 : Narukami's Joy +114031 : Narukami's Affection +114032 : Narukami's Valor +114033 : Mask of the Wicked Lieutenant +114034 : Mask of the Tiger's Bite +114035 : Mask of the One-Horned +114036 : Mask of the Kijin +115001 : +115002 : +115003 : +115004 : +115005 : +115006 : +115007 : +115008 : +115009 : +115010 : Starter Supply Bundle +115011 : Wayfarer's Supply Bundle +115012 : Traveler's Supply Bundle +115013 : Exotic Share Bundle +115014 : Character Ascension Bundle (High) +115015 : Character Ascension Bundle (Very High) +115016 : Talent Materials Bundle (Low) +115017 : Virtuous Share Bundle +115018 : Talent Materials Bundle (High) +115019 : Adventurer's Supply Bundle +115020 : Adventurer's Ore Bundle +115021 : Adventurer's Special Bundle +115022 : Adventurer's Instructional Bundle +115023 : Adventurer's Tempering Bundle +115024 : Material Share Bundle +115025 : Eminent Share Bundle +115026 : Weapon Ascension Bundle (High) +115027 : Weapon Ascension Bundle (Very High) +115028 : Recipe Collection: Exotic Gourmet +115029 : Adventurer's Jumbo Ore Bundle +115030 : Adventurer's Special Supply Bundle +115031 : Northlander Billet Trove +115032 : Adventurer's Share Bundle +115034 : Adventurer's Seasonal Special Bundle +115035 : Sakuya's Special Gardening Package +115037 : Yashiro Commission Gift +115038 : Exquisite Gift (Furnishing) +115039 : Amazing Gift (Furnishing) +116001 : BEP +116002 : BP Bounty +116003 : BP Pick 1 of 3 Test Bundle +116004 : Guidance of the Land of Wind +116005 : Philosophies of the Land of Wind +116006 : Guidance of the Land of Geo +116007 : Philosophies of the Land of Geo +116008 : +116009 : +116010 : Guidance of the Land of Thunder +116011 : Philosophies of the Land of Thunder +117001 : Domain Reliquary: Tier III +117002 : Domain Reliquary: Tier II +117003 : Domain Reliquary: Tier I +117004 : Reliquary: Wanderer's Troupe and Gladiator +117005 : Grand Reliquary: Wanderer's Troupe and Gladiator +117006 : Domain Reliquary: Tier II +117007 : Domain Reliquary: Tier I +118001 : Cake for Traveler +118002 : Cake for Traveler +118003 : Cake for Traveler +118004 : Cake for Traveler +130001 : Silk Flower Seed +130002 : Sweet Flower Seed +130003 : Cecilia Seed +130004 : Glaze Lily Seed +130005 : Windwheel Aster Seed +130006 : Qingxin Seed +130007 : Violetgrass Seed +130008 : Valberry Seed +130009 : Small Lamp Grass Seed +130010 : Jueyun Chili Seed +130011 : Carrot Seed +130012 : Radish Seed +130013 : Mint Seed +130014 : Mushroom Spore +130015 : Naku Weed Seed +130016 : Horsetail Seed +130017 : Snapdragon Seed +130018 : Lotus Seed +130019 : Calla Lily Seed +130020 : Seagrass Seed +130021 : Sea Ganoderma Cutting +130022 : Dreambloom: Star Hibiscus Seed +130023 : Dreambloom: Pearbell Seed +130024 : Dreambloom: Silkpod Seed +131000 : Medaka +131001 : Glaze Medaka +131002 : Sweet-Flower Medaka +131003 : Aizen Medaka +131004 : Dawncatcher +131005 : Crystalfish +131006 : Lunged Stickleback +131007 : Betta +131008 : Venomspine Fish +131009 : Akai Maou +131010 : Snowstrider +131011 : Golden Koi +131012 : Rusty Koi +131013 : Brown Shirakodai +131014 : Purple Shirakodai +131015 : Tea-Colored Shirakodai +131016 : Abiding Angelfish +131017 : Raimei Angelfish +131019 : Pufferfish +131020 : Bitter Pufferfish +131021 : Divda Ray +131022 : Formalo Ray +140001 : Wings of First Flight +140002 : Wings of Companionship +140003 : Wings of Descension +140004 : Wings of Azure Wind +140005 : Wings of Golden Flight +140006 : Wings of Concealing Snow +140007 : Wings of Feasting +140008 : Wings of the Stormstrider +140009 : Wings of Shimmering Galaxy +141001 : Radiant Spincrystal 1 +141002 : Radiant Spincrystal 2 +141003 : Radiant Spincrystal 3 +141004 : Radiant Spincrystal 4 +141005 : Radiant Spincrystal 5 +141006 : Radiant Spincrystal 6 +141007 : Radiant Spincrystal 7 +141008 : Radiant Spincrystal 8 +141009 : Radiant Spincrystal 9 +141010 : Radiant Spincrystal 10 +141011 : Radiant Spincrystal 11 +141012 : Radiant Spincrystal 12 +141013 : Radiant Spincrystal 13 +141014 : Radiant Spincrystal 14 +141015 : Radiant Spincrystal 15 +141016 : Radiant Spincrystal 16 +141017 : Radiant Spincrystal 17 +141018 : Radiant Spincrystal 18 +141019 : Radiant Spincrystal 19 +141020 : Radiant Spincrystal 20 +141021 : Radiant Spincrystal 21 +141022 : Radiant Spincrystal 22 +141023 : Radiant Spincrystal 23 +141024 : Radiant Spincrystal 24 +141025 : Radiant Spincrystal 25 +141026 : Radiant Spincrystal 26 +141027 : Radiant Spincrystal 27 +141028 : Radiant Spincrystal 28 +141029 : Radiant Spincrystal 29 +141030 : Radiant Spincrystal 30 +141031 : Radiant Spincrystal 31 +141032 : Radiant Spincrystal 32 +141033 : Radiant Spincrystal 33 +141034 : Radiant Spincrystal 34 +141035 : Radiant Spincrystal 35 +141036 : Radiant Spincrystal 36 +141037 : Radiant Spincrystal 37 +141038 : Radiant Spincrystal 38 +141039 : Radiant Spincrystal 39 +141040 : Radiant Spincrystal 40 +141041 : Radiant Spincrystal 41 +141042 : Radiant Spincrystal 42 +141043 : Radiant Spincrystal 43 +141044 : Radiant Spincrystal 44 +141045 : Radiant Spincrystal 45 +141046 : Radiant Spincrystal 46 +141047 : Radiant Spincrystal 47 +141048 : Radiant Spincrystal 48 +141049 : Radiant Spincrystal 49 +141050 : Radiant Spincrystal 50 +141051 : Radiant Spincrystal 51 +141052 : Radiant Spincrystal 52 +141053 : Radiant Spincrystal 53 +141054 : Radiant Spincrystal 54 +141055 : Radiant Spincrystal 55 +141056 : Radiant Spincrystal 56 +141057 : Radiant Spincrystal 57 +141058 : Radiant Spincrystal 58 +141059 : Radiant Spincrystal 59 +141060 : Radiant Spincrystal 60 +141061 : Radiant Spincrystal 61 +141062 : Radiant Spincrystal 62 +141063 : Radiant Spincrystal 63 +141064 : Radiant Spincrystal 64 +141065 : Radiant Spincrystal 65 +141066 : Radiant Spincrystal 66 +141067 : Radiant Spincrystal 67 +141068 : Radiant Spincrystal 68 +141069 : Radiant Spincrystal 69 +141070 : Radiant Spincrystal 70 +141071 : Radiant Spincrystal 71 +141072 : Radiant Spincrystal 72 +200001 : Lantern Fiber +200002 : Wick Material +200003 : Plaustrite Shard +200004 : Xiao Lantern +200101 : Rime-Worn Fragment +200102 : Rime-Worn Crystal +200103 : Festering Dragon Marrow +200104 : "The Visible Winds" +200105 : "Fragments of Innocence" +200106 : Emperor's Balsam +200107 : Ako's Sake Vessel +200108 : Alkahest +200109 : Ointment of Sight +200201 : Falcon's Dance +200202 : Steelwing +200203 : Galespring +200204 : Crushing Blow +200205 : Hunter's Romp +200206 : Ironbow +200207 : Whirlpool +200208 : Fierce Strike +200209 : Featherweight +200210 : Blade Dance +200211 : Courageous +200212 : Emboldened +200213 : Song of Steel +200214 : Intertwined Steps +200215 : Ritual +200216 : War Breeds War +200217 : Burst Damage +200218 : Endless Waltz +200219 : Refined Burst +200220 : Charge Up +200221 : Overcharge +200222 : Thundering Dance +200223 : Timely Rain +200224 : Overmastered +200225 : Scattersleet Dance +200226 : Frostbite +200227 : Keen Edge +200228 : Starcrystal Dance +200229 : Refraction Crystals +200230 : Focusing Crystals +200231 : Iron Wall +200232 : Duelist's Dance +200233 : Coalesced Defenses +200234 : Enhanced Healing +200235 : Execution +200236 : Judgment +200237 : Challenger +200238 : Fractured Fruit Bit +200239 : Fractured Fruit Fragment +200240 : Fractured Fruit Shard +200241 : Duelist's Dance +200242 : Blade Dance +200243 : Starcrystal Dance +200244 : Intertwined Steps +200245 : Endless Waltz +200246 : Refraction Crystals +200247 : Emboldened +200248 : Courageous +200249 : Whirlpool +200250 : Challenger +200251 : Execution +200252 : Focusing Crystals +200253 : Refined Burst +200254 : Judgment +200255 : Keen Edge +200256 : Burst Damage +200257 : Overmastered +200258 : Iron Wall +200259 : Song of Steel +200260 : Fierce Strike +200261 : Dance of Abundance +200262 : Conductivity +200900 : Wilderness Rod +200901 : Windtangler +200902 : Wishmaker +200903 : Narukawa Ukai +200904 : Moonstringer +210001 : Genshin Impact: A New World +210002 : Travel Notes: Catch the Wind +210003 : Amber: Bunny +210004 : Klee: Explosive +210005 : Diluc: Flames +210006 : Razor: Wolvensprint +210007 : Venti: Azure Sky +210008 : Jean: The Winds' Course +210009 : Barbara: Flow +210010 : Kaeya: Pavo Ocellus +210011 : Lisa: Tempus Fugit +210012 : Sucrose: Bio-Alchemy +210013 : Fischl: Night Raven +210014 : Noelle: Protector +210015 : Mona: Starry Sky +210016 : Bennett: Recognition +210017 : Xiangling: Fresh from the Pan +210018 : Xingqiu: Rainbow +210019 : Qiqi: Cold Storage +210020 : Keqing: Lightning Stiletto +210021 : Achievement: Explorer +210022 : Achievement: Virtuoso +210023 : Achievement: Hero +210024 : Mondstadt: Whistling Wind +210025 : Liyue: Stillness of Stone +210026 : Achievement: Colors of the Rainbow +210027 : Achievement: Bowmaster +210028 : Achievement: Challenger +210029 : Achievement: Deep & Dark +210030 : Achievement: Hill Dwellers +210031 : Achievement: Snowy Land +210032 : Achievement: Cliffhanger +210033 : Achievement: Reunion +210038 : Ningguang: Phoenix +210039 : Beidou: Weighing Anchor +210040 : Chongyun: Spirit Blade +210041 : Achievement: Challenger II +210042 : Travel Notes: Fading Star +210043 : Diona: Meow! +210044 : Zhongli: Planet Befall +210045 : Xinyan: Song's End +210046 : Childe: Foul Legacy +210047 : Mondstadt: Hero's Fame +210048 : Mondstadt: Blessing +210049 : Liyue: A Thousand Ships +210050 : Liyue: In the Clouds +210051 : Achievement: Challenger III +210052 : Achievement: Snowy Summit +210053 : Ganyu: Qilin +210054 : Albedo: Sun Blossom +210055 : Travel Notes: Chalk +210056 : Frostbearing: Ancient Tree +210057 : Celebration: Hypostasis +210058 : Xiao: Mask +210059 : Hu Tao: Spirit Soother +210060 : Travel Notes: Mingxiao +210061 : Celebration: Lantern-Light +210062 : Celebration: Mechanicus +210063 : Rosaria: Indenture +210064 : Travel Notes: Windblume +210065 : Celebration: Feast +210066 : Celebration: Shining Scale +210067 : Celebration: Fruit of Wisdom +210068 : Celebration: Peekaboo! +210069 : Yanfei: Impartial +210070 : Eula: Ice-Sealed +210071 : Travel Notes: Sub-Space Recreation +210072 : Achievement: Tea Time +210073 : Kaedehara Kazuha: Autumn Maple-Viewing +210074 : Travel Notes: Midsummer +210075 : Achievement: Vacation Home +210076 : Celebration: Vastness +210077 : Celebration: Kaboomball +210078 : Celebration: Battlesong +210079 : Inazuma: Sacred Sakura +210080 : Travel Notes: Grand Narukami Shrine +210081 : Kamisato Ayaka: Folding Fan +210082 : Yoimiya: Auratus Spark +210083 : Sayu: Muji-Muji Daruma +210084 : Inazuma: Raiden Emblem +210085 : Inazuma: Kamisato Crest +210086 : Achievement: Gate +210087 : Achievement: Traversal +210088 : Achievement: Stone Dragon +210089 : Achievement: Full Bloom +210090 : Inazuma: Kujou Insignia +210091 : Celebration: Wondrous Calculation +210092 : Raiden Shogun: Enlightenment +210093 : Sangonomiya Kokomi: The Deep +210094 : Kujou Sara: Tengu +210095 : Aloy: Dawn +210096 : Travel Notes: Moonchaser +210097 : Inazuma: Sangonomiya Crest +210098 : Achievement: Nails +210099 : Celebration: Tuneful Delight +210100 : Celebration: Ikki +210101 : Thoma: Blazing Guard +210102 : Travel Notes: Heavenly General +210103 : Inazuma: Eagleplume +210104 : Gorou: Leisurely Hound +210105 : Itto: Oni Face +210106 : Travel Notes: Lyratum +210107 : Shenhe: Comb +210108 : Yun Jin: Rhyme +210109 : Inazuma: Tokoyo +210110 : Travel Notes: Flowing Hues +210111 : Celebration: Binge Vessel +210112 : Yae Miko: Kitsune Dreaming +210113 : Travel Notes: Awakening +210114 : Kamisato Ayato: Ripple +210115 : Lumens: Stone of Light +210116 : Achievement: Thunderclap +210117 : Achievement: Chasm +210118 : Travel Notes: Irodori +220001 : Anemoculus Resonance Stone +220002 : Geoculus Resonance Stone +220003 : Geo Treasure Compass +220004 : Wind Catcher +220005 : Portable Waypoint +220006 : Adepti Seeker's Stove +220007 : Condensed Resin +220008 : NRE (Menu 30) +220009 : Anemo Treasure Compass +220013 : Treasure-Seeking Seelie +220014 : Mini Seelie: Dayflower +220015 : Mini Seelie: Rosé +220016 : Mini Seelie: Curcuma +220017 : Warming Bottle +220018 : Kamera +220019 : Kurious Kamera +220020 : Special Kamera +220021 : Parametric Transformer +220022 : Inquisitive Endora +220023 : Endora +220024 : Windblume Festival Commemorative Balloon +220025 : Windsong Lyre +220026 : Serenitea Pot +220027 : Wind-Blessed Harpastum +220028 : Waverider Repair Toolbox +220029 : Straight Shooter +220030 : Floaty Splody +220031 : Hot Pod +220032 : Electroculus Resonance Stone +220033 : Seed Dispensary +220034 : Electro Treasure Compass +220035 : Red Feather Fan +220036 : Memento Lens +220037 : Treasure-Seeking Seelie +220038 : Mini Seelie: Viola +220039 : Peculiar Pinion +220040 : Peculiar Pinion +220041 : ??? +220042 : Ayesha's Chaos Prospector +220043 : Omni-Ubiquity Net +220044 : Floral Zither +220045 : Shiki Koshou +220046 : Ubiquity Net +220047 : Launch Tube +220048 : Lumenstone Adjuvant +220049 : Bokuso Box +220050 : +221001 : Instructions: Anemoculus Resonance Stone +221002 : Instructions: Geoculus Resonance Stone +221003 : Diagram: Geo Treasure Compass +221004 : Diagram: Wind Catcher +221005 : Instructions: Portable Waypoint +221006 : Diagram: Adepti Seeker's Stove +221007 : Instructions: Condensed Resin +221008 : Diagram: NRE (Menu 30) +221009 : Diagram: Anemo Treasure Compass +221010 : Memory of the Entombed City +221011 : Memory of the Frostbearing Tree +221012 : Diagram: Dragonspine Spear +221013 : Saimon Heirloom Blade Diagram +221014 : Diagram: Katsuragikiri Nagamasa +221015 : Diagram: Kitain Cross Spear +221016 : Diagram: Hamayumi +221017 : Diagram: Warming Bottle +221018 : Mask of Memories +221032 : Instructions: Electroculus Resonance Stone +221034 : Diagram: Electro Treasure Compass +221035 : Formula: Fruit Paste Bait +221036 : Formula: Redrot Bait +221037 : Formula: False Worm Bait +221038 : Formula: Fake Fly Bait +222001 : Silken Print +223001 : The Mountain Clouds Let Down Golden Rain +223002 : The Silver Night is Full of Stars +223003 : The Gloom Paints the Cold Blooms +223004 : Fireworks Dance Amidst a Snowy Sky +223005 : Golden Calendula Swirl +223006 : Kindled Trees by the Moonlit Window +223007 : Mischievous Villosas +223008 : Sparkly Shiny Dodoco! +223009 : Fame and Fortune For a Season +223010 : Unyielding Spirit +223011 : Festival Spotlight +223012 : Wanmin Feast +340000 : Summertime Sparkle +340001 : Sea Breeze Dandelion +340002 : Orchid's Evening Gown +340003 : Opulent Splendor +340006 : Gunnhildr's Legacy +340007 : 100% Outrider +340008 : Pact of Stars and Moon +340009 : To the Church's Free Spirit +350001 : Adventurer Camp +350002 : Frontier Life +350003 : Rocks & Plants +350004 : Plain Liyue Bedroom +350005 : Corner of the Teahouse +350006 : Suburbia Lighting +350007 : Table & Chairs +350008 : Busy Kitchen +350009 : Tea Talk +350010 : Book Lover's Study +350011 : Fully Furnished Mondstadt Bedroom +350012 : Meeting Room of the "Strategic Six" +350013 : Wine o' Clock +350014 : Merchant's Working Lunch +350015 : Parlor Cordiality +350016 : Well-Equipped Study +350017 : Hermit's Hut +350018 : Hamlet House +350019 : Harvest Season Stall +350020 : Fruit & Veg Market +350021 : Training Ground +350022 : Arms Factory +350023 : Cargo Transfer Station +350024 : Festival Market +350025 : Thoroughfare Entrance: Evil Banisher +350026 : Ever-Popular Eatery +350027 : Rural Water Source +350028 : Lone and Cautious Adventurer +350029 : Climate Crossover +350030 : Dialogue Twixt Ancient Tree and Rock +350033 : Amidst Poetic Pondering +350034 : Amidst Whispering Winds +350035 : Feiyun Study Room +350036 : Cloudy Haze Dream-Court +350037 : Secret Research Lab +350038 : Cottage Kitchen +350039 : Weapon Forging Station +350040 : Idyllic Town +350041 : Bird and Blossom Park +350042 : Gathering of Gourmets +350043 : Glittering Street +350044 : Qingce Cloud Residence +350045 : Of Hunting and Dancing +350046 : Iter Ad Astra Abyssosque +350047 : Dawn Orchard +350048 : Court of the Upright +350049 : Wakeful Spring +350050 : Rural Concealment +350051 : Ancient Branch Shrine +350052 : Military Exercise Grounds +350053 : Jade Wilds +350054 : Summer Night's Recollection +350055 : Sakura-Hued Street +350056 : Eternal Domain of Fleeting Dreams +350057 : A Thousand Swings +350058 : Scholarly Trove +350059 : Of Maple and Tea Scents Entwined +380101 : Timber Wall With Jade Eaves +380102 : Dark Wood Arch Wall +380103 : Maple Wood Vaulted Wall +380201 : Traditional Cedar Flooring +380202 : Colorful Checkered Tile +380203 : Brown Maple Flooring +380301 : Checkered Cedar Ceiling +380302 : Dark Checkered Ceiling +380303 : Maple Wood Square Ceiling +380401 : Two-Tier Candle Chandelier +380402 : Eight-Sided Lantern: Lucky Day +380403 : Six-Sided Lantern: Harmony in Friendship +380404 : "Night of the Party Pumpkins" +380405 : Embroidered Lantern: Lofty Grandeur +380406 : Tasseled Lantern: Deck the Streets +380407 : Teahouse Candlestand: Scentless Flame +380408 : Teahouse Lamp: Light Concealed +380409 : Maple Wood Lamp: Light Fragrance +380410 : Maple Wood Floor Lamp: Clarity +380411 : Court Lantern: Lingering Majesty +380412 : Court Lantern: Red Moon of Yore +380413 : Court Lantern: Thundering Heart +380414 : Maple Wood Chandelier: Illume +380415 : Blooming Candle: Pure as a Lotus +380416 : Rainbow Lights: At Dawn We Celebrate +381101 : Northern Birch Folding Counter +381102 : Open-Top Fir Shelf +381103 : Fir Case Shelf Combination +381104 : Classic Fir Cabinet +381105 : Large Birch Wardrobe +381106 : Gold-Lined Sandbearer Wardrobe +381201 : Two-Tier Library Bookshelf +381202 : Exquisite Cuihua Bookshelf +381203 : Economy Cuihua Bookshelf +381204 : "Lost Between the Pages of a Book" +381205 : "Archivist's Treasure Trove" +381206 : Red Cedar Scroll Shelf +381207 : Red Cedar Curio Stand +381208 : Shopkeeper's Cedar Shelf +381209 : Maple Wood Bookcase: Inkheart +381210 : Maple Wood Bookcase: Trove of a Thousand Tomes +381301 : Sturdy Library Table +381302 : Favonius Office Table +381303 : Favonius Conference Table +381304 : Wide Stone Stove +381305 : Portable Stove +381306 : Long Table With Tablecloth +381307 : Multi-Seat Round Pine Table +381308 : Intricately Carved Calligraphy Table +381309 : Square Pine Tea Table +381310 : Red Cedar Round Table +381311 : Sturdy Birch Vanity +381313 : Common Cast Iron Stove +381314 : Yumemiru "Cold and Warmth" Kotatsu +381315 : "Sekijou" Aralia Tea Table +381316 : Teahouse Long Table: Seamless Seating +381401 : Breeze-Blessed Bed +381402 : Cloudy Haze Bed +381403 : Yumemiru "Sakura's Rest" Bed +381501 : Pine Reception Counter +381502 : Teahouse Counter: "Toshimaru" +382101 : Soft Lounge Sofa +382102 : "Clear Blue Afternoon" +382103 : "Unwavering Determination" +382104 : Pine Dining Chair +382105 : Pine-Backed Tea Chair +382106 : Red Pine Wood Round Stool +382108 : Teahouse Round Stool: Pain Point Reduction +382201 : Northern Stone Hearth +382202 : Pine Folding Screen: Billowing Sails +382203 : Hardwood Screen: Morning Mist in Jueyun +382204 : Birch Double Drawer Nightstand +382205 : Gold-Lined Sandbearer Nightstand +382206 : Silk Curtains: Fetching the Sanguine Sky +382207 : Floral Screen: Jade and Gold +382208 : Thundering Heavens Drum +382209 : Lantern-Lit Stage: Crescendo +382210 : Teahouse Cushion: Night-Woven +382211 : Maple Wood Ritual Drum: Festive Music +382212 : Maple Wood Ritual Drum: A Great Din +382213 : Teahouse Folding Screen: Hidden Heart of Gold +382214 : Ancestral Sword Rack: Four Core Principles +382215 : Hatamoto Armor: Eijin Genkou +382216 : Yumemiru "Jukaku" Folding Screen +382218 : Festive Fragrance: Goods Piled High +382219 : Festive Fragrance: Of Gold and Jade +382301 : Mondstadt Rug: Crimson Ardor +382302 : Mondstadt Rug: Tireless Search +382303 : Tavern Rug: Home Away From Home +382304 : Entrance Rug: A Warm Welcome +383101 : Trusty Portable Lamp +383102 : Liuli Pavilion Sandbearer Floor Lamp +383103 : Tianyuan Lantern: Fragrant Brilliance +383104 : Seashell Table Lamp +383201 : Flower Arrangement: Baby Blue Tranquility +383202 : Potted Plant: Crystalline Breeze +383203 : Flower Arrangement: Sprawling Daybreak +383204 : Potted Flower: Fragrant Facade +383205 : Potted Plant: Petite Perrenial +383206 : Cast in Clay +383207 : The Essential Vase +383208 : A Favor Returned +383301 : Classical Lyre: Tenor of the Wind +383302 : Neat Stack of Books +383303 : "Scholar's Weariness" +383304 : "Etiquette of Correspondence" +383305 : Exquisite Hourglass Ornament +383306 : Alchemic Device: Between Fire and Water +383307 : Alchemic Component: Burden of Dust +383308 : Calligraphy Set: Assiduous Calligraphy +383309 : Golden Triple-Arm Candelabrum +383310 : Glazed Porcelain Tea Set: "Embracing Truth" +383312 : "Tea Wisp-Clouded White Couch" +383313 : Teahouse Vessel: Scent-Sealer +383314 : Calligraphy Set: Proper Penmanship +383315 : Evil-Slaying Bows +383316 : Spiritchaser Screen +383317 : "Divine Nose:" Kitsu-Kitsu Daruma +383318 : "True Cookery": Nuki-Nuki Daruma +384101 : Landscape Painting: Country Home +384102 : Landscape Painting: Distant Clouds +384103 : Landscape Painting: Nameless Precipice +384104 : Fine Brushwork: Peaks of Minlin +384105 : Fine Brushwork: Bowl of Blossoms +384106 : Fine Brushwork: Mountains Rising From the Mist +384107 : Painted Vision: Of Mountains and Skies Distant +384108 : Painted Vision: Stunning Waters +384109 : Replica Mural: Lone Peak in a Sea of Fog +384110 : Replica Mural: Ancient Ritual in a Sea of Fog +384201 : Wooden Restaurant Signboard +384202 : Bright Vase-Shaped Sconce +384203 : Well-Worn Buckler +384204 : Well-Worn Shield +384205 : Well-Worn Sword +384206 : Rally Banner +384207 : Pure Spirit Banner +384208 : Favonius Coat of Arms +384209 : Mounted Record Board +384210 : Mounted Noticeboard +384211 : Embroidered Curtains +384501 : Lingering Moment +390101 : Straw Hut +390102 : Straw Depot +390103 : Liyue House: Solitary Retreat +390104 : Liyue House: Of Timber and Stone +390105 : Liyue Pitstop: Tea Fragrance on the Old Road +390106 : Liyue House: Moon-Crested Eaves +390107 : Liyue House: Amity Abounds +390108 : Liyue Shop: Citywide Favorite +390109 : Wing House: Dawn & Dusk +390110 : Pavilion: Stargazer's Shelter +390111 : "Hyoutei" Stacked Aralia Wood Boxes +390112 : Aralia "Bangaku" Shelf +390113 : Aralia "Fusen" Cupboard +390114 : Yumemiru "Dewcover" Wardrobe +390115 : Yumemiru "Decorum" Kimono Rack +390201 : Multi-Arched Mondstadt Building +390202 : Mondstadt House With Overhanging Attic +390203 : Warm and Dry Mondstadt Apartment +390204 : Old Wind-Resistant Mondstadt House +390205 : Country Home With Tall Attic +390206 : Classic Country Home +390207 : Pocket-Sized Pine Cabin +390208 : Liyue House: Time Waits for No One +390301 : Bustling Sundry Stand +390302 : Profitable Fruit Stand +390303 : Real Deal Fruit Stand +390304 : Open-Air Workshop +390305 : Bountiful Harvest Fruit Cart +390306 : "Traveling Merchant North of the Stone Gate" +390307 : Roll-Roofed Fruit and Vegetable Cart +390308 : "Four-Quadrant Cooking Cauldron" +390309 : Fruit and Veggie Stall: Harvest Bounties +390310 : Otogi Wood Ramen Stand +390401 : Hilichurl Outpost Hut +390402 : Hilichurl Chieftain Hall +390501 : "Clouds East of Bishui" +390502 : Straw Shed +390503 : Lightning Protective Tent +390504 : Simple Single-Person Tent +390505 : Otogi Wood Rice Cake Soup Stand +390507 : Otogi Wood Granary Cart +390508 : Umbrella Shop: Drapes of Differing Dreams +390509 : Fruit and Veggie Stall: Good Honest Flavor +390510 : Festival "Teiban" Store +390511 : Festival "Kiban" Store +390512 : "Kouki" Aralia Mask Rack +390513 : Fine Stall: Splash of Color +390514 : Rainbow Stall: Ultramarine +390515 : Rainbow Stall: Ruby Red +390516 : Festival Booth - "Strange Wonders" +390517 : Festival Booth - "Literary Talent" +390601 : Ritual Shrine +390602 : Cleansing Shrine +390603 : Inazuman Mansion: As One +390604 : Inazuman Store: Numberless Gems +390605 : Inazuman Home: The Work of Generations +390606 : Inazuman Home: Easy Adaptation +390607 : Inazuman Workshop: Exhaustive Regularity +390608 : Inazuman Home: Routine Dimensions +390609 : Inazuman Bamboo-Roofed Home: The Long Peace +390610 : Inazuman Bamboo-Roofed Home: Wild Heart +390611 : Inazuman Workshop: Multipurpose +390612 : Inazuman Home: Clanking Metal +390613 : Inazuman Workshop: Sweetness Sought +390614 : Inazuman Home: Irreplaceable Foresight +390615 : Inazuman Official Residence: Forcefulness +390616 : Inazuman Official Residence: Strict Adherence +390617 : Official Residence Corridor: Power's Reach +390618 : Camp Watchtower: Viewport +390619 : Camp Tent: Timely Tactics +390620 : Camp Dwelling: Shoring Up +390621 : Camp Gate: Fealty +390623 : Fortune Slip Stand: Omen-Reader +390624 : Shrine Hall: Gentle Wishes +390625 : Shrine Annex: Pleased to Serve +390626 : Estate Reception: Prim and Proper +390627 : Estate Storehouse: We Have Reserves +390628 : Inazuman Home: Watatsumi Reminiscence +390629 : Inazuman Home: House of Coral +390630 : Inazuman Home: Stormhouse +391101 : Bird and Blossom Design Fountain +391102 : Hilichurl Spiral Watchtower +391103 : Hilichurl Straw Hut +391104 : "Ballad-Spinning Windwheel" +391107 : Temporary Work Quarters +391109 : "Pure Gorgeous Summer" +391110 : Scarlet Torii Gate: Door of Silence +391112 : Scarlet Torii Gate: Way of Restoration +391113 : Estate Gate: Windy Doors +391114 : Estate Corridor: Onward With Ease +391115 : Estate Courtyard Corner: Measured Harmony +391116 : Whitestone Hot Spring: Diffusing Warmth +391117 : Of Fields Green: Clear Spring Fountain +391118 : Sub-Space Cabochon: In Soaring Flight +391201 : Adeptus Gate +391202 : Birch Main Courtyard Gate +391203 : Carved Courtyard Fence Ending +391204 : Carved Courtyard Fence +391205 : Scenic Corridor: Sylvan Stroll +391206 : Courtyard Wall: Spring and Autumn Splendor +391207 : Wall Corner: Fragrant Nook +391208 : Courtyard Wall: All in a Row +391209 : Courtyard Wall: Peace Across +391210 : Main Entrance: Gateway to the Clouds +391211 : Perimeter Wall: Scenic Archway +391212 : Veranda Corner: Pavilion's Watch +391213 : Key Gateway: Beneath the Clouds +391214 : Key Fence: Self-Restraint +391215 : Fence Corner: Long Watch +391216 : Otogi "Kintake" Courtyard Gate +391217 : Otogi "Kintake" Fence +391218 : Encampment Fence: Jagged Teeth +391219 : Encampment Fence: Decisive Judgment +391220 : Encampment Fence: Honing Goad +391221 : Shrine Corridor: Sakura-Dusted Path +391222 : Shrine Corridor: Vermilion Gaze +391223 : Estate Courtyard Wall: Stoneguard +391224 : Estate Courtyard Wall: Harmonious Corner +391225 : Estate Courtyard Wall: Hidden Boundary +391226 : Estate Wall Corner: Old City Palisade +391227 : Hot Spring Folding Screen: Moderation +391228 : Hot Spring Outer Wall: No Vaulting +391229 : Hot Spring Wall: Well-Grounded +391230 : Hot Spring Foyer: Shelter from the Cold +392107 : Foundations of Stone: Fortunate Times +393101 : Messy Pile of Fir Crates +393102 : Neat Stack of Fir Kegs +393103 : Heavy Hay Bale +393104 : Wine Jar With Bamboo Casing: Spirits Awaiting Moonrise +393105 : Toy Stand: Dazzling Delights +393106 : Umbrella Shop: Kaleidoscope of Parasol Colors +393107 : Storage Sack: Buzz-Off Bag +393108 : Fruit Seller's Caution +393109 : Fruit Seller's Toil +393110 : Hardened Glazed Vase +393111 : Hilichurl Archery Target +393112 : Hilichurl Horned Pot +393113 : Deadwood Road Sign +393114 : "The Adventurer's Burdens" +393115 : Sturdy Wooden Barrel +393116 : Tall Wooden Pole +393117 : Wood Bundle +393118 : Rainproof Fir Cargo Container +393119 : Stone Cup-Shaped Pool +393120 : "Feather-Light Praise" +393121 : "A Bloatty Floatty's Dream of the Sky" +393122 : "A Guide in the Summer Woods" +393123 : Training Ground Support Stakes +393124 : "A Messenger in the Summer Woods" +393125 : "Courtyard Cleansing Pool" +393126 : Headquarters Alarm: Sound of Thunder +393127 : War Drum: Line-Breaking Reverb +393128 : Simple Otogi Workshop +393129 : Otogi "Rikuyou" Wooden Barrel +393130 : Otogi "Tanin" Wood Barrel +393131 : "Kokutan" Thick-Walled Clay Water Tank +393132 : Replica Ancient Otogi Keg +393133 : Replica Ancient Otogi Crate +393134 : Mountain of Festive Gifts +393137 : Heavy-Duty Restaurant Stove +393138 : Serene Flames +393201 : Potted Plant: Verdant Vastness +393202 : Water-Retaining Flower Beds +393203 : Soil-Carrying Wooden Barrel +393204 : "Pines Awaiting the Twilight" +393301 : Fir Shelves +393302 : Fir Weapon Rack +393303 : Hardwood Weapon Rack +393304 : Simple Cargo Cart +393305 : Sturdy Stone Well +393306 : Farmer's Scarecrow +393307 : Old Well +393308 : Roofed Well: For Purity +393309 : Stone Lion Statue: The Warding +393310 : Stone Lion Statue: The Knowing +393311 : Countryside Tea Stand +393312 : "The Adventurer's Treasures" +393313 : "Witch's Chorus" +393315 : Yumemiru "Saikyo" Fortune Slip Hanger +393316 : Narukami's Banner +393317 : Camp Bow-Rack: Fletching +393318 : Camp Spear-Rack: Point Break +393319 : Camp Bonfire: Glorious Clarity +393320 : Camp Barricade: Taking Sides +393321 : Sky Kitsune Statue: Hakushin's Legacy +393322 : High-Flying Fish Flag +393323 : Maple Wood Tanuki +393324 : Maple Wood White Kitsune +393325 : Red-Iron Coral +393326 : Glowstone Parasol +393327 : Shrine Statue: "Seirai Ward" +393328 : Village Well: Underground Spring +393329 : Yumemiru "Seiken" Offering Box +393330 : Ancestral Sword Rack: Iron Sharpens Iron +393331 : The Bamboo's Call +393332 : "Henji" Aralia Noticeboard +393333 : Village Well: Subterranean Secrets +393337 : Rainbow Lights: Lovely Night View +393338 : Rainbow Cloud Flying Satin Pole +393339 : Gold-Inscribed Evil-Cleansing Banner +393343 : Tanuki Hugs Photo Board +393344 : "Kitsune Guuji" Exclusive Painted Flag Banner +393401 : Wrought Iron Carved Street Light +393402 : Pine Street Light +393403 : Evil-Repelling Lantern: All-Around Lighting +393404 : Four Corners Lantern: Amity From Afar +393405 : Shadow Lamp: Painted Shadow +393406 : Stone Lantern: Fudoumyou's Light +393407 : "Three Reaches Bright" +393408 : Whitestone "Meichuu" Standing Lamp +393409 : Otogi "Meichuu" Standing Lamp +393410 : Five-Lantern Festival Gate +393411 : Yumemiru "Kuukai" Street Lamp +393412 : Yumemiru "Juunen" Street Lamp +393413 : White Fish Tallow Candle: Evenlight +393414 : Otogi Countryside Street Lamp +393415 : Simple Otogi Street Lamp +393416 : Aralia "Renzou" Street Lamp +393601 : Pool of Sapphire Grace +394101 : Weathered Bamboo Fence +394102 : Sturdy Pine Fence +394103 : Wooden Hilichurl Fence +394104 : Hilichurl Totem Fence +394105 : Lush Grapevine +394106 : Newly Grown Grapevines +394107 : Simple Wooden Fence +394108 : Half-Constructed Fence +394109 : The Fruit Farmer's Thrift +394110 : "Kyuukou" Otogi Flower Terrace +394111 : "Sanzai" Otogi Flower Terrace +394201 : Smooth Wooden Bench +394202 : Smooth Stone Bench +394203 : Googol Chair +394204 : Square Yumemiru Stool +394205 : Otogi "Rakushi" Square Stool +394301 : Two-Story Hilichurl Sentry Tower +394302 : Doorless Pine Cupboard +394303 : Heavy Fir Forging Table +394304 : Long Pine Table +394305 : Large Stone Mill +394306 : Alchemist's Crafting Bench +394307 : Two-Tier Vendor's Booth: Rising Fortunes +394308 : Bamboo Outdoor Tea Table +394309 : Wooden Outdoor Tea Table +394310 : "Summer Forest Banquet" +394311 : Googol Table +394312 : Long Yumemiru Table +394313 : Otogi "Rakushi" Square Table +394401 : Wine Shop Display Counter: To Your Heart's Content +394402 : Crude Double-Decker Pallet +394403 : "Cradle of Flowers" +394404 : "The Blue Ocean's Treasure" +394501 : Foundations of Stone: Path of Cultivation +394502 : Foundations of Stone: Timely Arrival +394503 : Foundations of Stone: Double-Time +394504 : Of Fields Green: Cookie Road + +// Monsters +20010101 : Dendro Slime +20010201 : Large Dendro Slime +20010202 : +20010301 : Anemo Slime +20010302 : Anemo Slime (Mechanicus) +20010401 : Large Anemo Slime +20010402 : Large Anemo Slime (Mechanicus) +20010403 : +20010501 : Electro Slime +20010502 : Electro Slime (Mechanicus) +20010601 : Large Electro Slime +20010602 : Large Electro Slime (Mechanicus) +20010604 : +20010701 : Mutant Electro Slime +20010702 : +20010703 : Mutant Electro Slime (Mechanicus) +20010801 : Cryo Slime +20010802 : Cryo Slime - Dragonspine Event +20010803 : Cryo Slime (Mechanicus) +20010901 : Large Cryo Slime +20010902 : Large Cryo Slime - Snowy Mountain Event +20010903 : Large Cryo Slime (Mechanicus) +20010904 : +20011001 : Hydro Slime +20011002 : Hydro Slime (Mechanicus) +20011101 : Large Hydro Slime +20011102 : Large Hydro Slime (Mechanicus) +20011103 : +20011201 : Pyro Slime +20011202 : Pyro Slime +20011203 : Pyro Slime (Mechanicus) +20011301 : Large Pyro Slime +20011302 : Large Pyro Slime (Mechanicus) +20011304 : +20011401 : Geo Slime +20011402 : Geo Slime (Mechanicus) +20011501 : Large Geo Slime +20011502 : +20011503 : Large Geo Slime (Mechanicus) +20011601 : Hydro Hypostasis Summon: Split (L) +20011701 : Hydro Hypostasis Summon: Split (S) +20011801 : Hydro Hypostasis Summon: Self-Destruct +20011901 : Hydro Hypostasis Summon: Heal +20020101 : Eye of the Storm +20040101 : Electro Hypostasis - Aleph +20040102 : (Event) Electro Hypostasis - Aleph +20040201 : Anemo Hypostasis - Beth +20040202 : (Event) Anemo Hypostasis - Beth +20040301 : Geo Hypostasis: Gimel +20040302 : (Event) Geo Hypostasis - Gimel +20040401 : Hydro Hypostasis +20040501 : Cryo Hypostasis - Daleth +20040601 : Pyro Hypostasis: Ayin +20050101 : Oceanid +20050102 : Oceanid (Main Body) +20050201 : Oceanid Boar +20050202 : Oceanid Boar (Enhanced) +20050203 : +20050301 : Oceanid Crane +20050302 : +20050401 : Oceanid Crab +20050402 : Oceanid Crab (Enhanced) +20050403 : +20050501 : Oceanid Finch +20050502 : +20050601 : Oceanid Mallard +20050602 : Oceanid Mallard (Landwalker Version) +20050603 : +20050701 : Oceanid Ferret +20050702 : Oceanid Ferret (Enhanced) +20050703 : +20050801 : Oceanid Frog +20050802 : +20050901 : Oceanid Raptor +20060101 : Hydro Specter +20060201 : Geo Specter +20060301 : Anemo Specter +20060401 : null +20060501 : null +20060601 : null +20070101 : Thunder Manifestation +21010101 : Hilichurl +21010102 : Hilichurl (Mechanicus) +21010201 : Hilichurl Fighter +21010301 : Wooden Shield Hilichurl Guard +21010302 : Wooden Shield Hilichurl Guard (Mechanicus) +21010401 : Hilichurl Shooter +21010402 : Test_Varied Hilichurl Shooter +21010501 : Pyro Hilichurl Shooter +21010502 : Test_Varied Pyro Hilichurl Shooter +21010601 : Hilichurl Grenadier +21010603 : +21010701 : Hilichurl Berserker +21010702 : Hilichurl Berserker (Mechanicus) +21010901 : Cryo Hilichurl Shooter +21010902 : Test_Varied Cryo Hilichurl Shooter +21011001 : Electro Hilichurl Shooter +21011002 : Test_Varied Electro Hilichurl Shooter +21011201 : Rock Shield Hilichurl Guard +21011202 : Rock Shield Hilichurl Guard (Mechanicus) +21011301 : Cryo Hilichurl Grenadier +21011302 : Cryo Hilichurl Grenadier - Enhanced Attack +21011401 : Ice Shield Hilichurl Guard +21011402 : Ice Shield Hilichurl Guard (Mechanicus) +21011403 : Ice Shield Hilichurl Guard: Dragonspine Event +21011501 : Unusual Unarmed Hilichurl +21011601 : Electro Hilichurl Grenadier +21011602 : Electro Hilichurl Grenadier - Enhanced Attack +21020101 : Wooden Shieldwall Mitachurl +21020102 : Wooden Shieldwall Mitachurl (Mechanicus) +21020201 : Blazing Axe Mitachurl +21020202 : +21020203 : Blazing Axe Mitachurl (Mechanicus) +21020301 : Rock Shieldwall Mitachurl +21020302 : Rock Shieldwall Mitachurl (Mechanicus) +21020401 : Frostarm Lawachurl +21020402 : Frostarm Lawachurl (Mechanicus) +21020501 : Stonehide Lawachurl +21020502 : Stonehide Lawachurl (Mechanicus) +21020601 : Ice Shieldwall Mitachurl +21020602 : Ice Shieldwall Mitachurl (Mechanicus) +21020701 : Crackling Axe Mitachurl +21020702 : Crackling Axe Mitachurl (Mechanicus) +21020703 : Crackling Axe Mitachurl - Enhanced Attack +21020801 : Thunderhelm Lawachurl +21020802 : Thunderhelm Lawachurl (Mechanicus) +21030101 : Hydro Samachurl +21030102 : Hydro Samachurl (Mechanicus) +21030103 : Test_Movement Healing Hydro Samachurl +21030201 : Dendro Samachurl +21030202 : Dendro Samachurl (Mechanicus) +21030203 : +21030301 : Anemo Samachurl +21030302 : Anemo Samachurl (Mechanicus) +21030303 : Test_Wind Current Enhanced Anemo Samachurl +21030304 : +21030401 : Geo Samachurl +21030402 : +21030403 : Geo Samachurl (Mechanicus) +21030501 : Cryo Samachurl +21030502 : Cryo Samachurl (Mechanicus) +21030601 : Electro Samachurl +21030602 : Electro Samachurl (Mechanicus) +21030603 : Electro Samachurl - Enhanced Support +22010101 : Pyro Abyss Mage +22010102 : Test_Shield-Enhanced Pyro Abyss Mage +22010103 : Test_Teleport-Enhanced Pyro Abyss Mage +22010104 : Test_Attacking-Enhanced Pyro Abyss Mage +22010105 : Pyro Abyss Mage (Mechanicus) +22010201 : Cryo Abyss Mage +22010202 : Test_Shield-Enhanced Cryo Abyss Mage +22010203 : Test_Teleport-Enhanced Cryo Abyss Mage +22010204 : Test_Attacking-Enhanced Cryo Abyss Mage +22010205 : Cryo Abyss Mage (Mechanicus) +22010301 : Hydro Abyss Mage +22010302 : Test_Shield-Enhanced Hydro Abyss Mage +22010303 : Test_Teleport-Enhanced Hydro Abyss Mage +22010304 : Test_Attacking-Enhanced Hydro Abyss Mage +22010305 : Hydro Abyss Mage (Mechanicus) +22010401 : Electro Abyss Mage +22010402 : Electro Abyss Mage (Mechanicus) +22010403 : Electro Abyss Mage - Enhanced Shield +22010404 : Electro Abyss Mage - Enhanced Attack +22020101 : Abyss Herald: Wicked Torrents (Disappearing) +22020102 : Abyss Herald: Wicked Torrents (Permanent) +22030101 : Abyss Lector: Violet Lightning (Disappearing) +22030102 : Abyss Lector: Violet Lightning (Permanent) +22030201 : null +22030202 : null +22040101 : Rockfond Rifthound Whelp +22040201 : Thundercraven Rifthound Whelp +22050101 : Rockfond Rifthound +22050201 : Thundercraven Rifthound +22060101 : Golden Wolflord +22070101 : null +22070102 : null +22070201 : null +22070202 : null +22070301 : null +22070302 : null +22080101 : null +23010101 : +23010201 : +23010301 : +23010401 : +23010501 : +23010601 : +23020101 : Fatui Agent +23020102 : +23030101 : Fatui Electro Cicin Mage +23030102 : +23040101 : Fatui Cryo Cicin Mage +23040102 : Fatui Cryo Cicin Mage - Enhanced Attack +23050101 : Fatui Mirror Maiden +24010101 : Ruin Guard +24010102 : Ruin Guard (Mechanicus) +24010108 : +24010109 : +24010201 : Ruin Hunter +24010202 : Ruin Hunter (Mechanicus) +24010301 : Ruin Grader +24010302 : Ruin Grader (Mechanicus) +24010303 : Ruin Grader (Mining Version) +24010401 : null +24020101 : Ruin Cruiser +24020102 : Ruin Cruiser (Weakened) +24020103 : Ruin Cruiser (Enhanced) +24020201 : Ruin Destroyer +24020202 : Ruin Destroyer (Weakened) +24020203 : Ruin Destroyer (Enhanced) +24020301 : Ruin Defender +24020302 : Ruin Defender (Weakened) +24020303 : Ruin Defender (Enhanced) +24020401 : Ruin Scout +24020402 : Ruin Scout (Weakened) +24020403 : Ruin Scout (Enhanced) +24021101 : Perpetual Mechanical Array +24021102 : Perpetual Mechanical Array (Inazuma Event-Only) +25010101 : Liuliu +25010102 : Mystery Man +25010103 : +25010104 : +25010105 : null +25010106 : null +25010201 : Treasure Hoarder Scout +25010203 : +25010204 : +25010205 : +25010206 : +25010207 : +25010208 : +25010301 : +25010302 : +25010401 : +25010501 : +25010601 : +25010701 : +25020101 : Raptor +25020102 : +25020201 : Treasure Hoarder Marksman +25020204 : +25030101 : Carmen +25030102 : null +25030103 : null +25030201 : Treasure Hoarder Gravedigger +25030301 : Treasure Hoarder Oarsman +25040101 : Boss +25040102 : null +25040103 : null +25050101 : Millelith Soldier +25050201 : Millelith Sergeant +25050301 : Shogunate Infantry +25050401 : Shogunate Infantry Captain +25050402 : +25050501 : Sangonomiya Cohort +25050502 : +25060101 : +25060102 : +25070101 : +25070201 : null +25070202 : null +25080101 : Ronin +25080201 : Ronin: Sanzoku +25080202 : null +25080301 : Ronin: Anbu +25080401 : Shogunate Samurai +25080402 : null +25090101 : Marionette General +25090102 : Marionette General: Wind Bunshin +25090103 : Marionette General: Ice Bunshin +25090104 : Marionette General: Masked Bunshin +25090201 : Marionette General: Wind Bunshin (With Icon) +25090301 : Marionette General: Ice Bunshin (With Icon) +25090401 : Marionette General: Masked Bunshin (With Icon) +25100101 : Electro Kairagi +25100102 : null +25100201 : Pyro Kairagi +25100301 : Thunderwraith Kairagi +25100302 : null +25100401 : Flameghoul Kairagi +26010101 : Cryo Whopperflower +26010102 : Cryo Whopperflower (Dragonspine Event) +26010103 : Giant Cryo Whopperflower (2.3 Dragonspine Event) +26010104 : +26010201 : Pyro Whopperflower +26010301 : Electro Whopperflower +26020101 : Cryo Regisvine +26020102 : Cryo Regisvine (Dragonspine Event) +26020201 : Pyro Regisvine +26030101 : Geovishap Hatchling +26040101 : Geovishap: Hydro +26040102 : Geovishap: Pyro +26040103 : Geovishap: Cryo +26040104 : Geovishap: Electro +26040105 : Geovishap: Hydro (Mechanicus) +26050101 : Primo Geovishap: Hydro +26050201 : Primo Geovishap: Pyro +26050301 : Primo Geovishap: Cryo +26050401 : Primo Geovishap: Electro +26050501 : Primo Geovishap (Event) +26050601 : null +26050701 : null +26050702 : null +26050801 : null +26050802 : null +26050901 : null +26051001 : null +26051101 : null +26060101 : Electro Cicin +26060201 : Hydro Cicin +26060301 : Cryo Cicin +26080101 : null +26090101 : null +28010101 : Golden Crab +28010102 : Sun Crab +28010103 : Ocean Crab +28010104 : General Crab +28010105 : Pale Red Crab +28010106 : Crab +28010201 : Blue Horned Lizard +28010202 : Red Horned Lizard +28010203 : Green Horned Lizard +28010204 : Sunset Loach +28010205 : Golden Loach +28010206 : Sunny Loach +28010207 : Pith Lizard +28010301 : Frog +28010302 : Mud Frog +28010303 : Blue Frog +28010401 : +28010402 : null +28010403 : +28020101 : Snow Fox +28020102 : Crimson Fox +28020103 : Gifting Snow Fox +28020104 : Super-Gifting Snow Fox +28020105 : null +28020106 : null +28020201 : Squirrel +28020301 : Forest Boar +28020302 : Forest Piglet +28020303 : Snowboar +28020304 : Great Snowboar King +28020305 : Frozen Snowboar +28020306 : null +28020307 : null +28020308 : null +28020309 : null +28020401 : Northland Hound +28020402 : Forest-Patrol Hound +28020403 : Shiba +28020404 : Black-Back Hound +28020405 : Shiba +28020406 : Northland Hound (Dog Event Special, Extended LoS Range) +28020407 : null +28020408 : null +28020409 : null +28020410 : null +28020501 : Sapphire +28020502 : Jade-Eyed Cat +28020503 : Gray Snow Cat +28020504 : Northland Cat +28020505 : Tiger-Striped Cat +28020506 : Sheriff Cat +28020507 : Black Cat +28020508 : Sapphire +28020509 : Gray Snow Cat (Dog Event Special, Extended LoS Range) +28020510 : null +28020511 : null +28020512 : null +28020513 : null +28020601 : Snow Weasel +28020602 : Red-Tailed Weasel +28020603 : Boot Weasel +28020604 : Masked Weasel +28020605 : null +28020701 : Kitsune +28020702 : Kitsune (Dog Event Special, Extended LoS Range) +28020801 : Bake-Danuki +28020802 : null +28020803 : null +28020901 : Samurai Dog (Patrol) +28020902 : Samurai Dog (Combat) +28020903 : null +28030101 : Azure Crane +28030102 : Violet Ibis +28030201 : Brownwing Falcon +28030202 : Umbertail Falcon +28030203 : Lapis Glede +28030204 : Silkwhite Falcon +28030301 : White Pigeon +28030302 : Brightcrown Pigeon +28030303 : Graywing Pigeon +28030304 : Crimsonflank Pigeon +28030305 : Black King Pigeon +28030306 : Duck +28030307 : White Pigeon +28030308 : Brightcrown Pigeon +28030309 : Graywing Pigeon +28030310 : Crimsonflank Pigeon +28030311 : Black King Pigeon +28030401 : Crimson Finch +28030402 : Golden Finch +28030403 : Snow Finch +28030404 : Emerald Finch +28030405 : null +28030406 : null +28030407 : null +28030408 : null +28030409 : null +28030501 : Scarletbeak Duck +28030502 : Emerald Duck +28030503 : Golden Duck +28030504 : null +28040101 : Black-Back Bass +28040102 : Blue-Fin Bass +28040103 : Golden Bass +28040104 : Black-Back Bass +28040105 : Black-Back Bass +28040106 : Blue-Fin Bass +28040107 : Golden Bass +28040108 : null +28040201 : Medaka +28040202 : Glaze Medaka +28040203 : Sweet-Flower Medaka +28040204 : Aizen Medaka +28040205 : Dawncatcher +28040206 : Crystalfish +28040301 : Lunged Stickleback +28040302 : Betta +28040303 : Venomspine Fish +28040304 : Akai Maou +28040305 : Snowstrider +28040401 : Golden Koi +28040402 : Rusty Koi +28040501 : Brown Shirakodai +28040502 : Purple Shirakodai +28040503 : Tea-Colored Shirakodai +28040504 : Abiding Angelfish +28040505 : Raimei Angelfish +28040506 : Moonfin +28040601 : Pufferfish +28040602 : Bitter Pufferfish +28040701 : null +28040702 : null +28040703 : null +28050101 : Anemo Crystalfly +28050102 : Geo Crystalfly +28050103 : Cryo Crystalfly +28050104 : Electro Crystalfly +28050105 : null +28050201 : Amateur Weasel Thief +28050202 : Hoarder Weasel Thief +28050203 : Golden Weasel Thief +28050204 : null +28050211 : Amateur Weasel Thief +28050212 : Hoarder Weasel Thief +28050213 : Golden Weasel Thief +28050221 : null +28050222 : null +28050223 : null +28050301 : null +28210101 : Domestic Golden Crab +28210102 : Domestic Sun Crab +28210103 : Domestic Ocean Crab +28210104 : Domestic General Crab +28210105 : Domestic Pale Red Crab +28210201 : Domestic Blue Horned Lizard +28210202 : Domestic Red Horned Lizard +28210203 : Domestic Green Horned Lizard +28210204 : Domestic Sunset Loach +28210205 : Domestic Golden Loach +28210206 : Domestic Sunny Loach +28210207 : Domestic Marrow Lizard +28210301 : Domestic Frog +28210302 : Domestic Mud Frog +28210303 : Domestic Blue Frog +28210401 : Domestic Adorned Unagi +28210402 : null +28210403 : Domestic Red-Finned Unagi +28220101 : Domestic Snow Fox +28220102 : Domestic Crimson Fox +28220201 : Domestic Squirrel +28220301 : Domestic Forest Boar +28220303 : Domestic Snowboar +28220401 : Domestic Northland Hound +28220402 : Domestic Forest-Patrol Hound +28220403 : Domestic Shiba +28220404 : Domestic Black-Back Hound +28220501 : Domestic Sapphire +28220502 : Domestic Jade-Eyed Cat +28220503 : Domestic Gray Snow Cat +28220504 : Domestic Northland Cat +28220505 : Domestic Tiger-Striped Cat +28220506 : Domestic Sheriff Cat +28220601 : Domestic Snow Weasel +28220602 : Domestic Red-Tailed Weasel +28220603 : Domestic Boot Weasel +28220605 : null +28220701 : Domestic Kitsune +28220901 : Domestic Samurai Dog +28230101 : Domestic Azure Crane +28230102 : Domestic Violet Ibis +28230301 : Domestic White Pigeon +28230302 : Domestic Brightcrown Pigeon +28230303 : Domestic Graywing Pigeon +28230304 : Domestic Crimsonflank Pigeon +28230305 : Domestic Black King Pigeon +28230306 : Domestic Crow +28230401 : Domestic Crimson Finch +28230402 : Domestic Golden Finch +28230403 : Domestic Snow Finch +28230404 : Domestic Emerald Finch +28240201 : Domestic Medaka +28240202 : Domestic Glaze Medaka +28240203 : Domestic Sweet-Flower Medaka +28240204 : Domestic Aizen Medaka +28240205 : Domestic Dawncatcher +28240206 : Domestic Crystalfish +28240301 : Domestic Lunged Stickleback +28240302 : Domestic Betta +28240303 : Domestic Venomspine Fish +28240304 : Domestic Akai Maou +28240305 : Domestic Snowstrider +28240401 : Domestic Golden Koi +28240402 : Domestic Rusty Koi +28240501 : Domestic Brown Shirakodai +28240502 : Domestic Purple Shirakodai +28240503 : Domestic Tea-Colored Shirakodai +28240504 : Domestic Abiding Angelfish +28240505 : Domestic Raimei Angelfish +28240506 : Domestic Moonfin +28240601 : Domestic Pufferfish +28240602 : Domestic Bitter Pufferfish +28240701 : null +28240702 : null +28250101 : Domestic Anemo Crystalfly +28250102 : Domestic Geo Crystalfly +28250103 : Domestic Cryo Crystalfly +28250104 : Domestic Electro Crystalfly +28250105 : null +28250301 : null +29010101 : Stormterror +29010102 : Stormterror +29010103 : Stormterror +29010104 : Stormterror +29020101 : Boreas, Great Wolf King of the North +29020102 : Andrius, Dominator of Wolves +29030101 : Eleventh of the Fatui Harbingers - Tartaglia +29030102 : Delusion Unleashed - Childe +29030103 : Childe +29030104 : Eleventh of the Fatui Harbingers - Tartaglia +29030105 : Delusion Unleashed - Childe +29030106 : Childe +29040101 : Azhdaha +29040102 : Azhdaha +29040103 : Azhdaha +29040104 : Azhdaha +29040111 : Azhdaha +29050101 : Signora +29050102 : Crimson Witch of Embers +29050103 : Signora +29050104 : Crimson Witch of Embers +29060101 : Raiden Shogun +29060102 : Raiden Ei +29060201 : null +29060202 : null +29060203 : null diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java index ac6593529..036a261b5 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -24,7 +24,7 @@ public class SendMailCommand implements CommandHandler { sender = Grasscutter.getGameServer().getPlayerByUid(7006); } sender.sendMail(new Mail(new Mail.MailContent("Test", "This is a test"), - new ArrayList(){{add(new Mail.MailItem(1062));}}, + new ArrayList(){{add(new Mail.MailItem(23411 ));}}, Instant.now().getEpochSecond() + 4000)); sender.dropMessage("Check your inbox"); diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index 3f8fe70ae..16f321a0e 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -573,15 +573,45 @@ public class GenshinPlayer { this.sendPacket(new PacketPrivateChatNotify(sender.getUid(), this.getUid(), message.toString())); } - public List getMail() { return mail; } + // ---------------------MAIL------------------------ + + public List getAllMail() { return this.mail; } public void sendMail(Mail message) { - this.mail.add(message); message._id = this.mail.size() + 1; this.save(); this.sendPacket(new PacketMailChangeNotify(this, message)); } + + public boolean deleteMail(int mailId) { + Mail message = getMailById(mailId); + + if(message != null) { + this.mail.remove(message); + this.save(); + return true; + } + + return false; + } + + public Mail getMailById(int mailId) { + return this.mail.stream().filter(message -> message._id == mailId).findFirst().orElse(null); + } + + public int getMailIndex(Mail message) { + return this.mail.indexOf(message); + } + + public boolean replaceMailByIndex(int mailId, Mail message) { + if(getMailById(mailId) != null) { + this.mail.set(mailId, message); + return true; + } else { + return false; + } + } public void interactWith(int gadgetEntityId) { GenshinEntity entity = getScene().getEntityById(gadgetEntityId); diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 0eb377eac..1ace4610f 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -55,6 +55,10 @@ public class Mail { this.stateValue = state; } + public int getId() { + return this._id; + } + @Entity public static class MailContent { public String title; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java index 9a1d1294e..7d92f2523 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java @@ -15,7 +15,6 @@ public class HandlerGetAllMailReq extends PacketHandler { @Override public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { - Grasscutter.getLogger().info("Mail Req"); GetAllMailReqOuterClass.GetAllMailReq req = GetAllMailReqOuterClass.GetAllMailReq.parseFrom(payload); session.send(new PacketGetAllMailRsp(session.getPlayer(), req.getIsGiftMail())); } diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java index 2fed31974..59195a4b3 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java @@ -6,7 +6,6 @@ import emu.grasscutter.net.packet.PacketHandler; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetMailItemReqOuterClass; import emu.grasscutter.server.game.GameSession; -import emu.grasscutter.server.packet.send.PacketGetAllMailRsp; import emu.grasscutter.server.packet.send.PacketGetMailItemRsp; @Opcodes(PacketOpcodes.GetMailItemReq) diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index 43f57df12..b8a36e1bf 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -1,17 +1,17 @@ package emu.grasscutter.server.packet.send; -import com.google.gson.Gson; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.game.Mail; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; -import emu.grasscutter.net.proto.*; import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; +import emu.grasscutter.net.proto.ItemParamOuterClass; +import emu.grasscutter.net.proto.MailDataOuterClass; import emu.grasscutter.net.proto.MailDataOuterClass.MailData; +import emu.grasscutter.net.proto.MailItemOuterClass; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; -import javax.swing.*; import java.util.ArrayList; import java.util.Base64; import java.util.List; @@ -20,7 +20,6 @@ public class PacketGetAllMailRsp extends GenshinPacket { public PacketGetAllMailRsp(GenshinPlayer player, boolean isGiftMail) { super(PacketOpcodes.GetAllMailRsp); - Grasscutter.getLogger().info(String.valueOf(isGiftMail)); if (isGiftMail) { // TODO: Gift Mail @@ -34,11 +33,11 @@ public class PacketGetAllMailRsp extends GenshinPacket { } } else { - if (player.getMail().size() != 0) { // Make sure the player has mail + if (player.getAllMail().size() != 0) { // Make sure the player has mail GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder(); List mailDataList = new ArrayList(); - for (Mail message : player.getMail()) { + for (Mail message : player.getAllMail()) { if(message.stateValue == 1) { //Make sure it isn't a gift MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); mailTextContent.setTitle(message.mailContent.title); @@ -73,7 +72,7 @@ public class PacketGetAllMailRsp extends GenshinPacket { } proto.addAllMailList(mailDataList); - proto.setIsTruncated(true); + proto.setIsTruncated(false); // When enabled this will send a notification to the user that their inbox is full when opening the mailbox. this.setData(proto.build()); } else { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java index 468e98885..a31c6c2db 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -1,13 +1,21 @@ package emu.grasscutter.server.packet.send; +import emu.grasscutter.Grasscutter; +import emu.grasscutter.data.GenshinData; import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Mail; +import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.EquipParamOuterClass; import emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp; import emu.grasscutter.net.proto.ItemParamOuterClass; import emu.grasscutter.net.proto.MailItemOuterClass; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; public class PacketGetMailItemRsp extends GenshinPacket { @@ -17,15 +25,40 @@ public class PacketGetMailItemRsp extends GenshinPacket { //I'm assuming that this is to receive the attachments on the message. // TODO: This. - //GetMailItemRsp.Builder proto = GetMailItemRsp.newBuilder(); + List claimedMessages = new ArrayList<>(); + List claimedItems = new ArrayList<>(); - //MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + GetMailItemRsp.Builder proto = GetMailItemRsp.newBuilder(); - //ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + for (int mailId : mailList) { + Mail message = player.getMailById(mailId); + int messageIndex = player.getMailIndex(message); - //mailItem.setItemParam(itemParam); + message.isAttachmentGot = true; + claimedMessages.add(message); - //proto.addAllMailIdList(mailList); - //proto.addItemList(); + player.replaceMailByIndex(messageIndex, message); + + for(Mail.MailItem mailItem : message.itemList) { + //TODO: Actually give the item + EquipParamOuterClass.EquipParam.Builder item = EquipParamOuterClass.EquipParam.newBuilder(); + item.setItemId(mailItem.itemId); + item.setItemNum(mailItem.itemCount); + claimedItems.add(item.build()); + + GenshinItem genshinItem = new GenshinItem(GenshinData.getItemDataMap().get(mailItem.itemId)); + genshinItem.setCount(mailItem.itemCount); + player.getInventory().addItem(genshinItem); + player.sendPacket(new PacketItemAddHintNotify(genshinItem, ActionReason.MailAttachment)); + } + } + + proto.addAllMailIdList(claimedMessages.stream().map(Mail::getId).collect(Collectors.toList())); + proto.addAllItemList(claimedItems); + player.save(); + + Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); + this.setData(proto.build()); + player.getSession().send(new PacketMailChangeNotify(player, claimedMessages)); } } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java index a0bdc5c3e..ee07f06b7 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -1,6 +1,7 @@ package emu.grasscutter.server.packet.send; +import emu.grasscutter.Grasscutter; import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.game.Mail; import emu.grasscutter.net.packet.GenshinPacket; @@ -13,40 +14,48 @@ import java.util.List; public class PacketMailChangeNotify extends GenshinPacket { public PacketMailChangeNotify(GenshinPlayer player, Mail message) { + this (player, new ArrayList(){{add(message);}}); + } + + public PacketMailChangeNotify(GenshinPlayer player, List mailList) { super(PacketOpcodes.MailChangeNotify); MailChangeNotifyOuterClass.MailChangeNotify.Builder proto = MailChangeNotifyOuterClass.MailChangeNotify.newBuilder(); - MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); - mailTextContent.setTitle(message.mailContent.title); - mailTextContent.setContent(message.mailContent.content); - mailTextContent.setSender(message.mailContent.sender); + for(Mail message : mailList) { + MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); - List mailItems = new ArrayList(); + List mailItems = new ArrayList(); - for(Mail.MailItem item : message.itemList) { - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); - itemParam.setItemId(item.itemId); - itemParam.setCount(item.itemCount); - mailItem.setItemParam(itemParam.build()); + for(Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); - mailItems.add(mailItem.build()); + mailItems.add(mailItem.build()); + } + + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(message._id); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int)message.sendTime); + mailData.setExpireTime((int)message.expireTime); + mailData.setImportance(message.importance); + mailData.setIsRead(message.isRead); + mailData.setIsAttachmentGot(message.isAttachmentGot); + mailData.setStateValue(message.stateValue); + + proto.addMailList(mailData.build()); + + Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); + + this.setData(proto.build()); } - - MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(message._id); - mailData.setMailTextContent(mailTextContent.build()); - mailData.addAllItemList(mailItems); - mailData.setSendTime((int)message.sendTime); - mailData.setExpireTime((int)message.expireTime); - mailData.setImportance(message.importance); - mailData.setIsRead(false); - mailData.setIsAttachmentGot(false); - mailData.setStateValue(message.stateValue); - - proto.addMailList(mailData.build()); - - this.setData(proto.build()); } } \ No newline at end of file From 15d11595096457392e595effda1a57653e66fb51 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 14:30:56 +0800 Subject: [PATCH 18/40] Deleting mail + a bit of cleanup --- .../emu/grasscutter/game/GenshinPlayer.java | 15 ++-- src/main/java/emu/grasscutter/game/Mail.java | 13 ++-- .../server/packet/recv/HandlerDelMailReq.java | 21 ++++++ .../server/packet/send/PacketDelMailRsp.java | 29 ++++++++ .../packet/send/PacketGetAllMailRsp.java | 59 ++++++++-------- .../packet/send/PacketGetMailItemRsp.java | 21 ++---- .../packet/send/PacketMailChangeNotify.java | 68 +++++++++++-------- 7 files changed, 145 insertions(+), 81 deletions(-) create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerDelMailReq.java create mode 100644 src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index 16f321a0e..16b45b9b8 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -1,5 +1,8 @@ package emu.grasscutter.game; +import java.time.Instant; +import java.util.*; + import dev.morphia.annotations.*; import emu.grasscutter.GenshinConstants; import emu.grasscutter.Grasscutter; @@ -588,8 +591,9 @@ public class GenshinPlayer { Mail message = getMailById(mailId); if(message != null) { - this.mail.remove(message); - this.save(); + int index = getMailIndex(message); + message.expireTime = (int) Instant.now().getEpochSecond(); // Just set the mail as expired for now. I don't want to implement a counter specifically for an account... + this.replaceMailByIndex(index, message); return true; } @@ -604,9 +608,10 @@ public class GenshinPlayer { return this.mail.indexOf(message); } - public boolean replaceMailByIndex(int mailId, Mail message) { - if(getMailById(mailId) != null) { - this.mail.set(mailId, message); + public boolean replaceMailByIndex(int index, Mail message) { + if(getMailById(index) != null) { + this.mail.set(index, message); + this.save(); return true; } else { return false; diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 1ace4610f..67a592a33 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -25,14 +25,14 @@ public class Mail { itemList = new ArrayList<>(); sendTime = 0; expireTime = 0; - importance = 1; + importance = 0; // Starred mail, 0 = No star, 1 = Star. isRead = true; isAttachmentGot = true; - stateValue = 1; + stateValue = 1; // Different mailboxes, 1 = Default, 3 = Gift-box. } public Mail(MailContent mailContent, List itemList, long expireTime) { - this(mailContent, itemList, expireTime, 1); + this(mailContent, itemList, expireTime, 0); } public Mail(MailContent mailContent, List itemList, long expireTime, int importance) { @@ -90,19 +90,24 @@ public class Mail { public static class MailItem { public int itemId; public int itemCount; + public int itemLevel; public MailItem() { this.itemId = 11101; this.itemCount = 1; + this.itemLevel = 1; } public MailItem(int itemId) { this(itemId, 1); } - public MailItem(int itemId, int itemCount) { + public MailItem(int itemId, int itemCount) { this(itemId, itemCount, 1); } + + public MailItem(int itemId, int itemCount, int itemLevel) { this.itemId = itemId; this.itemCount = itemCount; + this.itemLevel = itemLevel; } } } diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerDelMailReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerDelMailReq.java new file mode 100644 index 000000000..4c6473996 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerDelMailReq.java @@ -0,0 +1,21 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.DelMailReqOuterClass; +import emu.grasscutter.net.proto.DeleteFriendReqOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketDelMailRsp; + +@Opcodes(PacketOpcodes.DelMailReq) +public class HandlerDelMailReq extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + DelMailReqOuterClass.DelMailReq req = DelMailReqOuterClass.DelMailReq.parseFrom(payload); + + session.send(new PacketDelMailRsp(session.getPlayer(), req.getMailIdListList())); + } + +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java new file mode 100644 index 000000000..6a11521a5 --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java @@ -0,0 +1,29 @@ +package emu.grasscutter.server.packet.send; + +import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp; + +import java.util.ArrayList; +import java.util.List; + +public class PacketDelMailRsp extends GenshinPacket { + + public PacketDelMailRsp(GenshinPlayer player, List toDeleteIds) { + super(PacketOpcodes.DelMailRsp); + + DelMailRsp.Builder proto = DelMailRsp.newBuilder(); + + List deletedIds = new ArrayList<>(); + + for(int mailId : toDeleteIds) { + if(player.deleteMail(mailId)) { + deletedIds.add(mailId); + } + } + + this.setData(proto.build()); + player.getSession().send(new PacketMailChangeNotify(player, null, deletedIds)); + } +} \ No newline at end of file diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index b8a36e1bf..756b6f347 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -12,6 +12,7 @@ import emu.grasscutter.net.proto.MailDataOuterClass.MailData; import emu.grasscutter.net.proto.MailItemOuterClass; import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent; +import java.time.Instant; import java.util.ArrayList; import java.util.Base64; import java.util.List; @@ -38,41 +39,45 @@ public class PacketGetAllMailRsp extends GenshinPacket { List mailDataList = new ArrayList(); for (Mail message : player.getAllMail()) { - if(message.stateValue == 1) { //Make sure it isn't a gift - MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); - mailTextContent.setTitle(message.mailContent.title); - mailTextContent.setContent(message.mailContent.content); - mailTextContent.setSender(message.mailContent.sender); + if(message.stateValue == 1) { // Make sure it isn't a gift + if (message.expireTime < Instant.now().getEpochSecond()) { // Make sure the message isn't expired (The game won't show expired mail, but I don't want to send unnecessary information). + if(mailDataList.size() <= 1000) { // Make sure that there isn't over 1000 messages in the mailbox. (idk what will happen if there is but the game probably won't like it.) + MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); - List mailItems = new ArrayList<>(); + List mailItems = new ArrayList<>(); - for (Mail.MailItem item : message.itemList) { - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); - itemParam.setItemId(item.itemId); - itemParam.setCount(item.itemCount); - mailItem.setItemParam(itemParam.build()); + for (Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); - mailItems.add(mailItem.build()); + mailItems.add(mailItem.build()); + } + + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(message._id); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int) message.sendTime); + mailData.setExpireTime((int) message.expireTime); + mailData.setImportance(message.importance); + mailData.setIsRead(message.isRead); + mailData.setIsAttachmentGot(message.isAttachmentGot); + mailData.setStateValue(1); + + mailDataList.add(mailData.build()); + } } - - MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(message._id); - mailData.setMailTextContent(mailTextContent.build()); - mailData.addAllItemList(mailItems); - mailData.setSendTime((int) message.sendTime); - mailData.setExpireTime((int) message.expireTime); - mailData.setImportance(message.importance); - mailData.setIsRead(message.isRead); - mailData.setIsAttachmentGot(message.isAttachmentGot); - mailData.setStateValue(1); - - mailDataList.add(mailData.build()); } } proto.addAllMailList(mailDataList); - proto.setIsTruncated(false); // When enabled this will send a notification to the user that their inbox is full when opening the mailbox. + proto.setIsTruncated(mailDataList.size() <= 1000 ? false : true); // When enabled this will send a notification to the user telling them their inbox is full and they should delete old messages when opening the mailbox. this.setData(proto.build()); } else { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java index a31c6c2db..79f0072ae 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -1,6 +1,5 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.Grasscutter; import emu.grasscutter.data.GenshinData; import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.game.Mail; @@ -10,8 +9,6 @@ import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EquipParamOuterClass; import emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp; -import emu.grasscutter.net.proto.ItemParamOuterClass; -import emu.grasscutter.net.proto.MailItemOuterClass; import java.util.ArrayList; import java.util.List; @@ -22,9 +19,6 @@ public class PacketGetMailItemRsp extends GenshinPacket { public PacketGetMailItemRsp(GenshinPlayer player, List mailList) { super(PacketOpcodes.GetMailItemRsp); - //I'm assuming that this is to receive the attachments on the message. - // TODO: This. - List claimedMessages = new ArrayList<>(); List claimedItems = new ArrayList<>(); @@ -34,13 +28,7 @@ public class PacketGetMailItemRsp extends GenshinPacket { Mail message = player.getMailById(mailId); int messageIndex = player.getMailIndex(message); - message.isAttachmentGot = true; - claimedMessages.add(message); - - player.replaceMailByIndex(messageIndex, message); - for(Mail.MailItem mailItem : message.itemList) { - //TODO: Actually give the item EquipParamOuterClass.EquipParam.Builder item = EquipParamOuterClass.EquipParam.newBuilder(); item.setItemId(mailItem.itemId); item.setItemNum(mailItem.itemCount); @@ -51,14 +39,17 @@ public class PacketGetMailItemRsp extends GenshinPacket { player.getInventory().addItem(genshinItem); player.sendPacket(new PacketItemAddHintNotify(genshinItem, ActionReason.MailAttachment)); } + + message.isAttachmentGot = true; + claimedMessages.add(message); + + player.replaceMailByIndex(messageIndex, message); } proto.addAllMailIdList(claimedMessages.stream().map(Mail::getId).collect(Collectors.toList())); proto.addAllItemList(claimedItems); - player.save(); - Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); this.setData(proto.build()); - player.getSession().send(new PacketMailChangeNotify(player, claimedMessages)); + player.getSession().send(new PacketMailChangeNotify(player, claimedMessages)); // For some reason you have to also send the MailChangeNotify packet } } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java index ee07f06b7..fe8437fdd 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -18,44 +18,52 @@ public class PacketMailChangeNotify extends GenshinPacket { } public PacketMailChangeNotify(GenshinPlayer player, List mailList) { + this(player, mailList, null); + } + + public PacketMailChangeNotify(GenshinPlayer player, List mailList, List delMailIdList) { super(PacketOpcodes.MailChangeNotify); MailChangeNotifyOuterClass.MailChangeNotify.Builder proto = MailChangeNotifyOuterClass.MailChangeNotify.newBuilder(); - for(Mail message : mailList) { - MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); - mailTextContent.setTitle(message.mailContent.title); - mailTextContent.setContent(message.mailContent.content); - mailTextContent.setSender(message.mailContent.sender); + if (mailList != null) { + for (Mail message : mailList) { + MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder(); + mailTextContent.setTitle(message.mailContent.title); + mailTextContent.setContent(message.mailContent.content); + mailTextContent.setSender(message.mailContent.sender); - List mailItems = new ArrayList(); + List mailItems = new ArrayList(); - for(Mail.MailItem item : message.itemList) { - MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); - ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); - itemParam.setItemId(item.itemId); - itemParam.setCount(item.itemCount); - mailItem.setItemParam(itemParam.build()); + for (Mail.MailItem item : message.itemList) { + MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder(); + ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder(); + itemParam.setItemId(item.itemId); + itemParam.setCount(item.itemCount); + mailItem.setItemParam(itemParam.build()); - mailItems.add(mailItem.build()); + mailItems.add(mailItem.build()); + } + + MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); + mailData.setMailId(message._id); + mailData.setMailTextContent(mailTextContent.build()); + mailData.addAllItemList(mailItems); + mailData.setSendTime((int) message.sendTime); + mailData.setExpireTime((int) message.expireTime); + mailData.setImportance(message.importance); + mailData.setIsRead(message.isRead); + mailData.setIsAttachmentGot(message.isAttachmentGot); + mailData.setStateValue(message.stateValue); + + proto.addMailList(mailData.build()); } - - MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(message._id); - mailData.setMailTextContent(mailTextContent.build()); - mailData.addAllItemList(mailItems); - mailData.setSendTime((int)message.sendTime); - mailData.setExpireTime((int)message.expireTime); - mailData.setImportance(message.importance); - mailData.setIsRead(message.isRead); - mailData.setIsAttachmentGot(message.isAttachmentGot); - mailData.setStateValue(message.stateValue); - - proto.addMailList(mailData.build()); - - Grasscutter.getLogger().info(Grasscutter.getDispatchServer().getGsonFactory().toJson(proto.build())); - - this.setData(proto.build()); } + + if(delMailIdList != null) { + proto.addAllDelMailIdList(delMailIdList); + } + + this.setData(proto.build()); } } \ No newline at end of file From c0d4ca5e09f52ac10d8d9b120e236da92ee2fb0e Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 15:41:18 +0800 Subject: [PATCH 19/40] Mail read notify --- .../packet/recv/HandlerReadMailNotify.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java new file mode 100644 index 000000000..adf9e54ba --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java @@ -0,0 +1,36 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.game.Mail; +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.GetAllMailReqOuterClass; +import emu.grasscutter.net.proto.ReadMailNotifyOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketMailChangeNotify; + +import java.util.ArrayList; +import java.util.List; + +@Opcodes(PacketOpcodes.ReadMailNotify) +public class HandlerReadMailNotify extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + ReadMailNotifyOuterClass.ReadMailNotify req = ReadMailNotifyOuterClass.ReadMailNotify.parseFrom(payload); + + List updatedMail = new ArrayList<>(); + + for (int mailId : req.getMailIdListList()) { + Mail message = session.getPlayer().getMailById(mailId); + int messageIndex = session.getPlayer().getMailIndex(message); + + message.isRead = true; + + session.getPlayer().replaceMailByIndex(messageIndex, message); + updatedMail.add(message); + } + + session.send(new PacketMailChangeNotify(session.getPlayer(), updatedMail)); + } +} From 6861a56a7bfad3e6f6af451534f12f053b613c5a Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 16:11:57 +0800 Subject: [PATCH 20/40] Added ChangeMailStarNotify (change importance level) --- .../recv/HandlerChangeMailStarNotify.java | 35 +++++++++++++++++++ .../packet/recv/HandlerGetAllMailReq.java | 1 - 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java new file mode 100644 index 000000000..468ce5b4e --- /dev/null +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java @@ -0,0 +1,35 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.game.Mail; +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketMailChangeNotify; + +import java.util.ArrayList; +import java.util.List; + +@Opcodes(PacketOpcodes.ChangeMailStarNotify) +public class HandlerChangeMailStarNotify extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + ChangeMailStarNotifyOuterClass.ChangeMailStarNotify req = ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.parseFrom(payload); + + List updatedMail = new ArrayList<>(); + + for (int mailId : req.getMailIdListList()) { + Mail message = session.getPlayer().getMailById(mailId); + int messageIndex = session.getPlayer().getMailIndex(message); + + message.importance = req.getIsStar() == true ? 1 : 0; + + session.getPlayer().replaceMailByIndex(messageIndex, message); + updatedMail.add(message); + } + + session.send(new PacketMailChangeNotify(session.getPlayer(), updatedMail)); + } +} diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java index 7d92f2523..899ba6d95 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java @@ -18,5 +18,4 @@ public class HandlerGetAllMailReq extends PacketHandler { GetAllMailReqOuterClass.GetAllMailReq req = GetAllMailReqOuterClass.GetAllMailReq.parseFrom(payload); session.send(new PacketGetAllMailRsp(session.getPlayer(), req.getIsGiftMail())); } - } From f18068bc16f14c0d70f9ea344d3b9d8b683f2773 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 16:32:26 +0800 Subject: [PATCH 21/40] More weird git stuff --- src/main/java/emu/grasscutter/game/GenshinPlayer.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index bc2ce12a4..0fafeb3cd 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -101,8 +101,6 @@ public class GenshinPlayer { private ArrayList shownAvatars; private Set rewardedLevels; private ArrayList mail; - - private ArrayList mail; private int sceneId; private int regionId; From 254a779bf76959b68a46225777dc2f3d40a800ae Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 16:42:56 +0800 Subject: [PATCH 22/40] Forgot to implement levels into GetMailItemRsp Also added promoteLevels --- .../packet/send/PacketGetMailItemRsp.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java index 79f0072ae..38dd33338 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -30,12 +30,31 @@ public class PacketGetMailItemRsp extends GenshinPacket { for(Mail.MailItem mailItem : message.itemList) { EquipParamOuterClass.EquipParam.Builder item = EquipParamOuterClass.EquipParam.newBuilder(); + int promoteLevel = 0; + if (mailItem.itemLevel > 20) { // 20/40 + promoteLevel = 1; + } else if (mailItem.itemLevel > 40) { // 40/50 + promoteLevel = 2; + } else if (mailItem.itemLevel > 50) { // 50/60 + promoteLevel = 3; + } else if (mailItem.itemLevel > 60) { // 60/70 + promoteLevel = 4; + } else if (mailItem.itemLevel > 70) { // 70/80 + promoteLevel = 5; + } else if (mailItem.itemLevel > 80) { // 80/90 + promoteLevel = 6; + } + item.setItemId(mailItem.itemId); item.setItemNum(mailItem.itemCount); + item.setItemLevel(mailItem.itemLevel); + item.setPromoteLevel(promoteLevel); claimedItems.add(item.build()); GenshinItem genshinItem = new GenshinItem(GenshinData.getItemDataMap().get(mailItem.itemId)); genshinItem.setCount(mailItem.itemCount); + genshinItem.setLevel(mailItem.itemLevel); + genshinItem.setPromoteLevel(promoteLevel); player.getInventory().addItem(genshinItem); player.sendPacket(new PacketItemAddHintNotify(genshinItem, ActionReason.MailAttachment)); } From ae190f3fa085146eb5b77f23e5fbd7c73bc93ee8 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon Date: Mon, 25 Apr 2022 21:53:10 +0800 Subject: [PATCH 23/40] Send Mail Command! Almost done! Wooooo! --- .../command/commands/SendMailCommand.java | 194 +++++++++++++++++- .../grasscutter/database/DatabaseHelper.java | 4 + .../emu/grasscutter/game/GenshinPlayer.java | 8 +- src/main/java/emu/grasscutter/game/Mail.java | 14 +- .../packet/recv/HandlerGetMailItemReq.java | 1 - .../packet/send/PacketGetAllMailRsp.java | 6 +- 6 files changed, 201 insertions(+), 26 deletions(-) diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java index 036a261b5..452ac475e 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -3,30 +3,202 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; +import emu.grasscutter.database.DatabaseHelper; import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.game.Mail; import emu.grasscutter.server.packet.send.PacketMailChangeNotify; import java.time.Instant; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Locale; -@Command(label = "sendmail", usage = "sendmail") +@Command(label = "sendmail", usage = "sendmail [templateId]", + description = "Sends mail to the specified user. The usage of this command changes based on it's composition state.", permission = "server.sendmail") public class SendMailCommand implements CommandHandler { + // TODO: You should be able to do /sendmail and then just send subsequent messages until you finish + // However, due to the current nature of the command system, I don't think this is possible without rewriting + // the command system (again). For now this will do + + // Key = User that is constructing the mail. + private static HashMap mailBeingConstructed = new HashMap(); + + // Yes this is awful and I hate it. @Override public void execute(GenshinPlayer sender, List args) { - // This is literally so I can receive mail for some reason. - if(sender == null) { - // This is my uuid in my test server. This is just for testing. - // If someone pulled this please put your uuid to receive mail using /sendmail - // until I actually make a proper /sendmail command. - sender = Grasscutter.getGameServer().getPlayerByUid(7006); + int senderId; + if(sender != null) { + senderId = sender.getUid(); + } else { + senderId = -1; } - sender.sendMail(new Mail(new Mail.MailContent("Test", "This is a test"), - new ArrayList(){{add(new Mail.MailItem(23411 ));}}, - Instant.now().getEpochSecond() + 4000)); - sender.dropMessage("Check your inbox"); + if (!mailBeingConstructed.containsKey(senderId)) { + switch (args.size()) { + case 1: + MailBuilder mailBuilder; + switch (args.get(0).toLowerCase()) { + case "help": + CommandHandler.sendMessage(sender, this.getClass().getAnnotation(Command.class).description() + "\nUsage: " + this.getClass().getAnnotation(Command.class).usage()); + return; + case "all": + mailBuilder = new MailBuilder(true, new Mail()); + break; + default: + if (DatabaseHelper.getPlayerById(Integer.parseInt(args.get(0))) != null) { + mailBuilder = new MailBuilder(Integer.parseInt(args.get(0)), new Mail()); + break; + } else { + CommandHandler.sendMessage(sender, "The user with an id of '" + args.get(0) + "' does not exist"); + return; + } + } + mailBeingConstructed.put(senderId, mailBuilder); + CommandHandler.sendMessage(sender, "Starting composition of message.\nPlease use `/sendmail ` to continue.\nYou can use `/sendmail stop` at any time"); + break; + case 2: + CommandHandler.sendMessage(sender, "Mail templates coming soon implemented..."); + return; + default: + CommandHandler.sendMessage(sender, "Invalid arguments.\nUsage `/sendmail <userId|all|help> [templateId]`"); + return; + } + } else { + MailBuilder mailBuilder = mailBeingConstructed.get(senderId); + + if (args.size() >= 1) { + switch (args.get(0).toLowerCase()) { + case "stop": + mailBeingConstructed.remove(senderId); + CommandHandler.sendMessage(sender, "Message sending cancelled"); + return; + case "finish": + if (mailBuilder.constructionStage == 3) { + if(mailBuilder.sendToAll == false) { + Grasscutter.getGameServer().getPlayerByUid(mailBuilder.recipient, true).sendMail(mailBuilder.mail); + CommandHandler.sendMessage(sender, "Message sent to user " + mailBuilder.recipient + "!"); + } else { + // TODO: More testing required. This probably won't work for online players if DatabaseHelper.getPlayerById(string) didn't work. + for (GenshinPlayer player : DatabaseHelper.getAllPlayers()) { + player.sendMail(mailBuilder.mail); + } + CommandHandler.sendMessage(sender, "Message sent to all users!"); + } + mailBeingConstructed.remove(senderId); + } else { + CommandHandler.sendMessage(sender, "Message composition not at final stage.\nPlease use `/sendmail " + getConstructionArgs(mailBuilder.constructionStage) + "` or `/sendmail stop` to cancel"); + } + return; + case "help": + CommandHandler.sendMessage(sender, "Please use `/sendmail " + getConstructionArgs(mailBuilder.constructionStage) + "`"); + return; + default: + switch (mailBuilder.constructionStage) { + case 0: + String title = String.join(" ", args.subList(0, args.size())); + mailBuilder.mail.mailContent.title = title; + CommandHandler.sendMessage(sender, "Message title set as '" + title + "'.\nUse '/sendmail <content>' to continue."); + mailBuilder.constructionStage++; + break; + case 1: + String contents = String.join(" ", args.subList(0, args.size())); + mailBuilder.mail.mailContent.content = contents; + CommandHandler.sendMessage(sender, "Message contents set as '" + contents + "'.\nUse '/sendmail <sender>' to continue."); + mailBuilder.constructionStage++; + break; + case 2: + String msgSender = String.join(" ", args.subList(0, args.size())); + mailBuilder.mail.mailContent.sender = msgSender; + CommandHandler.sendMessage(sender, "Message sender set as '" + msgSender + "'.\nUse '/sendmail <itemId|itemName|finish> [amount] [level]' to continue."); + mailBuilder.constructionStage++; + break; + case 3: + // Literally just copy-pasted from the give command lol. + int item, lvl, amount = 1; + switch (args.size()) { + default: // *No args* + CommandHandler.sendMessage(sender, "Usage: give [player] <itemId|itemName> [amount]"); + return; + case 1: // <itemId|itemName> + try { + item = Integer.parseInt(args.get(0)); + lvl = 1; + } catch (NumberFormatException ignored) { + // TODO: Parse from item name using GM Handbook. + CommandHandler.sendMessage(sender, "Invalid item id."); + return; + } + break; + case 2: // <itemId|itemName> [amount] + lvl = 1; + item = Integer.parseInt(args.get(0)); + amount = Integer.parseInt(args.get(1)); + break; + case 3: // <itemId|itemName> [amount] [level] + try { + item = Integer.parseInt(args.get(0)); + amount = Integer.parseInt(args.get(1)); + lvl = Integer.parseInt(args.get(2)); + + } catch (NumberFormatException ignored) { + // TODO: Parse from item name using GM Handbook. + CommandHandler.sendMessage(sender, "Invalid item or player ID."); + return; + } + break; + } + mailBuilder.mail.itemList.add(new Mail.MailItem(item, amount, lvl)); + CommandHandler.sendMessage(sender, String.format("Attached %s of %s (level %s) to the message.\nContinue adding more items or use `/sendmail finish` to send the message.", amount, item, lvl)); + } + break; + } + } else { + CommandHandler.sendMessage(sender, "Invalid arguments \n Please use `/sendmail " + getConstructionArgs(mailBuilder.constructionStage)); + } + } + } + + public String getConstructionArgs(int stage) { + switch (stage) { + case 0: + return "<title>"; + case 1: + return "<message>"; + case 2: + return "<sender>"; + case 3: + return "<itemId|itemName|finish> [amount] [level]"; + default: + Thread.dumpStack(); + return "ERROR: invalid construction stage " + stage + ". Check console for stacktrace."; + } + } + + public static class MailBuilder { + public int recipient; + public boolean sendToAll; + public int constructionStage; + public Mail mail; + + public MailBuilder(int recipient, Mail mail) { + this.recipient = recipient; + this.sendToAll = false; + this.constructionStage = 0; + this.mail = mail; + } + + public MailBuilder(boolean sendToAll, Mail mail) { + if (sendToAll) { + this.recipient = 0; + this.sendToAll = true; + this.constructionStage = 0; + this.mail = mail; + } else { + Grasscutter.getLogger().error("Please use MailBuilder(int, mail) when not sending to all"); + Thread.dumpStack(); + } + } } } diff --git a/src/main/java/emu/grasscutter/database/DatabaseHelper.java b/src/main/java/emu/grasscutter/database/DatabaseHelper.java index fc24b70e6..aa2fbe251 100644 --- a/src/main/java/emu/grasscutter/database/DatabaseHelper.java +++ b/src/main/java/emu/grasscutter/database/DatabaseHelper.java @@ -90,6 +90,10 @@ public final class DatabaseHelper { return DatabaseManager.getDatastore().find(Account.class).filter(Filters.eq("username", username)).delete().getDeletedCount() > 0; } + public static List<GenshinPlayer> getAllPlayers() { + return DatabaseManager.getDatastore().find(GenshinPlayer.class).stream().toList(); + } + public static GenshinPlayer getPlayerById(int id) { return DatabaseManager.getDatastore().find(GenshinPlayer.class).filter(Filters.eq("_id", id)).first(); } diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index 0fafeb3cd..e6474990f 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -6,6 +6,7 @@ import java.util.*; import dev.morphia.annotations.*; import emu.grasscutter.GenshinConstants; import emu.grasscutter.Grasscutter; +import emu.grasscutter.command.CommandHandler; import emu.grasscutter.data.GenshinData; import emu.grasscutter.data.def.PlayerLevelData; import emu.grasscutter.database.DatabaseHelper; @@ -603,10 +604,13 @@ public class GenshinPlayer { public List<Mail> getAllMail() { return this.mail; } public void sendMail(Mail message) { - this.mail.add(message); message._id = this.mail.size() + 1; + this.mail.add(message); this.save(); - this.sendPacket(new PacketMailChangeNotify(this, message)); + Grasscutter.getLogger().info("Message sent to user [" + this.getUid() + ":" + this.getNickname() + "]!"); + if(this.getSession() != null) { + this.sendPacket(new PacketMailChangeNotify(this, message)); + } // TODO: setup a way for the mail notification to show up when someone receives mail when they were offline } public boolean deleteMail(int mailId) { diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 67a592a33..4d1f79d9f 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -20,15 +20,7 @@ public class Mail { public int stateValue; public Mail() { - _id = 1; - mailContent = new MailContent("No title set...", "No content set..."); - itemList = new ArrayList<>(); - sendTime = 0; - expireTime = 0; - importance = 0; // Starred mail, 0 = No star, 1 = Star. - isRead = true; - isAttachmentGot = true; - stateValue = 1; // Different mailboxes, 1 = Default, 3 = Gift-box. + this(new MailContent(), new ArrayList<MailItem>(), (int) Instant.now().getEpochSecond() + 604800); // TODO: add expire time to send mail command } public Mail(MailContent mailContent, List<MailItem> itemList, long expireTime) { @@ -49,10 +41,10 @@ public class Mail { this.itemList = itemList; this.sendTime = (int) Instant.now().getEpochSecond(); this.expireTime = expireTime; - this.importance = importance; + this.importance = importance; // Starred mail, 0 = No star, 1 = Star. this.isRead = false; this.isAttachmentGot = false; - this.stateValue = state; + this.stateValue = state; // Different mailboxes, 1 = Default, 3 = Gift-box. } public int getId() { diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java index 59195a4b3..f00bf911e 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetMailItemReq.java @@ -13,7 +13,6 @@ public class HandlerGetMailItemReq extends PacketHandler { @Override public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { - Grasscutter.getLogger().info("Mail Item Req"); GetMailItemReqOuterClass.GetMailItemReq req = GetMailItemReqOuterClass.GetMailItemReq.parseFrom(payload); session.send(new PacketGetMailItemRsp(session.getPlayer(), req.getMailIdListList())); } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index 756b6f347..4632054b7 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -39,9 +39,13 @@ public class PacketGetAllMailRsp extends GenshinPacket { List<MailData> mailDataList = new ArrayList<MailData>(); for (Mail message : player.getAllMail()) { + if(message.stateValue == 1) { // Make sure it isn't a gift - if (message.expireTime < Instant.now().getEpochSecond()) { // Make sure the message isn't expired (The game won't show expired mail, but I don't want to send unnecessary information). + Grasscutter.getLogger().info("a"); + if (message.expireTime > (int) Instant.now().getEpochSecond()) { // Make sure the message isn't expired (The game won't show expired mail, but I don't want to send unnecessary information). + Grasscutter.getLogger().info("b"); if(mailDataList.size() <= 1000) { // Make sure that there isn't over 1000 messages in the mailbox. (idk what will happen if there is but the game probably won't like it.) + Grasscutter.getLogger().info("c"); MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); mailTextContent.setTitle(message.mailContent.title); mailTextContent.setContent(message.mailContent.content); From 70159059912bc846c12a78fe154dab4baf23f7e5 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon <benjamin7006@gmail.com> Date: Tue, 26 Apr 2022 11:57:55 +0800 Subject: [PATCH 24/40] Improvements and send all mail fix Mail ID no longer exists and is handled by it's position in the mail array --- .../command/commands/SendMailCommand.java | 3 +-- .../emu/grasscutter/game/GenshinPlayer.java | 19 ++++++++----------- src/main/java/emu/grasscutter/game/Mail.java | 10 ---------- .../recv/HandlerChangeMailStarNotify.java | 5 ++--- .../packet/recv/HandlerReadMailNotify.java | 5 ++--- .../packet/send/PacketGetAllMailRsp.java | 2 +- .../packet/send/PacketGetMailItemRsp.java | 7 +++---- .../packet/send/PacketMailChangeNotify.java | 2 +- 8 files changed, 18 insertions(+), 35 deletions(-) diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java index 452ac475e..d8f0fd542 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -80,9 +80,8 @@ public class SendMailCommand implements CommandHandler { Grasscutter.getGameServer().getPlayerByUid(mailBuilder.recipient, true).sendMail(mailBuilder.mail); CommandHandler.sendMessage(sender, "Message sent to user " + mailBuilder.recipient + "!"); } else { - // TODO: More testing required. This probably won't work for online players if DatabaseHelper.getPlayerById(string) didn't work. for (GenshinPlayer player : DatabaseHelper.getAllPlayers()) { - player.sendMail(mailBuilder.mail); + Grasscutter.getGameServer().getPlayerByUid(player.getUid(), true).sendMail(mailBuilder.mail); } CommandHandler.sendMessage(sender, "Message sent to all users!"); } diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index e6474990f..9f5099a92 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -604,20 +604,20 @@ public class GenshinPlayer { public List<Mail> getAllMail() { return this.mail; } public void sendMail(Mail message) { - message._id = this.mail.size() + 1; this.mail.add(message); this.save(); - Grasscutter.getLogger().info("Message sent to user [" + this.getUid() + ":" + this.getNickname() + "]!"); - if(this.getSession() != null) { + Grasscutter.getLogger().info("Mail sent to user [" + this.getUid() + ":" + this.getNickname() + "]!"); + if(this.isOnline()) { + Grasscutter.getLogger().info("user online."); this.sendPacket(new PacketMailChangeNotify(this, message)); } // TODO: setup a way for the mail notification to show up when someone receives mail when they were offline } public boolean deleteMail(int mailId) { - Mail message = getMailById(mailId); + Mail message = getMail(mailId); if(message != null) { - int index = getMailIndex(message); + int index = getMailId(message); message.expireTime = (int) Instant.now().getEpochSecond(); // Just set the mail as expired for now. I don't want to implement a counter specifically for an account... this.replaceMailByIndex(index, message); return true; @@ -626,16 +626,13 @@ public class GenshinPlayer { return false; } - public Mail getMailById(int mailId) { - return this.mail.stream().filter(message -> message._id == mailId).findFirst().orElse(null); - } - - public int getMailIndex(Mail message) { + public Mail getMail(int index) { return this.mail.get(index); } + public int getMailId(Mail message) { return this.mail.indexOf(message); } public boolean replaceMailByIndex(int index, Mail message) { - if(getMailById(index) != null) { + if(getMail(index) != null) { this.mail.set(index, message); this.save(); return true; diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 4d1f79d9f..3561a110e 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -9,7 +9,6 @@ import java.util.List; @Entity public class Mail { - public int _id; public MailContent mailContent; public List<MailItem> itemList; public long sendTime; @@ -32,11 +31,6 @@ public class Mail { } public Mail(MailContent mailContent, List<MailItem> itemList, long expireTime, int importance, int state) { - this(0, mailContent, itemList, expireTime, importance, state); - } - - public Mail(int _id, MailContent mailContent, List<MailItem> itemList, long expireTime, int importance, int state) { - this._id = _id; this.mailContent = mailContent; this.itemList = itemList; this.sendTime = (int) Instant.now().getEpochSecond(); @@ -47,10 +41,6 @@ public class Mail { this.stateValue = state; // Different mailboxes, 1 = Default, 3 = Gift-box. } - public int getId() { - return this._id; - } - @Entity public static class MailContent { public String title; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java index 468ce5b4e..ede997f27 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java @@ -21,12 +21,11 @@ public class HandlerChangeMailStarNotify extends PacketHandler { List<Mail> updatedMail = new ArrayList<>(); for (int mailId : req.getMailIdListList()) { - Mail message = session.getPlayer().getMailById(mailId); - int messageIndex = session.getPlayer().getMailIndex(message); + Mail message = session.getPlayer().getMail(mailId); message.importance = req.getIsStar() == true ? 1 : 0; - session.getPlayer().replaceMailByIndex(messageIndex, message); + session.getPlayer().replaceMailByIndex(mailId, message); updatedMail.add(message); } diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java index adf9e54ba..ac5ef9657 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java @@ -22,12 +22,11 @@ public class HandlerReadMailNotify extends PacketHandler { List<Mail> updatedMail = new ArrayList<>(); for (int mailId : req.getMailIdListList()) { - Mail message = session.getPlayer().getMailById(mailId); - int messageIndex = session.getPlayer().getMailIndex(message); + Mail message = session.getPlayer().getMail(mailId); message.isRead = true; - session.getPlayer().replaceMailByIndex(messageIndex, message); + session.getPlayer().replaceMailByIndex(mailId, message); updatedMail.add(message); } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index 4632054b7..8033ed0ad 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -64,7 +64,7 @@ public class PacketGetAllMailRsp extends GenshinPacket { } MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(message._id); + mailData.setMailId(player.getMailId(message)); mailData.setMailTextContent(mailTextContent.build()); mailData.addAllItemList(mailItems); mailData.setSendTime((int) message.sendTime); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java index 38dd33338..a2379545b 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -25,8 +25,7 @@ public class PacketGetMailItemRsp extends GenshinPacket { GetMailItemRsp.Builder proto = GetMailItemRsp.newBuilder(); for (int mailId : mailList) { - Mail message = player.getMailById(mailId); - int messageIndex = player.getMailIndex(message); + Mail message = player.getMail(mailId); for(Mail.MailItem mailItem : message.itemList) { EquipParamOuterClass.EquipParam.Builder item = EquipParamOuterClass.EquipParam.newBuilder(); @@ -62,10 +61,10 @@ public class PacketGetMailItemRsp extends GenshinPacket { message.isAttachmentGot = true; claimedMessages.add(message); - player.replaceMailByIndex(messageIndex, message); + player.replaceMailByIndex(mailId, message); } - proto.addAllMailIdList(claimedMessages.stream().map(Mail::getId).collect(Collectors.toList())); + proto.addAllMailIdList(claimedMessages.stream().map(message -> player.getMailId(message)).collect(Collectors.toList())); proto.addAllItemList(claimedItems); this.setData(proto.build()); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java index fe8437fdd..f7d50eb25 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -46,7 +46,7 @@ public class PacketMailChangeNotify extends GenshinPacket { } MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder(); - mailData.setMailId(message._id); + mailData.setMailId(player.getMailId(message)); mailData.setMailTextContent(mailTextContent.build()); mailData.addAllItemList(mailItems); mailData.setSendTime((int) message.sendTime); From e142c62c44911db671b58965d29da4709e40169b Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon <benjamin7006@gmail.com> Date: Tue, 26 Apr 2022 16:06:28 +0800 Subject: [PATCH 25/40] Didn't mean to push the handbook --- GM_Handbook.txt | 7544 ----------------------------------------------- 1 file changed, 7544 deletions(-) delete mode 100644 GM_Handbook.txt diff --git a/GM_Handbook.txt b/GM_Handbook.txt deleted file mode 100644 index f1518816a..000000000 --- a/GM_Handbook.txt +++ /dev/null @@ -1,7544 +0,0 @@ -// Genshin Impact 2.6.0 GM Handbook -// Created 2022/04/17 18:28:03 - - -// Avatars -10000001 : Kate -10000002 : Kamisato Ayaka -10000003 : Jean -10000005 : Traveler -10000006 : Lisa -10000007 : Traveler -10000014 : Barbara -10000015 : Kaeya -10000016 : Diluc -10000020 : Razor -10000021 : Amber -10000022 : Venti -10000023 : Xiangling -10000024 : Beidou -10000025 : Xingqiu -10000026 : Xiao -10000027 : Ningguang -10000029 : Klee -10000030 : Zhongli -10000031 : Fischl -10000032 : Bennett -10000033 : Tartaglia -10000034 : Noelle -10000035 : Qiqi -10000036 : Chongyun -10000037 : Ganyu -10000038 : Albedo -10000039 : Diona -10000041 : Mona -10000042 : Keqing -10000043 : Sucrose -10000044 : Xinyan -10000045 : Rosaria -10000046 : Hu Tao -10000047 : Kaedehara Kazuha -10000048 : Yanfei -10000049 : Yoimiya -10000050 : Thoma -10000051 : Eula -10000052 : Raiden Shogun -10000053 : Sayu -10000054 : Sangonomiya Kokomi -10000055 : Gorou -10000056 : Kujou Sara -10000057 : Arataki Itto -10000058 : Yae Miko -10000062 : Aloy -10000063 : Shenhe -10000064 : Yun Jin -10000066 : Kamisato Ayato -11000008 : Party Test #4 -11000009 : Background Test -11000010 : Naked Model #1 -11000011 : Naked Man -11000013 : Co-Op Test -11000017 : Adult Male Body Test -11000018 : Adult Female Body Test -11000019 : Girl Body Test -11000025 : Akuliya -11000026 : Yaoyao -11000027 : Girl Body Test - #2 Machine -11000028 : Shiro Maiden -11000030 : Greatsword Maiden -11000031 : Late Weapon Test A -11000032 : Late Weapon Test B -11000033 : Late Weapon Test C -11000034 : Late Weapon Test D -11000035 : Lance Warrioress -11000036 : Swordswoman Test -11000037 : Rx White-Box -11000038 : Boy Body Test -11000039 : Adult Male Body Test -11000040 : Female Lead New Normal Attack -11000041 : Male Lead New Normal Attack -11000042 : Chongyun (Test) -11000043 : Test Character -11000044 : Qiqi (Test) -11000045 : Diona (Test) - -// Items -101 : Character EXP -102 : Adventure EXP -103 : Stardust -104 : Starglitter -105 : Companionship EXP -106 : Original Resin -107 : Story Key -108 : -109 : Fading Star's Might -110 : Fading Star's Essence -111 : Glimmering Essence -112 : Warm Essence -113 : Miraculous Essence -114 : Iron Coin -115 : Peace Talisman -116 : Festive Fever -117 : Veneficus Sigil -118 : Festive Tour Ticket -119 : Peculiar Collab Coupon -120 : Heart of the Spring -121 : Trust -122 : Fractured Fruit Data -123 : Windtrace Coins -124 : Shiny Flotsam -125 : Mini "Harpastum" -126 : Enigma Gear -127 : Thunder Pellet -128 : Thunder Crystal -129 : Mechanicus Mastery EXP -130 : Wondrous Talisman -131 : Moonchase Festival Festive Fever -132 : Battered Shikifuda -133 : Damaged Replica -134 : Aged Token -135 : Snowstrider Seal -136 : Vanquisher's Emblem -137 : Affluence Talisman -138 : Immaculate Talisman -139 : Conquest Talisman -201 : Primogem -202 : Mora -203 : Genesis Crystal -204 : Realm Currency -210 : Original Essence (Invalidated) -211 : Original Resin (Invalidated) -221 : Masterless Starglitter -222 : Masterless Stardust -223 : Intertwined Fate -224 : Acquaint Fate -301 : Pyro Sigil -302 : Hydro Sigil -303 : Dendro Sigil -304 : Electro Sigil -305 : Anemo Sigil -306 : Cryo Sigil -307 : Geo Sigil -314 : Inazuma Reputation EXP -315 : Mondstadt Reputation EXP -317 : Liyue Reputation EXP -911 : Memory of Eternal Flames -912 : Memory of Running Stream -913 : Memory of Flourishing Green -914 : Memory of Violet Flash -915 : Memory of Roving Gales -916 : Memory of Piercing Frost -917 : Memory of Immovable Crystals -1002 : Kamisato Ayaka -1003 : Jean -1005 : Male Character -1006 : Lisa -1007 : Female Lead -1014 : Barbara -1015 : Kaeya -1016 : Diluc -1020 : Razor -1021 : Amber -1022 : Venti -1023 : Xiangling -1024 : Beidou -1025 : Xingqiu -1026 : Xiao -1027 : Ningguang -1029 : Klee -1030 : Zhongli -1031 : Fischl -1032 : Bennett -1033 : Tartaglia -1034 : Noelle -1035 : Qiqi -1036 : Chongyun -1037 : Ganyu -1038 : Albedo -1039 : Diona -1041 : Mona -1042 : Keqing -1043 : Sucrose -1044 : Xinyan -1045 : Rosaria -1046 : Hu Tao -1047 : Kaedehara Kazuha -1048 : Yanfei -1049 : Yoimiya -1050 : Thoma -1051 : Eula -1052 : Raiden Shogun -1053 : Sayu -1054 : Sangonomiya Kokomi -1055 : Gorou -1056 : Kujou Sara -1057 : Arataki Itto -1058 : Yae Miko -1062 : Aloy -1063 : Shenhe -1064 : Yun Jin -1066 : Kamisato Ayato -1102 : Kamisato Ayaka's Stella Fortuna -1103 : Jean's Stella Fortuna -1105 : Traveler (Male)'s Stella Fortuna -1106 : Lisa's Stella Fortuna -1107 : Traveler (Female)'s Stella Fortuna -1114 : Barbara's Stella Fortuna -1115 : Kaeya's Stella Fortuna -1116 : Diluc's Stella Fortuna -1120 : Razor's Stella Fortuna -1121 : Amber's Stella Fortuna -1122 : Venti's Stella Fortuna -1123 : Xiangling's Stella Fortuna -1124 : Beidou's Stella Fortuna -1125 : Xingqiu's Stella Fortuna -1126 : Xiao's Stella Fortuna -1127 : Ningguang's Stella Fortuna -1129 : Klee's Stella Fortuna -1130 : Zhongli's Stella Fortuna -1131 : Fischl's Stella Fortuna -1132 : Bennett's Stella Fortuna -1133 : Tartaglia's Stella Fortuna -1134 : Noelle's Stella Fortuna -1135 : Qiqi's Stella Fortuna -1136 : Chongyun's Stella Fortuna -1137 : Ganyu's Stella Fortuna -1138 : Albedo's Stella Fortuna -1139 : Diona's Stella Fortuna -1141 : Mona's Stella Fortuna -1142 : Keqing's Stella Fortuna -1143 : Sucrose's Stella Fortuna -1144 : Xinyan's Stella Fortuna -1145 : Rosaria's Stella Fortuna -1146 : Hu Tao's Stella Fortuna -1147 : Kaedehara Kazuha's Stella Fortuna -1148 : Yanfei's Stella Fortuna -1149 : Yoimiya's Stella Fortuna -1150 : Thoma's Stella Fortuna -1151 : Eula's Stella Fortuna -1152 : Raiden Shogun's Stella Fortuna -1153 : Sayu's Stella Fortuna -1154 : Sangonomiya Kokomi's Stella Fortuna -1155 : Gorou's Stella Fortuna -1156 : Kujou Sara's Stella Fortuna -1157 : Arataki Itto's Stella Fortuna -1158 : Yae Miko's Stella Fortuna -1162 : Aloy's Stella Fortuna -1163 : Shenhe's Stella Fortuna -1164 : Yun Jin's Stella Fortuna -1166 : Kamisato Ayato's Stella Fortuna -1201 : Gnostic Hymn - Old Notes -1202 : Blessing of the Welkin Moon - New Moon -2001 : Energy Orb (Pyro) -2002 : Energy Orb (Hydro) -2003 : Energy Orb (Dendro) -2004 : Energy Orb (Electro) -2005 : Energy Orb (Anemo) -2006 : Energy Orb (Cryo) -2007 : Energy Orb (Geo) -2008 : Energy Orb (Any) -2017 : Atomic Energy Orb (Pyro) -2018 : Atomic Energy Orb (Hydro) -2019 : Atomic Energy Orb (Dendro) -2020 : Atomic Energy Orb (Electro) -2021 : Atomic Energy Orb (Anemo) -2022 : Atomic Energy Orb (Cryo) -2023 : Atomic Energy Orb (Geo) -2024 : Atomic Energy Orb (All) -2025 : Quest Use - Overpowered Atomic Energy Orb (All) -2026 : Time Shard (Minigame item) -2027 : Time Shard (Minigame item) -2028 : Quest Use - Atomic Energy Orb Pouch -2029 : Quest Use - Atomic Energy Orb Pouch -2800 : -3001 : Test Random Treasure Chest -3002 : Test Set Treasure Chest -3003 : Character Card Draw -3004 : Kamisato Ayaka - for CB1 -3005 : Xiangling - for CB1 -3006 : Jean - for CB1 -3007 : Diluc - for CB1 -3008 : Venti - for CB1 -3009 : Kamisato Ayaka Test Package -3010 : Xiangling Test Package -3011 : Jean Test Package -3012 : Diluc Test Package -3013 : Venti Test Package -3014 : Amber Test Package -3015 : Kaeya Test Package -3016 : Lisa Test Package -3017 : Barbara Test Package -3018 : Barbara - for CB1 -3019 : Razor - for CB1 -3020 : Razor Test Package -3021 : Kaeya -3022 : Lisa -10002 : -10003 : -10004 : -10005 : -10006 : -10008 : -11101 : Dull Blade -11201 : Silver Sword -11301 : Cool Steel -11302 : Harbinger of Dawn -11303 : Traveler's Handy Sword -11304 : Dark Iron Sword -11305 : Fillet Blade -11306 : Skyrider Sword -11401 : Favonius Sword -11402 : The Flute -11403 : Sacrificial Sword -11404 : Royal Longsword -11405 : Lion's Roar -11406 : Prototype Rancour -11407 : Iron Sting -11408 : Blackcliff Longsword -11409 : The Black Sword -11410 : The Alley Flash -11411 : -11412 : Sword of Descension -11413 : Festering Desire -11414 : Amenoma Kageuchi -11415 : Cinnabar Spindle -11501 : Aquila Favonia -11502 : Skyward Blade -11503 : Freedom-Sworn -11504 : Summit Shaper -11505 : Primordial Jade Cutter -11506 : Primordial Jade Cutter -11507 : One Side -11508 : -11509 : Mistsplitter Reforged -11510 : Haran Geppaku Futsu -12101 : Waster Greatsword -12201 : Old Merc's Pal -12301 : Ferrous Shadow -12302 : Bloodtainted Greatsword -12303 : White Iron Greatsword -12304 : Quartz -12305 : Debate Club -12306 : Skyrider Greatsword -12401 : Favonius Greatsword -12402 : The Bell -12403 : Sacrificial Greatsword -12404 : Royal Greatsword -12405 : Rainslasher -12406 : Prototype Archaic -12407 : Whiteblind -12408 : Blackcliff Slasher -12409 : Serpent Spine -12410 : Lithic Blade -12411 : Snow-Tombed Starsilver -12412 : Luxurious Sea-Lord -12414 : Katsuragikiri Nagamasa -12416 : Akuoumaru -12501 : Skyward Pride -12502 : Wolf's Gravestone -12503 : Song of Broken Pines -12504 : The Unforged -12505 : Primordial Jade Greatsword -12506 : The Other Side -12508 : -12509 : -12510 : Redhorn Stonethresher -13101 : Beginner's Protector -13201 : Iron Point -13301 : White Tassel -13302 : Halberd -13303 : Black Tassel -13304 : The Flagstaff -13401 : Dragon's Bane -13402 : Prototype Starglitter -13403 : Crescent Pike -13404 : Blackcliff Pole -13405 : Deathmatch -13406 : Lithic Spear -13407 : Favonius Lance -13408 : Royal Spear -13409 : Dragonspine Spear -13414 : Kitain Cross Spear -13415 : "The Catch" -13416 : Wavebreaker's Fin -13501 : Staff of Homa -13502 : Skyward Spine -13503 : -13504 : Vortex Vanquisher -13505 : Primordial Jade Winged-Spear -13506 : Deicide -13507 : Calamity Queller -13509 : Engulfing Lightning -14101 : Apprentice's Notes -14201 : Pocket Grimoire -14301 : Magic Guide -14302 : Thrilling Tales of Dragon Slayers -14303 : Otherworldly Story -14304 : Emerald Orb -14305 : Twin Nephrite -14306 : Amber Bead -14401 : Favonius Codex -14402 : The Widsith -14403 : Sacrificial Fragments -14404 : Royal Grimoire -14405 : Solar Pearl -14406 : Prototype Amber -14407 : Mappa Mare -14408 : Blackcliff Agate -14409 : Eye of Perception -14410 : Wine and Song -14411 : -14412 : Frostbearer -14413 : Dodoco Tales -14414 : Hakushin Ring -14415 : Oathsworn Eye -14501 : Skyward Atlas -14502 : Lost Prayer to the Sacred Winds -14503 : Lost Ballade -14504 : Memory of Dust -14505 : Primordial Jade Regalia -14506 : Everlasting Moonglow -14508 : -14509 : Kagura's Verity -15101 : Hunter's Bow -15201 : Seasoned Hunter's Bow -15301 : Raven Bow -15302 : Sharpshooter's Oath -15303 : Recurve Bow -15304 : Slingshot -15305 : Messenger -15306 : Ebony Bow -15401 : Favonius Warbow -15402 : The Stringless -15403 : Sacrificial Bow -15404 : Royal Bow -15405 : Rust -15406 : Prototype Crescent -15407 : Compound Bow -15408 : Blackcliff Warbow -15409 : The Viridescent Hunt -15410 : Alley Hunter -15411 : -15412 : Mitternachts Waltz -15413 : Windblume Ode -15414 : Hamayumi -15415 : Predator -15416 : Mouun's Moon -15501 : Skyward Harp -15502 : Amos' Bow -15503 : Elegy for the End -15504 : Kunwu's Wyrmbane -15505 : Primordial Jade Vista -15506 : Mirror Breaker -15507 : Polar Star -15508 : -15509 : Thundering Pulse -20001 : -20002 : Initiate's Feather -20004 : Initiate's Flower -23300 : -23301 : -23302 : -23303 : -23304 : -23305 : -23306 : -23307 : -23308 : -23309 : -23310 : -23311 : -23312 : -23313 : -23314 : -23315 : -23316 : -23317 : -23318 : -23331 : -23332 : -23334 : -23335 : -23336 : -23337 : -23338 : -23339 : -23340 : -23341 : Bloodstained Chevalier's Goblet -23342 : Bloodstained Black Plume -23343 : Bloodstained Iron Mask -23344 : Bloodstained Flower of Iron -23345 : Bloodstained Final Hour -23346 : Bloodstained Chevalier's Goblet -23347 : Bloodstained Black Plume -23348 : Bloodstained Iron Mask -23349 : Bloodstained Flower of Iron -23350 : Bloodstained Final Hour -23351 : Royal Silver Urn -23352 : Royal Plume -23353 : Royal Masque -23354 : Royal Flora -23355 : Royal Pocket Watch -23356 : Royal Silver Urn -23357 : Royal Plume -23358 : Royal Masque -23359 : Royal Flora -23360 : Royal Pocket Watch -23361 : Witch's Heart Flames -23362 : Witch's Ever-Burning Plume -23363 : Witch's Scorching Hat -23364 : Witch's Flower of Blaze -23365 : Witch's End Time -23366 : Witch's Heart Flames -23367 : Witch's Ever-Burning Plume -23368 : Witch's Scorching Hat -23369 : Witch's Flower of Blaze -23370 : Witch's End Time -23371 : Omen of Thunderstorm -23372 : Survivor of Catastrophe -23373 : Thunder Summoner's Crown -23374 : Thunderbird's Mercy -23375 : Hourglass of Thunder -23376 : Omen of Thunderstorm -23377 : Survivor of Catastrophe -23378 : Thunder Summoner's Crown -23379 : Thunderbird's Mercy -23380 : Hourglass of Thunder -23381 : Goblet of Aquilo -23382 : Plume of Snow -23383 : Crown of Glacier -23384 : Heart of Frost -23385 : Glacial Sand -23386 : Goblet of Aquilo -23387 : Plume of Snow -23388 : Crown of Glacier -23389 : Heart of Frost -23390 : Glacial Sand -23391 : Wanderer's String-Kettle -23392 : Bard's Arrow Feather -23393 : Conductor's Top Hat -23394 : Troupe's Dawnlight -23395 : Concert's Final Hour -23396 : Wanderer's String-Kettle -23397 : Bard's Arrow Feather -23398 : Conductor's Top Hat -23399 : Troupe's Dawnlight -23400 : Concert's Final Hour -23401 : Viridescent Venerer's Vessel -23402 : Viridescent Arrow Feather -23403 : Viridescent Venerer's Diadem -23404 : In Remembrance of Viridescent Fields -23405 : Viridescent Venerer's Determination -23406 : Viridescent Venerer's Vessel -23407 : Viridescent Arrow Feather -23408 : Viridescent Venerer's Diadem -23409 : Viridescent Venerer's Determination -23410 : Viridescent Venerer's Determination -23411 : Gladiator's Intoxication -23412 : Gladiator's Destiny -23413 : Gladiator's Triumphus -23414 : Gladiator's Nostalgia -23415 : Gladiator's Longing -23416 : Gladiator's Intoxication -23417 : Gladiator's Destiny -23418 : Gladiator's Triumphus -23419 : Gladiator's Nostalgia -23420 : Gladiator's Longing -23421 : Maiden's Fleeting Leisure -23422 : Maiden's Heart-stricken Infatuation -23423 : Maiden's Fading Beauty -23424 : Maiden's Distant Love -23425 : Maiden's Passing Youth -23426 : Maiden's Fleeting Leisure -23427 : Maiden's Heart-stricken Infatuation -23428 : Maiden's Fading Beauty -23429 : Maiden's Distant Love -23430 : Maiden's Passing Youth -23431 : Lavawalker's Epiphany -23432 : Lavawalker's Salvation -23433 : Lavawalker's Wisdom -23434 : Lavawalker's Resolution -23435 : Lavawalker's Torment -23436 : Lavawalker's Epiphany -23437 : Lavawalker's Salvation -23438 : Lavawalker's Wisdom -23439 : Lavawalker's Resolution -23440 : Lavawalker's Torment -23441 : Thundersoother's Goblet -23442 : Thundersoother's Plume -23443 : Thundersoother's Diadem -23444 : Thundersoother's Heart -23445 : Hour of Soothing Thunder -23446 : Thundersoother's Goblet -23447 : Thundersoother's Plume -23448 : Thundersoother's Diadem -23449 : Thundersoother's Heart -23450 : Hour of Soothing Thunder -23451 : Frost-Weaved Dignity -23452 : Icebreaker's Resolve -23453 : Broken Rime's Echo -23454 : Snowswept Memory -23455 : Frozen Homeland's Demise -23456 : Frost-Weaved Dignity -23457 : Icebreaker's Resolve -23458 : Broken Rime's Echo -23459 : Snowswept Memory -23460 : Frozen Homeland's Demise -23461 : Maiden's Fleeting Leisure -23462 : Maiden's Heart-stricken Infatuation -23463 : Maiden's Fading Beauty -23464 : Maiden's Distant Love -23465 : Maiden's Passing Youth -23466 : Maiden's Fleeting Leisure -23467 : Maiden's Heart-stricken Infatuation -23468 : Maiden's Fading Beauty -23469 : Maiden's Distant Love -23470 : Maiden's Passing Youth -23471 : Maiden's Fleeting Leisure -23472 : Maiden's Heart-stricken Infatuation -23473 : Maiden's Fading Beauty -23474 : Maiden's Distant Love -23475 : Maiden's Passing Youth -23476 : Maiden's Fleeting Leisure -23477 : Maiden's Heart-stricken Infatuation -23478 : Maiden's Fading Beauty -23479 : Maiden's Distant Love -23480 : Maiden's Passing Youth -23481 : Guardian's Vessel -23482 : Guardian's Sigil -23483 : Guardian's Band -23484 : Guardian's Flower -23485 : Guardian's Clock -23486 : Guardian's Vessel -23487 : Guardian's Sigil -23488 : Guardian's Band -23489 : Guardian's Flower -23490 : Guardian's Clock -23491 : Goblet of Chiseled Crag -23492 : Feather of Jagged Peaks -23493 : Mask of Solitude Basalt -23494 : Flower of Creviced Cliff -23495 : Sundial of Enduring Jade -23496 : Goblet of Chiseled Crag -23497 : Feather of Jagged Peaks -23498 : Mask of Solitude Basalt -23499 : Flower of Creviced Cliff -23500 : Sundial of Enduring Jade -23501 : Summer Night's Waterballoon -23502 : Summer Night's Finale -23503 : Summer Night's Mask -23504 : Summer Night's Bloom -23505 : Summer Night's Moment -23506 : Summer Night's Waterballoon -23507 : Summer Night's Finale -23508 : Summer Night's Mask -23509 : Summer Night's Bloom -23510 : Summer Night's Moment -23511 : Instructor's Tea Cup -23512 : Instructor's Feather Accessory -23513 : Instructor's Cap -23514 : Instructor's Brooch -23515 : Instructor's Pocket Watch -23516 : Instructor's Tea Cup -23517 : Instructor's Feather Accessory -23518 : Instructor's Cap -23519 : Instructor's Brooch -23520 : Instructor's Pocket Watch -23521 : Berserker's Bone Goblet -23522 : Berserker's Indigo Feather -23523 : Berserker's Battle Mask -23524 : Berserker's Rose -23525 : Berserker's Timepiece -23526 : Berserker's Bone Goblet -23527 : Berserker's Indigo Feather -23528 : Berserker's Battle Mask -23529 : Berserker's Rose -23530 : Berserker's Timepiece -23531 : Goblet of Thundering Deep -23532 : Gust of Nostalgia -23533 : Wine-Stained Tricorne -23534 : Gilded Corsage -23535 : Copper Compass -23536 : Goblet of Thundering Deep -23537 : Wine-Stained Tricorne -23538 : Wine-Stained Tricorne -23539 : Gilded Corsage -23540 : Copper Compass -23541 : Noble's Pledging Vessel -23542 : Ceremonial War-Plume -23543 : General's Ancient Helm -23544 : Flower of Accolades -23545 : Orichalceous Time-Dial -23546 : Noble's Pledging Vessel -23547 : Ceremonial War-Plume -23548 : General's Ancient Helm -23549 : Flower of Accolades -23550 : Orichalceous Time-Dial -23551 : Surpassing Cup -23552 : Wise Doctor's Pinion -23553 : Mocking Mask -23554 : Stainless Bloom -23555 : Moment of Cessation -23556 : Surpassing Cup -23557 : Wise Doctor's Pinion -23558 : Mocking Mask -23559 : Stainless Bloom -23560 : Moment of Cessation -23561 : Hopeful Heart -23562 : Shaft of Remembrance -23563 : Capricious Visage -23564 : Entangling Bloom -23565 : Morning Dew's Moment -23566 : Hopeful Heart -23567 : Shaft of Remembrance -23568 : Capricious Visage -23569 : Entangling Bloom -23570 : Morning Dew's Moment -23571 : Scarlet Vessel -23572 : Sundered Feather -23573 : Ornate Kabuto -23574 : Magnificent Tsuba -23575 : Storm Cage -23576 : Scarlet Vessel -23577 : Sundered Feather -23578 : Ornate Kabuto -23579 : Magnificent Tsuba -23580 : Storm Cage -23581 : Calabash of Awakening -23582 : Plume of Luxury -23583 : Skeletal Hat -23584 : Bloom Times -23585 : Song of Life -23586 : Calabash of Awakening -23587 : Plume of Luxury -23588 : Skeletal Hat -23589 : Bloom Times -23590 : Song of Life -23591 : Pearl Cage -23592 : Deep Palace's Plume -23593 : Crown of Watatsumi -23594 : Sea-Dyed Blossom -23595 : Cowry of Parting -23596 : Pearl Cage -23597 : Deep Palace's Plume -23598 : Crown of Watatsumi -23599 : Sea-Dyed Blossom -23600 : Cowry of Parting -23601 : Moment of the Pact -23602 : Feather of Nascent Light -23603 : Thundering Poise -23604 : Flowering Life -23605 : Solar Relic -23606 : Moment of the Pact -23607 : Feather of Nascent Light -23608 : Thundering Poise -23609 : Flowering Life -23610 : Solar Relic -23611 : Chalice of the Font -23612 : Jade Leaf -23613 : Flowing Rings -23614 : Soulscent Bloom -23615 : Symbol of Felicitation -23616 : Chalice of the Font -23617 : Jade Leaf -23618 : Flowing Rings -23619 : Soulscent Bloom -23620 : Symbol of Felicitation -24101 : Gladiator's Intoxication -24102 : Gladiator's Destiny -24103 : Ornate Kabuto -24104 : Magnificent Tsuba -24105 : Storm Cage -24111 : Witch's Heart Flames -24112 : Witch's Ever-Burning Plume -24113 : Witch's Scorching Hat -24114 : Witch's Flower of Blaze -24115 : Witch's End Time -24121 : Viridescent Venerer's Vessel -24122 : Viridescent Arrow Feather -24123 : Gladiator's Triumphus -24124 : Gladiator's Nostalgia -24125 : Gladiator's Longing -24131 : Frost-Weaved Dignity -24132 : Icebreaker's Resolve -24133 : Broken Rime's Echo -24134 : Snowswept Memory -24135 : Frozen Homeland's Demise -24141 : Viridescent Venerer's Vessel -24142 : Viridescent Arrow Feather -24143 : Viridescent Venerer's Diadem -24144 : In Remembrance of Viridescent Fields -24145 : Viridescent Venerer's Determination -24151 : Surpassing Cup -24152 : Wise Doctor's Pinion -24153 : Mocking Mask -24154 : Stainless Bloom -24155 : Moment of Cessation -24161 : Goblet of Thundering Deep -24162 : Gust of Nostalgia -24163 : Wine-Stained Tricorne -24164 : Gilded Corsage -24165 : Copper Compass -24171 : Viridescent Venerer's Vessel -24172 : Viridescent Arrow Feather -24173 : Viridescent Venerer's Diadem -24174 : In Remembrance of Viridescent Fields -24175 : Viridescent Venerer's Determination -24181 : Frost-Weaved Dignity -24182 : Icebreaker's Resolve -24183 : Broken Rime's Echo -24184 : Snowswept Memory -24185 : Frozen Homeland's Demise -24191 : Hopeful Heart -24192 : Shaft of Remembrance -24193 : Capricious Visage -24194 : Entangling Bloom -24195 : Morning Dew's Moment -24201 : Scarlet Vessel -24202 : Sundered Feather -24203 : Ornate Kabuto -24204 : Magnificent Tsuba -24205 : Storm Cage -24211 : Goblet of Thundering Deep -24212 : Gust of Nostalgia -24213 : Wine-Stained Tricorne -24214 : Gilded Corsage -24215 : Copper Compass -24221 : Noble's Pledging Vessel -24222 : Ceremonial War-Plume -24223 : General's Ancient Helm -24224 : Flower of Accolades -24225 : Orichalceous Time-Dial -24231 : Witch's Heart Flames -24232 : Witch's Ever-Burning Plume -24233 : Witch's Scorching Hat -24234 : Witch's Flower of Blaze -24235 : Witch's End Time -24241 : Omen of Thunderstorm -24242 : Survivor of Catastrophe -24243 : Gladiator's Triumphus -24244 : Gladiator's Nostalgia -24245 : Gladiator's Longing -24251 : Witch's Heart Flames -24252 : Witch's Ever-Burning Plume -24253 : Witch's Scorching Hat -24254 : Witch's Flower of Blaze -24255 : Witch's End Time -24261 : Royal Silver Urn -24262 : Royal Plume -24263 : Royal Masque -24264 : Royal Flora -24265 : Royal Pocket Watch -24271 : Viridescent Venerer's Vessel -24272 : Viridescent Arrow Feather -24273 : Viridescent Venerer's Diadem -24274 : In Remembrance of Viridescent Fields -24275 : Viridescent Venerer's Determination -24281 : Maiden's Fleeting Leisure -24282 : Maiden's Heart-Stricken Infatuation -24283 : Maiden's Fading Beauty -24284 : Maiden's Distant Love -24285 : Maiden's Passing Youth -24291 : Calabash of Awakening -24292 : Plume of Luxury -24293 : Skeletal Hat -24294 : Bloom Times -24295 : Song of Life -24301 : Calabash of Awakening -24302 : Plume of Luxury -24303 : Skeletal Hat -24304 : Bloom Times -24305 : Song of Life -24311 : Scarlet Vessel -24312 : Sundered Feather -24313 : Ornate Kabuto -24314 : Magnificent Tsuba -24315 : Storm Cage -24321 : Gladiator's Intoxication -24322 : Gladiator's Destiny -24323 : Gladiator's Triumphus -24324 : Thunderbird's Mercy -24325 : Hourglass of Thunder -24331 : Gladiator's Intoxication -24332 : Gladiator's Destiny -24333 : Gladiator's Triumphus -24334 : Gladiator's Nostalgia -24335 : Gladiator's Longing -24341 : Gladiator's Intoxication -24342 : Gladiator's Destiny -24343 : Gladiator's Triumphus -24344 : Gladiator's Nostalgia -24345 : Gladiator's Longing -24351 : Gladiator's Intoxication -24352 : Gladiator's Destiny -24353 : Gladiator's Triumphus -24354 : Gladiator's Nostalgia -24355 : Gladiator's Longing -24361 : Gladiator's Intoxication -24362 : Gladiator's Destiny -24363 : Gladiator's Triumphus -24364 : Gladiator's Nostalgia -24365 : Gladiator's Longing -24601 : Scarlet Vessel -24602 : Sundered Feather -24603 : Ornate Kabuto -24604 : Magnificent Tsuba -24605 : Storm Cage -24611 : Scarlet Vessel -24612 : Sundered Feather -24613 : Ornate Kabuto -24614 : Magnificent Tsuba -24615 : Storm Cage -24621 : Scarlet Vessel -24622 : Sundered Feather -24623 : Ornate Kabuto -24624 : Magnificent Tsuba -24625 : Storm Cage -24631 : Royal Silver Urn -24632 : Royal Plume -24633 : Royal Masque -24634 : Royal Flora -24635 : Royal Pocket Watch -24641 : Royal Silver Urn -24642 : Royal Plume -24643 : Royal Masque -24644 : Royal Flora -24645 : Royal Pocket Watch -24651 : Viridescent Venerer's Vessel -24652 : Viridescent Arrow Feather -24653 : Viridescent Venerer's Diadem -24654 : In Remembrance of Viridescent Fields -24655 : Viridescent Venerer's Determination -24661 : Surpassing Cup -24662 : Wise Doctor's Pinion -24663 : Mocking Mask -24664 : Stainless Bloom -24665 : Moment of Cessation -24671 : Royal Silver Urn -24672 : Royal Plume -24673 : Royal Masque -24674 : Royal Flora -24675 : Royal Pocket Watch -24681 : Witch's Heart Flames -24682 : Witch's Ever-Burning Plume -24683 : Witch's Scorching Hat -24684 : Witch's Flower of Blaze -24685 : Witch's End Time -24691 : Viridescent Venerer's Vessel -24692 : Viridescent Arrow Feather -24693 : Viridescent Venerer's Diadem -24694 : In Remembrance of Viridescent Fields -24695 : Viridescent Venerer's Determination -24701 : Noble's Pledging Vessel -24702 : Ceremonial War-Plume -24703 : General's Ancient Helm -24704 : Flower of Accolades -24705 : Orichalceous Time-Dial -24711 : Bloodstained Chevalier's Goblet -24712 : Bloodstained Black Plume -24713 : Bloodstained Iron Mask -24714 : Bloodstained Flower of Iron -24715 : Bloodstained Final Hour -24721 : Omen of Thunderstorm -24722 : Survivor of Catastrophe -24723 : Thunder Summoner's Crown -24724 : Thunderbird's Mercy -24725 : Hourglass of Thunder -24731 : Scarlet Vessel -24732 : Sundered Feather -24733 : Ornate Kabuto -24734 : Magnificent Tsuba -24735 : Storm Cage -24741 : Gladiator's Intoxication -24742 : Gladiator's Destiny -24743 : Mask of Solitude Basalt -24744 : Flower of Creviced Cliff -24745 : Sundial of Enduring Jade -24751 : Gladiator's Intoxication -24752 : Gladiator's Destiny -24753 : Thunder Summoner's Crown -24754 : Thunderbird's Mercy -24755 : Hourglass of Thunder -24761 : Gladiator's Intoxication -24762 : Gladiator's Destiny -24763 : Gladiator's Triumphus -24764 : Gladiator's Nostalgia -24765 : Gladiator's Longing -24771 : Scarlet Vessel -24772 : Sundered Feather -24773 : Ornate Kabuto -24774 : Magnificent Tsuba -24775 : Storm Cage -24781 : Summer Night's Waterballoon -24782 : Summer Night's Finale -24783 : Summer Night's Mask -24784 : Summer Night's Bloom -24785 : Summer Night's Moment -24791 : Maiden's Fleeting Leisure -24792 : Maiden's Heart-Stricken Infatuation -24793 : Maiden's Fading Beauty -24794 : Maiden's Distant Love -24795 : Maiden's Passing Youth -24801 : Scarlet Vessel -24802 : Sundered Feather -24803 : Ornate Kabuto -24804 : Magnificent Tsuba -24805 : Storm Cage -24811 : Calabash of Awakening -24812 : Plume of Luxury -24813 : Skeletal Hat -24814 : Bloom Times -24815 : Song of Life -24821 : Calabash of Awakening -24822 : Plume of Luxury -24823 : Skeletal Hat -24824 : Bloom Times -24825 : Song of Life -51110 : Goblet of the Sojourner -51111 : Goblet of the Sojourner -51112 : Goblet of the Sojourner -51113 : Goblet of the Sojourner -51114 : Goblet of the Sojourner -51120 : Feather of Homecoming -51121 : Feather of Homecoming -51122 : Feather of Homecoming -51123 : Feather of Homecoming -51124 : Feather of Homecoming -51130 : Crown of Parting -51131 : Crown of Parting -51132 : Crown of Parting -51133 : Crown of Parting -51134 : Crown of Parting -51140 : Heart of Comradeship -51141 : Heart of Comradeship -51142 : Heart of Comradeship -51143 : Heart of Comradeship -51144 : Heart of Comradeship -51150 : Sundial of the Sojourner -51151 : Sundial of the Sojourner -51152 : Sundial of the Sojourner -51153 : Sundial of the Sojourner -51154 : Sundial of the Sojourner -51210 : Goblet of the Sojourner -51211 : Goblet of the Sojourner -51212 : Goblet of the Sojourner -51213 : Goblet of the Sojourner -51214 : Goblet of the Sojourner -51220 : Feather of Homecoming -51221 : Feather of Homecoming -51222 : Feather of Homecoming -51223 : Feather of Homecoming -51224 : Feather of Homecoming -51230 : Crown of Parting -51231 : Crown of Parting -51232 : Crown of Parting -51233 : Crown of Parting -51234 : Crown of Parting -51240 : Heart of Comradeship -51241 : Heart of Comradeship -51242 : Heart of Comradeship -51243 : Heart of Comradeship -51244 : Heart of Comradeship -51250 : Sundial of the Sojourner -51251 : Sundial of the Sojourner -51252 : Sundial of the Sojourner -51253 : Sundial of the Sojourner -51254 : Sundial of the Sojourner -51310 : Goblet of the Sojourner -51311 : Goblet of the Sojourner -51312 : Goblet of the Sojourner -51313 : Goblet of the Sojourner -51314 : Goblet of the Sojourner -51320 : Feather of Homecoming -51321 : Feather of Homecoming -51322 : Feather of Homecoming -51323 : Feather of Homecoming -51324 : Feather of Homecoming -51330 : Crown of Parting -51331 : Crown of Parting -51332 : Crown of Parting -51333 : Crown of Parting -51334 : Crown of Parting -51340 : Heart of Comradeship -51341 : Heart of Comradeship -51342 : Heart of Comradeship -51343 : Heart of Comradeship -51344 : Heart of Comradeship -51350 : Sundial of the Sojourner -51351 : Sundial of the Sojourner -51352 : Sundial of the Sojourner -51353 : Sundial of the Sojourner -51354 : Sundial of the Sojourner -51410 : Goblet of the Sojourner -51411 : Goblet of the Sojourner -51412 : Goblet of the Sojourner -51413 : Goblet of the Sojourner -51414 : Goblet of the Sojourner -51420 : Feather of Homecoming -51421 : Feather of Homecoming -51422 : Feather of Homecoming -51423 : Feather of Homecoming -51424 : Feather of Homecoming -51430 : Crown of Parting -51431 : Crown of Parting -51432 : Crown of Parting -51433 : Crown of Parting -51434 : Crown of Parting -51440 : Heart of Comradeship -51441 : Heart of Comradeship -51442 : Heart of Comradeship -51443 : Heart of Comradeship -51444 : Heart of Comradeship -51450 : Sundial of the Sojourner -51451 : Sundial of the Sojourner -51452 : Sundial of the Sojourner -51453 : Sundial of the Sojourner -51454 : Sundial of the Sojourner -51510 : Goblet of the Sojourner -51511 : Goblet of the Sojourner -51512 : Goblet of the Sojourner -51513 : Goblet of the Sojourner -51514 : Goblet of the Sojourner -51520 : Feather of Homecoming -51521 : Feather of Homecoming -51522 : Feather of Homecoming -51523 : Feather of Homecoming -51524 : Feather of Homecoming -51530 : Crown of Parting -51531 : Crown of Parting -51532 : Crown of Parting -51533 : Crown of Parting -51534 : Crown of Parting -51540 : Heart of Comradeship -51541 : Heart of Comradeship -51542 : Heart of Comradeship -51543 : Heart of Comradeship -51544 : Heart of Comradeship -51550 : Sundial of the Sojourner -51551 : Sundial of the Sojourner -51552 : Sundial of the Sojourner -51553 : Sundial of the Sojourner -51554 : Sundial of the Sojourner -52110 : Outset of the Brave -52111 : Outset of the Brave -52112 : Outset of the Brave -52113 : Outset of the Brave -52114 : Outset of the Brave -52120 : Prospect of the Brave -52121 : Prospect of the Brave -52122 : Prospect of the Brave -52123 : Prospect of the Brave -52124 : Prospect of the Brave -52130 : Crown of the Brave -52131 : Crown of the Brave -52132 : Crown of the Brave -52133 : Crown of the Brave -52134 : Crown of the Brave -52140 : Medal of the Brave -52141 : Medal of the Brave -52142 : Medal of the Brave -52143 : Medal of the Brave -52144 : Medal of the Brave -52150 : Fortitude of the Brave -52151 : Fortitude of the Brave -52152 : Fortitude of the Brave -52153 : Fortitude of the Brave -52154 : Fortitude of the Brave -52210 : Outset of the Brave -52211 : Outset of the Brave -52212 : Outset of the Brave -52213 : Outset of the Brave -52214 : Outset of the Brave -52220 : Prospect of the Brave -52221 : Prospect of the Brave -52222 : Prospect of the Brave -52223 : Prospect of the Brave -52224 : Prospect of the Brave -52230 : Crown of the Brave -52231 : Crown of the Brave -52232 : Crown of the Brave -52233 : Crown of the Brave -52234 : Crown of the Brave -52240 : Medal of the Brave -52241 : Medal of the Brave -52242 : Medal of the Brave -52243 : Medal of the Brave -52244 : Medal of the Brave -52250 : Fortitude of the Brave -52251 : Fortitude of the Brave -52252 : Fortitude of the Brave -52253 : Fortitude of the Brave -52254 : Fortitude of the Brave -52310 : Outset of the Brave -52311 : Outset of the Brave -52312 : Outset of the Brave -52313 : Outset of the Brave -52314 : Outset of the Brave -52320 : Prospect of the Brave -52321 : Prospect of the Brave -52322 : Prospect of the Brave -52323 : Prospect of the Brave -52324 : Prospect of the Brave -52330 : Crown of the Brave -52331 : Crown of the Brave -52332 : Crown of the Brave -52333 : Crown of the Brave -52334 : Crown of the Brave -52340 : Medal of the Brave -52341 : Medal of the Brave -52342 : Medal of the Brave -52343 : Medal of the Brave -52344 : Medal of the Brave -52350 : Fortitude of the Brave -52351 : Fortitude of the Brave -52352 : Fortitude of the Brave -52353 : Fortitude of the Brave -52354 : Fortitude of the Brave -52410 : Outset of the Brave -52411 : Outset of the Brave -52412 : Outset of the Brave -52413 : Outset of the Brave -52414 : Outset of the Brave -52420 : Prospect of the Brave -52421 : Prospect of the Brave -52422 : Prospect of the Brave -52423 : Prospect of the Brave -52424 : Prospect of the Brave -52430 : Crown of the Brave -52431 : Crown of the Brave -52432 : Crown of the Brave -52433 : Crown of the Brave -52434 : Crown of the Brave -52440 : Medal of the Brave -52441 : Medal of the Brave -52442 : Medal of the Brave -52443 : Medal of the Brave -52444 : Medal of the Brave -52450 : Fortitude of the Brave -52451 : Fortitude of the Brave -52452 : Fortitude of the Brave -52453 : Fortitude of the Brave -52454 : Fortitude of the Brave -52510 : Outset of the Brave -52511 : Outset of the Brave -52512 : Outset of the Brave -52513 : Outset of the Brave -52514 : Outset of the Brave -52520 : Prospect of the Brave -52521 : Prospect of the Brave -52522 : Prospect of the Brave -52523 : Prospect of the Brave -52524 : Prospect of the Brave -52530 : Crown of the Brave -52531 : Crown of the Brave -52532 : Crown of the Brave -52533 : Crown of the Brave -52534 : Crown of the Brave -52540 : Medal of the Brave -52541 : Medal of the Brave -52542 : Medal of the Brave -52543 : Medal of the Brave -52544 : Medal of the Brave -52550 : Fortitude of the Brave -52551 : Fortitude of the Brave -52552 : Fortitude of the Brave -52553 : Fortitude of the Brave -52554 : Fortitude of the Brave -53110 : Guardian's Vessel -53111 : Guardian's Vessel -53112 : Guardian's Vessel -53113 : Guardian's Vessel -53114 : Guardian's Vessel -53120 : Guardian's Sigil -53121 : Guardian's Sigil -53122 : Guardian's Sigil -53123 : Guardian's Sigil -53124 : Guardian's Sigil -53130 : Guardian's Band -53131 : Guardian's Band -53132 : Guardian's Band -53133 : Guardian's Band -53134 : Guardian's Band -53140 : Guardian's Flower -53141 : Guardian's Flower -53142 : Guardian's Flower -53143 : Guardian's Flower -53144 : Guardian's Flower -53150 : Guardian's Clock -53151 : Guardian's Clock -53152 : Guardian's Clock -53153 : Guardian's Clock -53154 : Guardian's Clock -53210 : Guardian's Vessel -53211 : Guardian's Vessel -53212 : Guardian's Vessel -53213 : Guardian's Vessel -53214 : Guardian's Vessel -53220 : Guardian's Sigil -53221 : Guardian's Sigil -53222 : Guardian's Sigil -53223 : Guardian's Sigil -53224 : Guardian's Sigil -53230 : Guardian's Band -53231 : Guardian's Band -53232 : Guardian's Band -53233 : Guardian's Band -53234 : Guardian's Band -53240 : Guardian's Flower -53241 : Guardian's Flower -53242 : Guardian's Flower -53243 : Guardian's Flower -53244 : Guardian's Flower -53250 : Guardian's Clock -53251 : Guardian's Clock -53252 : Guardian's Clock -53253 : Guardian's Clock -53254 : Guardian's Clock -53310 : Guardian's Vessel -53311 : Guardian's Vessel -53312 : Guardian's Vessel -53313 : Guardian's Vessel -53314 : Guardian's Vessel -53320 : Guardian's Sigil -53321 : Guardian's Sigil -53322 : Guardian's Sigil -53323 : Guardian's Sigil -53324 : Guardian's Sigil -53330 : Guardian's Band -53331 : Guardian's Band -53332 : Guardian's Band -53333 : Guardian's Band -53334 : Guardian's Band -53340 : Guardian's Flower -53341 : Guardian's Flower -53342 : Guardian's Flower -53343 : Guardian's Flower -53344 : Guardian's Flower -53350 : Guardian's Clock -53351 : Guardian's Clock -53352 : Guardian's Clock -53353 : Guardian's Clock -53354 : Guardian's Clock -53410 : Guardian's Vessel -53411 : Guardian's Vessel -53412 : Guardian's Vessel -53413 : Guardian's Vessel -53414 : Guardian's Vessel -53420 : Guardian's Sigil -53421 : Guardian's Sigil -53422 : Guardian's Sigil -53423 : Guardian's Sigil -53424 : Guardian's Sigil -53430 : Guardian's Band -53431 : Guardian's Band -53432 : Guardian's Band -53433 : Guardian's Band -53434 : Guardian's Band -53440 : Guardian's Flower -53441 : Guardian's Flower -53442 : Guardian's Flower -53443 : Guardian's Flower -53444 : Guardian's Flower -53450 : Guardian's Clock -53451 : Guardian's Clock -53452 : Guardian's Clock -53453 : Guardian's Clock -53454 : Guardian's Clock -53510 : Guardian's Vessel -53511 : Guardian's Vessel -53512 : Guardian's Vessel -53513 : Guardian's Vessel -53514 : Guardian's Vessel -53520 : Guardian's Sigil -53521 : Guardian's Sigil -53522 : Guardian's Sigil -53523 : Guardian's Sigil -53524 : Guardian's Sigil -53530 : Guardian's Band -53531 : Guardian's Band -53532 : Guardian's Band -53533 : Guardian's Band -53534 : Guardian's Band -53540 : Guardian's Flower -53541 : Guardian's Flower -53542 : Guardian's Flower -53543 : Guardian's Flower -53544 : Guardian's Flower -53550 : Guardian's Clock -53551 : Guardian's Clock -53552 : Guardian's Clock -53553 : Guardian's Clock -53554 : Guardian's Clock -54110 : Tiny Miracle's Goblet -54111 : Tiny Miracle's Goblet -54112 : Tiny Miracle's Goblet -54113 : Tiny Miracle's Goblet -54114 : Tiny Miracle's Goblet -54120 : Tiny Miracle's Feather -54121 : Tiny Miracle's Feather -54122 : Tiny Miracle's Feather -54123 : Tiny Miracle's Feather -54124 : Tiny Miracle's Feather -54130 : Tiny Miracle's Earrings -54131 : Tiny Miracle's Earrings -54132 : Tiny Miracle's Earrings -54133 : Tiny Miracle's Earrings -54134 : Tiny Miracle's Earrings -54140 : Tiny Miracle's Flower -54141 : Tiny Miracle's Flower -54142 : Tiny Miracle's Flower -54143 : Tiny Miracle's Flower -54144 : Tiny Miracle's Flower -54150 : Tiny Miracle's Hourglass -54151 : Tiny Miracle's Hourglass -54152 : Tiny Miracle's Hourglass -54153 : Tiny Miracle's Hourglass -54154 : Tiny Miracle's Hourglass -54210 : Tiny Miracle's Goblet -54211 : Tiny Miracle's Goblet -54212 : Tiny Miracle's Goblet -54213 : Tiny Miracle's Goblet -54214 : Tiny Miracle's Goblet -54220 : Tiny Miracle's Feather -54221 : Tiny Miracle's Feather -54222 : Tiny Miracle's Feather -54223 : Tiny Miracle's Feather -54224 : Tiny Miracle's Feather -54230 : Tiny Miracle's Earrings -54231 : Tiny Miracle's Earrings -54232 : Tiny Miracle's Earrings -54233 : Tiny Miracle's Earrings -54234 : Tiny Miracle's Earrings -54240 : Tiny Miracle's Flower -54241 : Tiny Miracle's Flower -54242 : Tiny Miracle's Flower -54243 : Tiny Miracle's Flower -54244 : Tiny Miracle's Flower -54250 : Tiny Miracle's Hourglass -54251 : Tiny Miracle's Hourglass -54252 : Tiny Miracle's Hourglass -54253 : Tiny Miracle's Hourglass -54254 : Tiny Miracle's Hourglass -54310 : Tiny Miracle's Goblet -54311 : Tiny Miracle's Goblet -54312 : Tiny Miracle's Goblet -54313 : Tiny Miracle's Goblet -54314 : Tiny Miracle's Goblet -54320 : Tiny Miracle's Feather -54321 : Tiny Miracle's Feather -54322 : Tiny Miracle's Feather -54323 : Tiny Miracle's Feather -54324 : Tiny Miracle's Feather -54330 : Tiny Miracle's Earrings -54331 : Tiny Miracle's Earrings -54332 : Tiny Miracle's Earrings -54333 : Tiny Miracle's Earrings -54334 : Tiny Miracle's Earrings -54340 : Tiny Miracle's Flower -54341 : Tiny Miracle's Flower -54342 : Tiny Miracle's Flower -54343 : Tiny Miracle's Flower -54344 : Tiny Miracle's Flower -54350 : Tiny Miracle's Hourglass -54351 : Tiny Miracle's Hourglass -54352 : Tiny Miracle's Hourglass -54353 : Tiny Miracle's Hourglass -54354 : Tiny Miracle's Hourglass -54410 : Tiny Miracle's Goblet -54411 : Tiny Miracle's Goblet -54412 : Tiny Miracle's Goblet -54413 : Tiny Miracle's Goblet -54414 : Tiny Miracle's Goblet -54420 : Tiny Miracle's Feather -54421 : Tiny Miracle's Feather -54422 : Tiny Miracle's Feather -54423 : Tiny Miracle's Feather -54424 : Tiny Miracle's Feather -54430 : Tiny Miracle's Earrings -54431 : Tiny Miracle's Earrings -54432 : Tiny Miracle's Earrings -54433 : Tiny Miracle's Earrings -54434 : Tiny Miracle's Earrings -54440 : Tiny Miracle's Flower -54441 : Tiny Miracle's Flower -54442 : Tiny Miracle's Flower -54443 : Tiny Miracle's Flower -54444 : Tiny Miracle's Flower -54450 : Tiny Miracle's Hourglass -54451 : Tiny Miracle's Hourglass -54452 : Tiny Miracle's Hourglass -54453 : Tiny Miracle's Hourglass -54454 : Tiny Miracle's Hourglass -54510 : Tiny Miracle's Goblet -54511 : Tiny Miracle's Goblet -54512 : Tiny Miracle's Goblet -54513 : Tiny Miracle's Goblet -54514 : Tiny Miracle's Goblet -54520 : Tiny Miracle's Feather -54521 : Tiny Miracle's Feather -54522 : Tiny Miracle's Feather -54523 : Tiny Miracle's Feather -54524 : Tiny Miracle's Feather -54530 : Tiny Miracle's Earrings -54531 : Tiny Miracle's Earrings -54532 : Tiny Miracle's Earrings -54533 : Tiny Miracle's Earrings -54534 : Tiny Miracle's Earrings -54540 : Tiny Miracle's Flower -54541 : Tiny Miracle's Flower -54542 : Tiny Miracle's Flower -54543 : Tiny Miracle's Flower -54544 : Tiny Miracle's Flower -54550 : Tiny Miracle's Hourglass -54551 : Tiny Miracle's Hourglass -54552 : Tiny Miracle's Hourglass -54553 : Tiny Miracle's Hourglass -54554 : Tiny Miracle's Hourglass -55110 : Berserker's Bone Goblet -55111 : Berserker's Bone Goblet -55112 : Berserker's Bone Goblet -55113 : Berserker's Bone Goblet -55114 : Berserker's Bone Goblet -55120 : Berserker's Indigo Feather -55121 : Berserker's Indigo Feather -55122 : Berserker's Indigo Feather -55123 : Berserker's Indigo Feather -55124 : Berserker's Indigo Feather -55130 : Berserker's Battle Mask -55131 : Berserker's Battle Mask -55132 : Berserker's Battle Mask -55133 : Berserker's Battle Mask -55134 : Berserker's Battle Mask -55140 : Berserker's Rose -55141 : Berserker's Rose -55142 : Berserker's Rose -55143 : Berserker's Rose -55144 : Berserker's Rose -55150 : Berserker's Timepiece -55151 : Berserker's Timepiece -55152 : Berserker's Timepiece -55153 : Berserker's Timepiece -55154 : Berserker's Timepiece -55210 : Berserker's Bone Goblet -55211 : Berserker's Bone Goblet -55212 : Berserker's Bone Goblet -55213 : Berserker's Bone Goblet -55214 : Berserker's Bone Goblet -55220 : Berserker's Indigo Feather -55221 : Berserker's Indigo Feather -55222 : Berserker's Indigo Feather -55223 : Berserker's Indigo Feather -55224 : Berserker's Indigo Feather -55230 : Berserker's Battle Mask -55231 : Berserker's Battle Mask -55232 : Berserker's Battle Mask -55233 : Berserker's Battle Mask -55234 : Berserker's Battle Mask -55240 : Berserker's Rose -55241 : Berserker's Rose -55242 : Berserker's Rose -55243 : Berserker's Rose -55244 : Berserker's Rose -55250 : Berserker's Timepiece -55251 : Berserker's Timepiece -55252 : Berserker's Timepiece -55253 : Berserker's Timepiece -55254 : Berserker's Timepiece -55310 : Berserker's Bone Goblet -55311 : Berserker's Bone Goblet -55312 : Berserker's Bone Goblet -55313 : Berserker's Bone Goblet -55314 : Berserker's Bone Goblet -55320 : Berserker's Indigo Feather -55321 : Berserker's Indigo Feather -55322 : Berserker's Indigo Feather -55323 : Berserker's Indigo Feather -55324 : Berserker's Indigo Feather -55330 : Berserker's Battle Mask -55331 : Berserker's Battle Mask -55332 : Berserker's Battle Mask -55333 : Berserker's Battle Mask -55334 : Berserker's Battle Mask -55340 : Berserker's Rose -55341 : Berserker's Rose -55342 : Berserker's Rose -55343 : Berserker's Rose -55344 : Berserker's Rose -55350 : Berserker's Timepiece -55351 : Berserker's Timepiece -55352 : Berserker's Timepiece -55353 : Berserker's Timepiece -55354 : Berserker's Timepiece -55410 : Berserker's Bone Goblet -55411 : Berserker's Bone Goblet -55412 : Berserker's Bone Goblet -55413 : Berserker's Bone Goblet -55414 : Berserker's Bone Goblet -55420 : Berserker's Indigo Feather -55421 : Berserker's Indigo Feather -55422 : Berserker's Indigo Feather -55423 : Berserker's Indigo Feather -55424 : Berserker's Indigo Feather -55430 : Berserker's Battle Mask -55431 : Berserker's Battle Mask -55432 : Berserker's Battle Mask -55433 : Berserker's Battle Mask -55434 : Berserker's Battle Mask -55440 : Berserker's Rose -55441 : Berserker's Rose -55442 : Berserker's Rose -55443 : Berserker's Rose -55444 : Berserker's Rose -55450 : Berserker's Timepiece -55451 : Berserker's Timepiece -55452 : Berserker's Timepiece -55453 : Berserker's Timepiece -55454 : Berserker's Timepiece -55510 : Berserker's Bone Goblet -55511 : Berserker's Bone Goblet -55512 : Berserker's Bone Goblet -55513 : Berserker's Bone Goblet -55514 : Berserker's Bone Goblet -55520 : Berserker's Indigo Feather -55521 : Berserker's Indigo Feather -55522 : Berserker's Indigo Feather -55523 : Berserker's Indigo Feather -55524 : Berserker's Indigo Feather -55530 : Berserker's Battle Mask -55531 : Berserker's Battle Mask -55532 : Berserker's Battle Mask -55533 : Berserker's Battle Mask -55534 : Berserker's Battle Mask -55540 : Berserker's Rose -55541 : Berserker's Rose -55542 : Berserker's Rose -55543 : Berserker's Rose -55544 : Berserker's Rose -55550 : Berserker's Timepiece -55551 : Berserker's Timepiece -55552 : Berserker's Timepiece -55553 : Berserker's Timepiece -55554 : Berserker's Timepiece -56110 : Martial Artist's Wine Cup -56111 : Martial Artist's Wine Cup -56112 : Martial Artist's Wine Cup -56113 : Martial Artist's Wine Cup -56114 : Martial Artist's Wine Cup -56120 : Martial Artist's Feather Accessory -56121 : Martial Artist's Feather Accessory -56122 : Martial Artist's Feather Accessory -56123 : Martial Artist's Feather Accessory -56124 : Martial Artist's Feather Accessory -56130 : Martial Artist's Bandana -56131 : Martial Artist's Bandana -56132 : Martial Artist's Bandana -56133 : Martial Artist's Bandana -56134 : Martial Artist's Bandana -56140 : Martial Artist's Red Flower -56141 : Martial Artist's Red Flower -56142 : Martial Artist's Red Flower -56143 : Martial Artist's Red Flower -56144 : Martial Artist's Red Flower -56150 : Martial Artist's Water Hourglass -56151 : Martial Artist's Water Hourglass -56152 : Martial Artist's Water Hourglass -56153 : Martial Artist's Water Hourglass -56154 : Martial Artist's Water Hourglass -56210 : Martial Artist's Wine Cup -56211 : Martial Artist's Wine Cup -56212 : Martial Artist's Wine Cup -56213 : Martial Artist's Wine Cup -56214 : Martial Artist's Wine Cup -56220 : Martial Artist's Feather Accessory -56221 : Martial Artist's Feather Accessory -56222 : Martial Artist's Feather Accessory -56223 : Martial Artist's Feather Accessory -56224 : Martial Artist's Feather Accessory -56230 : Martial Artist's Bandana -56231 : Martial Artist's Bandana -56232 : Martial Artist's Bandana -56233 : Martial Artist's Bandana -56234 : Martial Artist's Bandana -56240 : Martial Artist's Red Flower -56241 : Martial Artist's Red Flower -56242 : Martial Artist's Red Flower -56243 : Martial Artist's Red Flower -56244 : Martial Artist's Red Flower -56250 : Martial Artist's Water Hourglass -56251 : Martial Artist's Water Hourglass -56252 : Martial Artist's Water Hourglass -56253 : Martial Artist's Water Hourglass -56254 : Martial Artist's Water Hourglass -56310 : Martial Artist's Wine Cup -56311 : Martial Artist's Wine Cup -56312 : Martial Artist's Wine Cup -56313 : Martial Artist's Wine Cup -56314 : Martial Artist's Wine Cup -56320 : Martial Artist's Feather Accessory -56321 : Martial Artist's Feather Accessory -56322 : Martial Artist's Feather Accessory -56323 : Martial Artist's Feather Accessory -56324 : Martial Artist's Feather Accessory -56330 : Martial Artist's Bandana -56331 : Martial Artist's Bandana -56332 : Martial Artist's Bandana -56333 : Martial Artist's Bandana -56334 : Martial Artist's Bandana -56340 : Martial Artist's Red Flower -56341 : Martial Artist's Red Flower -56342 : Martial Artist's Red Flower -56343 : Martial Artist's Red Flower -56344 : Martial Artist's Red Flower -56350 : Martial Artist's Water Hourglass -56351 : Martial Artist's Water Hourglass -56352 : Martial Artist's Water Hourglass -56353 : Martial Artist's Water Hourglass -56354 : Martial Artist's Water Hourglass -56410 : Martial Artist's Wine Cup -56411 : Martial Artist's Wine Cup -56412 : Martial Artist's Wine Cup -56413 : Martial Artist's Wine Cup -56414 : Martial Artist's Wine Cup -56420 : Martial Artist's Feather Accessory -56421 : Martial Artist's Feather Accessory -56422 : Martial Artist's Feather Accessory -56423 : Martial Artist's Feather Accessory -56424 : Martial Artist's Feather Accessory -56430 : Martial Artist's Bandana -56431 : Martial Artist's Bandana -56432 : Martial Artist's Bandana -56433 : Martial Artist's Bandana -56434 : Martial Artist's Bandana -56440 : Martial Artist's Red Flower -56441 : Martial Artist's Red Flower -56442 : Martial Artist's Red Flower -56443 : Martial Artist's Red Flower -56444 : Martial Artist's Red Flower -56450 : Martial Artist's Water Hourglass -56451 : Martial Artist's Water Hourglass -56452 : Martial Artist's Water Hourglass -56453 : Martial Artist's Water Hourglass -56454 : Martial Artist's Water Hourglass -56510 : Martial Artist's Wine Cup -56511 : Martial Artist's Wine Cup -56512 : Martial Artist's Wine Cup -56513 : Martial Artist's Wine Cup -56514 : Martial Artist's Wine Cup -56520 : Martial Artist's Feather Accessory -56521 : Martial Artist's Feather Accessory -56522 : Martial Artist's Feather Accessory -56523 : Martial Artist's Feather Accessory -56524 : Martial Artist's Feather Accessory -56530 : Martial Artist's Bandana -56531 : Martial Artist's Bandana -56532 : Martial Artist's Bandana -56533 : Martial Artist's Bandana -56534 : Martial Artist's Bandana -56540 : Martial Artist's Red Flower -56541 : Martial Artist's Red Flower -56542 : Martial Artist's Red Flower -56543 : Martial Artist's Red Flower -56544 : Martial Artist's Red Flower -56550 : Martial Artist's Water Hourglass -56551 : Martial Artist's Water Hourglass -56552 : Martial Artist's Water Hourglass -56553 : Martial Artist's Water Hourglass -56554 : Martial Artist's Water Hourglass -57110 : Instructor's Tea Cup -57111 : Instructor's Tea Cup -57112 : Instructor's Tea Cup -57113 : Instructor's Tea Cup -57114 : Instructor's Tea Cup -57120 : Instructor's Feather Accessory -57121 : Instructor's Feather Accessory -57122 : Instructor's Feather Accessory -57123 : Instructor's Feather Accessory -57124 : Instructor's Feather Accessory -57130 : Instructor's Cap -57131 : Instructor's Cap -57132 : Instructor's Cap -57133 : Instructor's Cap -57134 : Instructor's Cap -57140 : Instructor's Brooch -57141 : Instructor's Brooch -57142 : Instructor's Brooch -57143 : Instructor's Brooch -57144 : Instructor's Brooch -57150 : Instructor's Pocket Watch -57151 : Instructor's Pocket Watch -57152 : Instructor's Pocket Watch -57153 : Instructor's Pocket Watch -57154 : Instructor's Pocket Watch -57210 : Instructor's Tea Cup -57211 : Instructor's Tea Cup -57212 : Instructor's Tea Cup -57213 : Instructor's Tea Cup -57214 : Instructor's Tea Cup -57220 : Instructor's Feather Accessory -57221 : Instructor's Feather Accessory -57222 : Instructor's Feather Accessory -57223 : Instructor's Feather Accessory -57224 : Instructor's Feather Accessory -57230 : Instructor's Cap -57231 : Instructor's Cap -57232 : Instructor's Cap -57233 : Instructor's Cap -57234 : Instructor's Cap -57240 : Instructor's Brooch -57241 : Instructor's Brooch -57242 : Instructor's Brooch -57243 : Instructor's Brooch -57244 : Instructor's Brooch -57250 : Instructor's Pocket Watch -57251 : Instructor's Pocket Watch -57252 : Instructor's Pocket Watch -57253 : Instructor's Pocket Watch -57254 : Instructor's Pocket Watch -57310 : Instructor's Tea Cup -57311 : Instructor's Tea Cup -57312 : Instructor's Tea Cup -57313 : Instructor's Tea Cup -57314 : Instructor's Tea Cup -57320 : Instructor's Feather Accessory -57321 : Instructor's Feather Accessory -57322 : Instructor's Feather Accessory -57323 : Instructor's Feather Accessory -57324 : Instructor's Feather Accessory -57330 : Instructor's Cap -57331 : Instructor's Cap -57332 : Instructor's Cap -57333 : Instructor's Cap -57334 : Instructor's Cap -57340 : Instructor's Brooch -57341 : Instructor's Brooch -57342 : Instructor's Brooch -57343 : Instructor's Brooch -57344 : Instructor's Brooch -57350 : Instructor's Pocket Watch -57351 : Instructor's Pocket Watch -57352 : Instructor's Pocket Watch -57353 : Instructor's Pocket Watch -57354 : Instructor's Pocket Watch -57410 : Instructor's Tea Cup -57411 : Instructor's Tea Cup -57412 : Instructor's Tea Cup -57413 : Instructor's Tea Cup -57414 : Instructor's Tea Cup -57420 : Instructor's Feather Accessory -57421 : Instructor's Feather Accessory -57422 : Instructor's Feather Accessory -57423 : Instructor's Feather Accessory -57424 : Instructor's Feather Accessory -57430 : Instructor's Cap -57431 : Instructor's Cap -57432 : Instructor's Cap -57433 : Instructor's Cap -57434 : Instructor's Cap -57440 : Instructor's Brooch -57441 : Instructor's Brooch -57442 : Instructor's Brooch -57443 : Instructor's Brooch -57444 : Instructor's Brooch -57450 : Instructor's Pocket Watch -57451 : Instructor's Pocket Watch -57452 : Instructor's Pocket Watch -57453 : Instructor's Pocket Watch -57454 : Instructor's Pocket Watch -57510 : Instructor's Tea Cup -57511 : Instructor's Tea Cup -57512 : Instructor's Tea Cup -57513 : Instructor's Tea Cup -57514 : Instructor's Tea Cup -57520 : Instructor's Feather Accessory -57521 : Instructor's Feather Accessory -57522 : Instructor's Feather Accessory -57523 : Instructor's Feather Accessory -57524 : Instructor's Feather Accessory -57530 : Instructor's Cap -57531 : Instructor's Cap -57532 : Instructor's Cap -57533 : Instructor's Cap -57534 : Instructor's Cap -57540 : Instructor's Brooch -57541 : Instructor's Brooch -57542 : Instructor's Brooch -57543 : Instructor's Brooch -57544 : Instructor's Brooch -57550 : Instructor's Pocket Watch -57551 : Instructor's Pocket Watch -57552 : Instructor's Pocket Watch -57553 : Instructor's Pocket Watch -57554 : Instructor's Pocket Watch -58210 : Gambler's Dice Cup -58211 : Gambler's Dice Cup -58212 : Gambler's Dice Cup -58213 : Gambler's Dice Cup -58214 : Gambler's Dice Cup -58220 : Gambler's Feather Accessory -58221 : Gambler's Feather Accessory -58222 : Gambler's Feather Accessory -58223 : Gambler's Feather Accessory -58224 : Gambler's Feather Accessory -58230 : Gambler's Earrings -58231 : Gambler's Earrings -58232 : Gambler's Earrings -58233 : Gambler's Earrings -58234 : Gambler's Earrings -58240 : Gambler's Brooch -58241 : Gambler's Brooch -58242 : Gambler's Brooch -58243 : Gambler's Brooch -58244 : Gambler's Brooch -58250 : Gambler's Pocket Watch -58251 : Gambler's Pocket Watch -58252 : Gambler's Pocket Watch -58253 : Gambler's Pocket Watch -58254 : Gambler's Pocket Watch -58310 : Gambler's Dice Cup -58311 : Gambler's Dice Cup -58312 : Gambler's Dice Cup -58313 : Gambler's Dice Cup -58314 : Gambler's Dice Cup -58320 : Gambler's Feather Accessory -58321 : Gambler's Feather Accessory -58322 : Gambler's Feather Accessory -58323 : Gambler's Feather Accessory -58324 : Gambler's Feather Accessory -58330 : Gambler's Earrings -58331 : Gambler's Earrings -58332 : Gambler's Earrings -58333 : Gambler's Earrings -58334 : Gambler's Earrings -58340 : Gambler's Brooch -58341 : Gambler's Brooch -58342 : Gambler's Brooch -58343 : Gambler's Brooch -58344 : Gambler's Brooch -58350 : Gambler's Pocket Watch -58351 : Gambler's Pocket Watch -58352 : Gambler's Pocket Watch -58353 : Gambler's Pocket Watch -58354 : Gambler's Pocket Watch -58410 : Gambler's Dice Cup -58411 : Gambler's Dice Cup -58412 : Gambler's Dice Cup -58413 : Gambler's Dice Cup -58414 : Gambler's Dice Cup -58420 : Gambler's Feather Accessory -58421 : Gambler's Feather Accessory -58422 : Gambler's Feather Accessory -58423 : Gambler's Feather Accessory -58424 : Gambler's Feather Accessory -58430 : Gambler's Earrings -58431 : Gambler's Earrings -58432 : Gambler's Earrings -58433 : Gambler's Earrings -58434 : Gambler's Earrings -58440 : Gambler's Brooch -58441 : Gambler's Brooch -58442 : Gambler's Brooch -58443 : Gambler's Brooch -58444 : Gambler's Brooch -58450 : Gambler's Pocket Watch -58451 : Gambler's Pocket Watch -58452 : Gambler's Pocket Watch -58453 : Gambler's Pocket Watch -58454 : Gambler's Pocket Watch -58510 : Gambler's Dice Cup -58511 : Gambler's Dice Cup -58512 : Gambler's Dice Cup -58513 : Gambler's Dice Cup -58514 : Gambler's Dice Cup -58520 : Gambler's Feather Accessory -58521 : Gambler's Feather Accessory -58522 : Gambler's Feather Accessory -58523 : Gambler's Feather Accessory -58524 : Gambler's Feather Accessory -58530 : Gambler's Earrings -58531 : Gambler's Earrings -58532 : Gambler's Earrings -58533 : Gambler's Earrings -58534 : Gambler's Earrings -58540 : Gambler's Brooch -58541 : Gambler's Brooch -58542 : Gambler's Brooch -58543 : Gambler's Brooch -58544 : Gambler's Brooch -58550 : Gambler's Pocket Watch -58551 : Gambler's Pocket Watch -58552 : Gambler's Pocket Watch -58553 : Gambler's Pocket Watch -58554 : Gambler's Pocket Watch -59110 : Exile's Goblet -59111 : Exile's Goblet -59112 : Exile's Goblet -59113 : Exile's Goblet -59114 : Exile's Goblet -59120 : Exile's Feather -59121 : Exile's Feather -59122 : Exile's Feather -59123 : Exile's Feather -59124 : Exile's Feather -59130 : Exile's Circlet -59131 : Exile's Circlet -59132 : Exile's Circlet -59133 : Exile's Circlet -59134 : Exile's Circlet -59140 : Exile's Flower -59141 : Exile's Flower -59142 : Exile's Flower -59143 : Exile's Flower -59144 : Exile's Flower -59150 : Exile's Pocket Watch -59151 : Exile's Pocket Watch -59152 : Exile's Pocket Watch -59153 : Exile's Pocket Watch -59154 : Exile's Pocket Watch -59210 : Exile's Goblet -59211 : Exile's Goblet -59212 : Exile's Goblet -59213 : Exile's Goblet -59214 : Exile's Goblet -59220 : Exile's Feather -59221 : Exile's Feather -59222 : Exile's Feather -59223 : Exile's Feather -59224 : Exile's Feather -59230 : Exile's Circlet -59231 : Exile's Circlet -59232 : Exile's Circlet -59233 : Exile's Circlet -59234 : Exile's Circlet -59240 : Exile's Flower -59241 : Exile's Flower -59242 : Exile's Flower -59243 : Exile's Flower -59244 : Exile's Flower -59250 : Exile's Pocket Watch -59251 : Exile's Pocket Watch -59252 : Exile's Pocket Watch -59253 : Exile's Pocket Watch -59254 : Exile's Pocket Watch -59310 : Exile's Goblet -59311 : Exile's Goblet -59312 : Exile's Goblet -59313 : Exile's Goblet -59314 : Exile's Goblet -59320 : Exile's Feather -59321 : Exile's Feather -59322 : Exile's Feather -59323 : Exile's Feather -59324 : Exile's Feather -59330 : Exile's Circlet -59331 : Exile's Circlet -59332 : Exile's Circlet -59333 : Exile's Circlet -59334 : Exile's Circlet -59340 : Exile's Flower -59341 : Exile's Flower -59342 : Exile's Flower -59343 : Exile's Flower -59344 : Exile's Flower -59350 : Exile's Pocket Watch -59351 : Exile's Pocket Watch -59352 : Exile's Pocket Watch -59353 : Exile's Pocket Watch -59354 : Exile's Pocket Watch -59410 : Exile's Goblet -59411 : Exile's Goblet -59412 : Exile's Goblet -59413 : Exile's Goblet -59414 : Exile's Goblet -59420 : Exile's Feather -59421 : Exile's Feather -59422 : Exile's Feather -59423 : Exile's Feather -59424 : Exile's Feather -59430 : Exile's Circlet -59431 : Exile's Circlet -59432 : Exile's Circlet -59433 : Exile's Circlet -59434 : Exile's Circlet -59440 : Exile's Flower -59441 : Exile's Flower -59442 : Exile's Flower -59443 : Exile's Flower -59444 : Exile's Flower -59450 : Exile's Pocket Watch -59451 : Exile's Pocket Watch -59452 : Exile's Pocket Watch -59453 : Exile's Pocket Watch -59454 : Exile's Pocket Watch -59510 : Exile's Goblet -59511 : Exile's Goblet -59512 : Exile's Goblet -59513 : Exile's Goblet -59514 : Exile's Goblet -59520 : Exile's Feather -59521 : Exile's Feather -59522 : Exile's Feather -59523 : Exile's Feather -59524 : Exile's Feather -59530 : Exile's Circlet -59531 : Exile's Circlet -59532 : Exile's Circlet -59533 : Exile's Circlet -59534 : Exile's Circlet -59540 : Exile's Flower -59541 : Exile's Flower -59542 : Exile's Flower -59543 : Exile's Flower -59544 : Exile's Flower -59550 : Exile's Pocket Watch -59551 : Exile's Pocket Watch -59552 : Exile's Pocket Watch -59553 : Exile's Pocket Watch -59554 : Exile's Pocket Watch -60110 : Adventurer's Golden Goblet -60111 : Adventurer's Golden Goblet -60112 : Adventurer's Golden Goblet -60113 : Adventurer's Golden Goblet -60114 : Adventurer's Golden Goblet -60120 : Adventurer's Tail Feather -60121 : Adventurer's Tail Feather -60122 : Adventurer's Tail Feather -60123 : Adventurer's Tail Feather -60124 : Adventurer's Tail Feather -60130 : Adventurer's Bandana -60131 : Adventurer's Bandana -60132 : Adventurer's Bandana -60133 : Adventurer's Bandana -60134 : Adventurer's Bandana -60140 : Adventurer's Flower -60141 : Adventurer's Flower -60142 : Adventurer's Flower -60143 : Adventurer's Flower -60144 : Adventurer's Flower -60150 : Adventurer's Pocket Watch -60151 : Adventurer's Pocket Watch -60152 : Adventurer's Pocket Watch -60153 : Adventurer's Pocket Watch -60154 : Adventurer's Pocket Watch -60210 : Adventurer's Golden Goblet -60211 : Adventurer's Golden Goblet -60212 : Adventurer's Golden Goblet -60213 : Adventurer's Golden Goblet -60214 : Adventurer's Golden Goblet -60220 : Adventurer's Tail Feather -60221 : Adventurer's Tail Feather -60222 : Adventurer's Tail Feather -60223 : Adventurer's Tail Feather -60224 : Adventurer's Tail Feather -60230 : Adventurer's Bandana -60231 : Adventurer's Bandana -60232 : Adventurer's Bandana -60233 : Adventurer's Bandana -60234 : Adventurer's Bandana -60240 : Adventurer's Flower -60241 : Adventurer's Flower -60242 : Adventurer's Flower -60243 : Adventurer's Flower -60244 : Adventurer's Flower -60250 : Adventurer's Pocket Watch -60251 : Adventurer's Pocket Watch -60252 : Adventurer's Pocket Watch -60253 : Adventurer's Pocket Watch -60254 : Adventurer's Pocket Watch -60310 : Adventurer's Golden Goblet -60311 : Adventurer's Golden Goblet -60312 : Adventurer's Golden Goblet -60313 : Adventurer's Golden Goblet -60314 : Adventurer's Golden Goblet -60320 : Adventurer's Tail Feather -60321 : Adventurer's Tail Feather -60322 : Adventurer's Tail Feather -60323 : Adventurer's Tail Feather -60324 : Adventurer's Tail Feather -60330 : Adventurer's Bandana -60331 : Adventurer's Bandana -60332 : Adventurer's Bandana -60333 : Adventurer's Bandana -60334 : Adventurer's Bandana -60340 : Adventurer's Flower -60341 : Adventurer's Flower -60342 : Adventurer's Flower -60343 : Adventurer's Flower -60344 : Adventurer's Flower -60350 : Adventurer's Pocket Watch -60351 : Adventurer's Pocket Watch -60352 : Adventurer's Pocket Watch -60353 : Adventurer's Pocket Watch -60354 : Adventurer's Pocket Watch -60410 : Adventurer's Golden Goblet -60411 : Adventurer's Golden Goblet -60412 : Adventurer's Golden Goblet -60413 : Adventurer's Golden Goblet -60414 : Adventurer's Golden Goblet -60420 : Adventurer's Tail Feather -60421 : Adventurer's Tail Feather -60422 : Adventurer's Tail Feather -60423 : Adventurer's Tail Feather -60424 : Adventurer's Tail Feather -60430 : Adventurer's Bandana -60431 : Adventurer's Bandana -60432 : Adventurer's Bandana -60433 : Adventurer's Bandana -60434 : Adventurer's Bandana -60440 : Adventurer's Flower -60441 : Adventurer's Flower -60442 : Adventurer's Flower -60443 : Adventurer's Flower -60444 : Adventurer's Flower -60450 : Adventurer's Pocket Watch -60451 : Adventurer's Pocket Watch -60452 : Adventurer's Pocket Watch -60453 : Adventurer's Pocket Watch -60454 : Adventurer's Pocket Watch -61110 : Lucky Dog's Goblet -61111 : Lucky Dog's Goblet -61112 : Lucky Dog's Goblet -61113 : Lucky Dog's Goblet -61114 : Lucky Dog's Goblet -61120 : Lucky Dog's Eagle Feather -61121 : Lucky Dog's Eagle Feather -61122 : Lucky Dog's Eagle Feather -61123 : Lucky Dog's Eagle Feather -61124 : Lucky Dog's Eagle Feather -61130 : Lucky Dog's Silver Circlet -61131 : Lucky Dog's Silver Circlet -61132 : Lucky Dog's Silver Circlet -61133 : Lucky Dog's Silver Circlet -61134 : Lucky Dog's Silver Circlet -61140 : Lucky Dog's Clover -61141 : Lucky Dog's Clover -61142 : Lucky Dog's Clover -61143 : Lucky Dog's Clover -61144 : Lucky Dog's Clover -61150 : Lucky Dog's Hourglass -61151 : Lucky Dog's Hourglass -61152 : Lucky Dog's Hourglass -61153 : Lucky Dog's Hourglass -61154 : Lucky Dog's Hourglass -61210 : Lucky Dog's Goblet -61211 : Lucky Dog's Goblet -61212 : Lucky Dog's Goblet -61213 : Lucky Dog's Goblet -61214 : Lucky Dog's Goblet -61220 : Lucky Dog's Eagle Feather -61221 : Lucky Dog's Eagle Feather -61222 : Lucky Dog's Eagle Feather -61223 : Lucky Dog's Eagle Feather -61224 : Lucky Dog's Eagle Feather -61230 : Lucky Dog's Silver Circlet -61231 : Lucky Dog's Silver Circlet -61232 : Lucky Dog's Silver Circlet -61233 : Lucky Dog's Silver Circlet -61234 : Lucky Dog's Silver Circlet -61240 : Lucky Dog's Clover -61241 : Lucky Dog's Clover -61242 : Lucky Dog's Clover -61243 : Lucky Dog's Clover -61244 : Lucky Dog's Clover -61250 : Lucky Dog's Hourglass -61251 : Lucky Dog's Hourglass -61252 : Lucky Dog's Hourglass -61253 : Lucky Dog's Hourglass -61254 : Lucky Dog's Hourglass -61310 : Lucky Dog's Goblet -61311 : Lucky Dog's Goblet -61312 : Lucky Dog's Goblet -61313 : Lucky Dog's Goblet -61314 : Lucky Dog's Goblet -61320 : Lucky Dog's Eagle Feather -61321 : Lucky Dog's Eagle Feather -61322 : Lucky Dog's Eagle Feather -61323 : Lucky Dog's Eagle Feather -61324 : Lucky Dog's Eagle Feather -61330 : Lucky Dog's Silver Circlet -61331 : Lucky Dog's Silver Circlet -61332 : Lucky Dog's Silver Circlet -61333 : Lucky Dog's Silver Circlet -61334 : Lucky Dog's Silver Circlet -61340 : Lucky Dog's Clover -61341 : Lucky Dog's Clover -61342 : Lucky Dog's Clover -61343 : Lucky Dog's Clover -61344 : Lucky Dog's Clover -61350 : Lucky Dog's Hourglass -61351 : Lucky Dog's Hourglass -61352 : Lucky Dog's Hourglass -61353 : Lucky Dog's Hourglass -61354 : Lucky Dog's Hourglass -61410 : Lucky Dog's Goblet -61411 : Lucky Dog's Goblet -61412 : Lucky Dog's Goblet -61413 : Lucky Dog's Goblet -61414 : Lucky Dog's Goblet -61420 : Lucky Dog's Eagle Feather -61421 : Lucky Dog's Eagle Feather -61422 : Lucky Dog's Eagle Feather -61423 : Lucky Dog's Eagle Feather -61424 : Lucky Dog's Eagle Feather -61430 : Lucky Dog's Silver Circlet -61431 : Lucky Dog's Silver Circlet -61432 : Lucky Dog's Silver Circlet -61433 : Lucky Dog's Silver Circlet -61434 : Lucky Dog's Silver Circlet -61440 : Lucky Dog's Clover -61441 : Lucky Dog's Clover -61442 : Lucky Dog's Clover -61443 : Lucky Dog's Clover -61444 : Lucky Dog's Clover -61450 : Lucky Dog's Hourglass -61451 : Lucky Dog's Hourglass -61452 : Lucky Dog's Hourglass -61453 : Lucky Dog's Hourglass -61454 : Lucky Dog's Hourglass -62110 : Scholar's Ink Cup -62111 : Scholar's Ink Cup -62112 : Scholar's Ink Cup -62113 : Scholar's Ink Cup -62114 : Scholar's Ink Cup -62120 : Scholar's Quill Pen -62121 : Scholar's Quill Pen -62122 : Scholar's Quill Pen -62123 : Scholar's Quill Pen -62124 : Scholar's Quill Pen -62130 : Scholar's Lens -62131 : Scholar's Lens -62132 : Scholar's Lens -62133 : Scholar's Lens -62134 : Scholar's Lens -62140 : Scholar's Bookmark -62141 : Scholar's Bookmark -62142 : Scholar's Bookmark -62143 : Scholar's Bookmark -62144 : Scholar's Bookmark -62150 : Scholar's Clock -62151 : Scholar's Clock -62152 : Scholar's Clock -62153 : Scholar's Clock -62154 : Scholar's Clock -62210 : Scholar's Ink Cup -62211 : Scholar's Ink Cup -62212 : Scholar's Ink Cup -62213 : Scholar's Ink Cup -62214 : Scholar's Ink Cup -62220 : Scholar's Quill Pen -62221 : Scholar's Quill Pen -62222 : Scholar's Quill Pen -62223 : Scholar's Quill Pen -62224 : Scholar's Quill Pen -62230 : Scholar's Lens -62231 : Scholar's Lens -62232 : Scholar's Lens -62233 : Scholar's Lens -62234 : Scholar's Lens -62240 : Scholar's Bookmark -62241 : Scholar's Bookmark -62242 : Scholar's Bookmark -62243 : Scholar's Bookmark -62244 : Scholar's Bookmark -62250 : Scholar's Clock -62251 : Scholar's Clock -62252 : Scholar's Clock -62253 : Scholar's Clock -62254 : Scholar's Clock -62310 : Scholar's Ink Cup -62311 : Scholar's Ink Cup -62312 : Scholar's Ink Cup -62313 : Scholar's Ink Cup -62314 : Scholar's Ink Cup -62320 : Scholar's Quill Pen -62321 : Scholar's Quill Pen -62322 : Scholar's Quill Pen -62323 : Scholar's Quill Pen -62324 : Scholar's Quill Pen -62330 : Scholar's Lens -62331 : Scholar's Lens -62332 : Scholar's Lens -62333 : Scholar's Lens -62334 : Scholar's Lens -62340 : Scholar's Bookmark -62341 : Scholar's Bookmark -62342 : Scholar's Bookmark -62343 : Scholar's Bookmark -62344 : Scholar's Bookmark -62350 : Scholar's Clock -62351 : Scholar's Clock -62352 : Scholar's Clock -62353 : Scholar's Clock -62354 : Scholar's Clock -62410 : Scholar's Ink Cup -62411 : Scholar's Ink Cup -62412 : Scholar's Ink Cup -62413 : Scholar's Ink Cup -62414 : Scholar's Ink Cup -62420 : Scholar's Quill Pen -62421 : Scholar's Quill Pen -62422 : Scholar's Quill Pen -62423 : Scholar's Quill Pen -62424 : Scholar's Quill Pen -62430 : Scholar's Lens -62431 : Scholar's Lens -62432 : Scholar's Lens -62433 : Scholar's Lens -62434 : Scholar's Lens -62440 : Scholar's Bookmark -62441 : Scholar's Bookmark -62442 : Scholar's Bookmark -62443 : Scholar's Bookmark -62444 : Scholar's Bookmark -62450 : Scholar's Clock -62451 : Scholar's Clock -62452 : Scholar's Clock -62453 : Scholar's Clock -62454 : Scholar's Clock -62510 : Scholar's Ink Cup -62511 : Scholar's Ink Cup -62512 : Scholar's Ink Cup -62513 : Scholar's Ink Cup -62514 : Scholar's Ink Cup -62520 : Scholar's Quill Pen -62521 : Scholar's Quill Pen -62522 : Scholar's Quill Pen -62523 : Scholar's Quill Pen -62524 : Scholar's Quill Pen -62530 : Scholar's Lens -62531 : Scholar's Lens -62532 : Scholar's Lens -62533 : Scholar's Lens -62534 : Scholar's Lens -62540 : Scholar's Bookmark -62541 : Scholar's Bookmark -62542 : Scholar's Bookmark -62543 : Scholar's Bookmark -62544 : Scholar's Bookmark -62550 : Scholar's Clock -62551 : Scholar's Clock -62552 : Scholar's Clock -62553 : Scholar's Clock -62554 : Scholar's Clock -63110 : Traveling Doctor's Medicine Pot -63111 : Traveling Doctor's Medicine Pot -63112 : Traveling Doctor's Medicine Pot -63113 : Traveling Doctor's Medicine Pot -63114 : Traveling Doctor's Medicine Pot -63120 : Traveling Doctor's Owl Feather -63121 : Traveling Doctor's Owl Feather -63122 : Traveling Doctor's Owl Feather -63123 : Traveling Doctor's Owl Feather -63124 : Traveling Doctor's Owl Feather -63130 : Traveling Doctor's Handkerchief -63131 : Traveling Doctor's Handkerchief -63132 : Traveling Doctor's Handkerchief -63133 : Traveling Doctor's Handkerchief -63134 : Traveling Doctor's Handkerchief -63140 : Traveling Doctor's Silver Lotus -63141 : Traveling Doctor's Silver Lotus -63142 : Traveling Doctor's Silver Lotus -63143 : Traveling Doctor's Silver Lotus -63144 : Traveling Doctor's Silver Lotus -63150 : Traveling Doctor's Pocket Watch -63151 : Traveling Doctor's Pocket Watch -63152 : Traveling Doctor's Pocket Watch -63153 : Traveling Doctor's Pocket Watch -63154 : Traveling Doctor's Pocket Watch -63210 : Traveling Doctor's Medicine Pot -63211 : Traveling Doctor's Medicine Pot -63212 : Traveling Doctor's Medicine Pot -63213 : Traveling Doctor's Medicine Pot -63214 : Traveling Doctor's Medicine Pot -63220 : Traveling Doctor's Owl Feather -63221 : Traveling Doctor's Owl Feather -63222 : Traveling Doctor's Owl Feather -63223 : Traveling Doctor's Owl Feather -63224 : Traveling Doctor's Owl Feather -63230 : Traveling Doctor's Handkerchief -63231 : Traveling Doctor's Handkerchief -63232 : Traveling Doctor's Handkerchief -63233 : Traveling Doctor's Handkerchief -63234 : Traveling Doctor's Handkerchief -63240 : Traveling Doctor's Silver Lotus -63241 : Traveling Doctor's Silver Lotus -63242 : Traveling Doctor's Silver Lotus -63243 : Traveling Doctor's Silver Lotus -63244 : Traveling Doctor's Silver Lotus -63250 : Traveling Doctor's Pocket Watch -63251 : Traveling Doctor's Pocket Watch -63252 : Traveling Doctor's Pocket Watch -63253 : Traveling Doctor's Pocket Watch -63254 : Traveling Doctor's Pocket Watch -63310 : Traveling Doctor's Medicine Pot -63311 : Traveling Doctor's Medicine Pot -63312 : Traveling Doctor's Medicine Pot -63313 : Traveling Doctor's Medicine Pot -63314 : Traveling Doctor's Medicine Pot -63320 : Traveling Doctor's Owl Feather -63321 : Traveling Doctor's Owl Feather -63322 : Traveling Doctor's Owl Feather -63323 : Traveling Doctor's Owl Feather -63324 : Traveling Doctor's Owl Feather -63330 : Traveling Doctor's Handkerchief -63331 : Traveling Doctor's Handkerchief -63332 : Traveling Doctor's Handkerchief -63333 : Traveling Doctor's Handkerchief -63334 : Traveling Doctor's Handkerchief -63340 : Traveling Doctor's Silver Lotus -63341 : Traveling Doctor's Silver Lotus -63342 : Traveling Doctor's Silver Lotus -63343 : Traveling Doctor's Silver Lotus -63344 : Traveling Doctor's Silver Lotus -63350 : Traveling Doctor's Pocket Watch -63351 : Traveling Doctor's Pocket Watch -63352 : Traveling Doctor's Pocket Watch -63353 : Traveling Doctor's Pocket Watch -63354 : Traveling Doctor's Pocket Watch -63410 : Traveling Doctor's Medicine Pot -63411 : Traveling Doctor's Medicine Pot -63412 : Traveling Doctor's Medicine Pot -63413 : Traveling Doctor's Medicine Pot -63414 : Traveling Doctor's Medicine Pot -63420 : Traveling Doctor's Owl Feather -63421 : Traveling Doctor's Owl Feather -63422 : Traveling Doctor's Owl Feather -63423 : Traveling Doctor's Owl Feather -63424 : Traveling Doctor's Owl Feather -63430 : Traveling Doctor's Handkerchief -63431 : Traveling Doctor's Handkerchief -63432 : Traveling Doctor's Handkerchief -63433 : Traveling Doctor's Handkerchief -63434 : Traveling Doctor's Handkerchief -63440 : Traveling Doctor's Silver Lotus -63441 : Traveling Doctor's Silver Lotus -63442 : Traveling Doctor's Silver Lotus -63443 : Traveling Doctor's Silver Lotus -63444 : Traveling Doctor's Silver Lotus -63450 : Traveling Doctor's Pocket Watch -63451 : Traveling Doctor's Pocket Watch -63452 : Traveling Doctor's Pocket Watch -63453 : Traveling Doctor's Pocket Watch -63454 : Traveling Doctor's Pocket Watch -71310 : Frost-Weaved Dignity -71311 : Frost-Weaved Dignity -71312 : Frost-Weaved Dignity -71313 : Frost-Weaved Dignity -71314 : Frost-Weaved Dignity -71320 : Icebreaker's Resolve -71321 : Icebreaker's Resolve -71322 : Icebreaker's Resolve -71323 : Icebreaker's Resolve -71324 : Icebreaker's Resolve -71330 : Broken Rime's Echo -71331 : Broken Rime's Echo -71332 : Broken Rime's Echo -71333 : Broken Rime's Echo -71334 : Broken Rime's Echo -71340 : Snowswept Memory -71341 : Snowswept Memory -71342 : Snowswept Memory -71343 : Snowswept Memory -71344 : Snowswept Memory -71350 : Frozen Homeland's Demise -71351 : Frozen Homeland's Demise -71352 : Frozen Homeland's Demise -71353 : Frozen Homeland's Demise -71354 : Frozen Homeland's Demise -71410 : Frost-Weaved Dignity -71411 : Frost-Weaved Dignity -71412 : Frost-Weaved Dignity -71413 : Frost-Weaved Dignity -71414 : Frost-Weaved Dignity -71420 : Icebreaker's Resolve -71421 : Icebreaker's Resolve -71422 : Icebreaker's Resolve -71423 : Icebreaker's Resolve -71424 : Icebreaker's Resolve -71430 : Broken Rime's Echo -71431 : Broken Rime's Echo -71432 : Broken Rime's Echo -71433 : Broken Rime's Echo -71434 : Broken Rime's Echo -71440 : Snowswept Memory -71441 : Snowswept Memory -71442 : Snowswept Memory -71443 : Snowswept Memory -71444 : Snowswept Memory -71450 : Frozen Homeland's Demise -71451 : Frozen Homeland's Demise -71452 : Frozen Homeland's Demise -71453 : Frozen Homeland's Demise -71454 : Frozen Homeland's Demise -71510 : Frost-Weaved Dignity -71511 : Frost-Weaved Dignity -71512 : Frost-Weaved Dignity -71513 : Frost-Weaved Dignity -71514 : Frost-Weaved Dignity -71520 : Icebreaker's Resolve -71521 : Icebreaker's Resolve -71522 : Icebreaker's Resolve -71523 : Icebreaker's Resolve -71524 : Icebreaker's Resolve -71530 : Broken Rime's Echo -71531 : Broken Rime's Echo -71532 : Broken Rime's Echo -71533 : Broken Rime's Echo -71534 : Broken Rime's Echo -71540 : Snowswept Memory -71541 : Snowswept Memory -71542 : Snowswept Memory -71543 : Snowswept Memory -71544 : Snowswept Memory -71550 : Frozen Homeland's Demise -71551 : Frozen Homeland's Demise -71552 : Frozen Homeland's Demise -71553 : Frozen Homeland's Demise -71554 : Frozen Homeland's Demise -72310 : Thundersoother's Goblet -72311 : Thundersoother's Goblet -72312 : Thundersoother's Goblet -72313 : Thundersoother's Goblet -72314 : Thundersoother's Goblet -72320 : Thundersoother's Plume -72321 : Thundersoother's Plume -72322 : Thundersoother's Plume -72323 : Thundersoother's Plume -72324 : Thundersoother's Plume -72330 : Thundersoother's Diadem -72331 : Thundersoother's Diadem -72332 : Thundersoother's Diadem -72333 : Thundersoother's Diadem -72334 : Thundersoother's Diadem -72340 : Thundersoother's Heart -72341 : Thundersoother's Heart -72342 : Thundersoother's Heart -72343 : Thundersoother's Heart -72344 : Thundersoother's Heart -72350 : Hour of Soothing Thunder -72351 : Hour of Soothing Thunder -72352 : Hour of Soothing Thunder -72353 : Hour of Soothing Thunder -72354 : Hour of Soothing Thunder -72410 : Thundersoother's Goblet -72411 : Thundersoother's Goblet -72412 : Thundersoother's Goblet -72413 : Thundersoother's Goblet -72414 : Thundersoother's Goblet -72420 : Thundersoother's Plume -72421 : Thundersoother's Plume -72422 : Thundersoother's Plume -72423 : Thundersoother's Plume -72424 : Thundersoother's Plume -72430 : Thundersoother's Diadem -72431 : Thundersoother's Diadem -72432 : Thundersoother's Diadem -72433 : Thundersoother's Diadem -72434 : Thundersoother's Diadem -72440 : Thundersoother's Heart -72441 : Thundersoother's Heart -72442 : Thundersoother's Heart -72443 : Thundersoother's Heart -72444 : Thundersoother's Heart -72450 : Hour of Soothing Thunder -72451 : Hour of Soothing Thunder -72452 : Hour of Soothing Thunder -72453 : Hour of Soothing Thunder -72454 : Hour of Soothing Thunder -72510 : Thundersoother's Goblet -72511 : Thundersoother's Goblet -72512 : Thundersoother's Goblet -72513 : Thundersoother's Goblet -72514 : Thundersoother's Goblet -72520 : Thundersoother's Plume -72521 : Thundersoother's Plume -72522 : Thundersoother's Plume -72523 : Thundersoother's Plume -72524 : Thundersoother's Plume -72530 : Thundersoother's Diadem -72531 : Thundersoother's Diadem -72532 : Thundersoother's Diadem -72533 : Thundersoother's Diadem -72534 : Thundersoother's Diadem -72540 : Thundersoother's Heart -72541 : Thundersoother's Heart -72542 : Thundersoother's Heart -72543 : Thundersoother's Heart -72544 : Thundersoother's Heart -72550 : Hour of Soothing Thunder -72551 : Hour of Soothing Thunder -72552 : Hour of Soothing Thunder -72553 : Hour of Soothing Thunder -72554 : Hour of Soothing Thunder -73310 : Lavawalker's Epiphany -73311 : Lavawalker's Epiphany -73312 : Lavawalker's Epiphany -73313 : Lavawalker's Epiphany -73314 : Lavawalker's Epiphany -73320 : Lavawalker's Salvation -73321 : Lavawalker's Salvation -73322 : Lavawalker's Salvation -73323 : Lavawalker's Salvation -73324 : Lavawalker's Salvation -73330 : Lavawalker's Wisdom -73331 : Lavawalker's Wisdom -73332 : Lavawalker's Wisdom -73333 : Lavawalker's Wisdom -73334 : Lavawalker's Wisdom -73340 : Lavawalker's Resolution -73341 : Lavawalker's Resolution -73342 : Lavawalker's Resolution -73343 : Lavawalker's Resolution -73344 : Lavawalker's Resolution -73350 : Lavawalker's Torment -73351 : Lavawalker's Torment -73352 : Lavawalker's Torment -73353 : Lavawalker's Torment -73354 : Lavawalker's Torment -73410 : Lavawalker's Epiphany -73411 : Lavawalker's Epiphany -73412 : Lavawalker's Epiphany -73413 : Lavawalker's Epiphany -73414 : Lavawalker's Epiphany -73420 : Lavawalker's Salvation -73421 : Lavawalker's Salvation -73422 : Lavawalker's Salvation -73423 : Lavawalker's Salvation -73424 : Lavawalker's Salvation -73430 : Lavawalker's Wisdom -73431 : Lavawalker's Wisdom -73432 : Lavawalker's Wisdom -73433 : Lavawalker's Wisdom -73434 : Lavawalker's Wisdom -73440 : Lavawalker's Resolution -73441 : Lavawalker's Resolution -73442 : Lavawalker's Resolution -73443 : Lavawalker's Resolution -73444 : Lavawalker's Resolution -73450 : Lavawalker's Torment -73451 : Lavawalker's Torment -73452 : Lavawalker's Torment -73453 : Lavawalker's Torment -73454 : Lavawalker's Torment -73510 : Lavawalker's Epiphany -73511 : Lavawalker's Epiphany -73512 : Lavawalker's Epiphany -73513 : Lavawalker's Epiphany -73514 : Lavawalker's Epiphany -73520 : Lavawalker's Salvation -73521 : Lavawalker's Salvation -73522 : Lavawalker's Salvation -73523 : Lavawalker's Salvation -73524 : Lavawalker's Salvation -73530 : Lavawalker's Wisdom -73531 : Lavawalker's Wisdom -73532 : Lavawalker's Wisdom -73533 : Lavawalker's Wisdom -73534 : Lavawalker's Wisdom -73540 : Lavawalker's Resolution -73541 : Lavawalker's Resolution -73542 : Lavawalker's Resolution -73543 : Lavawalker's Resolution -73544 : Lavawalker's Resolution -73550 : Lavawalker's Torment -73551 : Lavawalker's Torment -73552 : Lavawalker's Torment -73553 : Lavawalker's Torment -73554 : Lavawalker's Torment -74310 : Maiden's Fleeting Leisure -74311 : Maiden's Fleeting Leisure -74312 : Maiden's Fleeting Leisure -74313 : Maiden's Fleeting Leisure -74314 : Maiden's Fleeting Leisure -74320 : Maiden's Heart-stricken Infatuation -74321 : Maiden's Heart-stricken Infatuation -74322 : Maiden's Heart-stricken Infatuation -74323 : Maiden's Heart-stricken Infatuation -74324 : Maiden's Heart-stricken Infatuation -74330 : Maiden's Fading Beauty -74331 : Maiden's Fading Beauty -74332 : Maiden's Fading Beauty -74333 : Maiden's Fading Beauty -74334 : Maiden's Fading Beauty -74340 : Maiden's Distant Love -74341 : Maiden's Distant Love -74342 : Maiden's Distant Love -74343 : Maiden's Distant Love -74344 : Maiden's Distant Love -74350 : Maiden's Passing Youth -74351 : Maiden's Passing Youth -74352 : Maiden's Passing Youth -74353 : Maiden's Passing Youth -74354 : Maiden's Passing Youth -74410 : Maiden's Fleeting Leisure -74411 : Maiden's Fleeting Leisure -74412 : Maiden's Fleeting Leisure -74413 : Maiden's Fleeting Leisure -74414 : Maiden's Fleeting Leisure -74420 : Maiden's Heart-stricken Infatuation -74421 : Maiden's Heart-stricken Infatuation -74422 : Maiden's Heart-stricken Infatuation -74423 : Maiden's Heart-stricken Infatuation -74424 : Maiden's Heart-stricken Infatuation -74430 : Maiden's Fading Beauty -74431 : Maiden's Fading Beauty -74432 : Maiden's Fading Beauty -74433 : Maiden's Fading Beauty -74434 : Maiden's Fading Beauty -74440 : Maiden's Distant Love -74441 : Maiden's Distant Love -74442 : Maiden's Distant Love -74443 : Maiden's Distant Love -74444 : Maiden's Distant Love -74450 : Maiden's Passing Youth -74451 : Maiden's Passing Youth -74452 : Maiden's Passing Youth -74453 : Maiden's Passing Youth -74454 : Maiden's Passing Youth -74510 : Maiden's Fleeting Leisure -74511 : Maiden's Fleeting Leisure -74512 : Maiden's Fleeting Leisure -74513 : Maiden's Fleeting Leisure -74514 : Maiden's Fleeting Leisure -74520 : Maiden's Heart-stricken Infatuation -74521 : Maiden's Heart-stricken Infatuation -74522 : Maiden's Heart-stricken Infatuation -74523 : Maiden's Heart-stricken Infatuation -74524 : Maiden's Heart-stricken Infatuation -74530 : Maiden's Fading Beauty -74531 : Maiden's Fading Beauty -74532 : Maiden's Fading Beauty -74533 : Maiden's Fading Beauty -74534 : Maiden's Fading Beauty -74540 : Maiden's Distant Love -74541 : Maiden's Distant Love -74542 : Maiden's Distant Love -74543 : Maiden's Distant Love -74544 : Maiden's Distant Love -74550 : Maiden's Passing Youth -74551 : Maiden's Passing Youth -74552 : Maiden's Passing Youth -74553 : Maiden's Passing Youth -74554 : Maiden's Passing Youth -75310 : Gladiator's Intoxication -75311 : Gladiator's Intoxication -75312 : Gladiator's Intoxication -75313 : Gladiator's Intoxication -75314 : Gladiator's Intoxication -75320 : Gladiator's Destiny -75321 : Gladiator's Destiny -75322 : Gladiator's Destiny -75323 : Gladiator's Destiny -75324 : Gladiator's Destiny -75330 : Gladiator's Triumphus -75331 : Gladiator's Triumphus -75332 : Gladiator's Triumphus -75333 : Gladiator's Triumphus -75334 : Gladiator's Triumphus -75340 : Gladiator's Nostalgia -75341 : Gladiator's Nostalgia -75342 : Gladiator's Nostalgia -75343 : Gladiator's Nostalgia -75344 : Gladiator's Nostalgia -75350 : Gladiator's Longing -75351 : Gladiator's Longing -75352 : Gladiator's Longing -75353 : Gladiator's Longing -75354 : Gladiator's Longing -75410 : Gladiator's Intoxication -75411 : Gladiator's Intoxication -75412 : Gladiator's Intoxication -75413 : Gladiator's Intoxication -75414 : Gladiator's Intoxication -75420 : Gladiator's Destiny -75421 : Gladiator's Destiny -75422 : Gladiator's Destiny -75423 : Gladiator's Destiny -75424 : Gladiator's Destiny -75430 : Gladiator's Triumphus -75431 : Gladiator's Triumphus -75432 : Gladiator's Triumphus -75433 : Gladiator's Triumphus -75434 : Gladiator's Triumphus -75440 : Gladiator's Nostalgia -75441 : Gladiator's Nostalgia -75442 : Gladiator's Nostalgia -75443 : Gladiator's Nostalgia -75444 : Gladiator's Nostalgia -75450 : Gladiator's Longing -75451 : Gladiator's Longing -75452 : Gladiator's Longing -75453 : Gladiator's Longing -75454 : Gladiator's Longing -75510 : Gladiator's Intoxication -75511 : Gladiator's Intoxication -75512 : Gladiator's Intoxication -75513 : Gladiator's Intoxication -75514 : Gladiator's Intoxication -75520 : Gladiator's Destiny -75521 : Gladiator's Destiny -75522 : Gladiator's Destiny -75523 : Gladiator's Destiny -75524 : Gladiator's Destiny -75530 : Gladiator's Triumphus -75531 : Gladiator's Triumphus -75532 : Gladiator's Triumphus -75533 : Gladiator's Triumphus -75534 : Gladiator's Triumphus -75540 : Gladiator's Nostalgia -75541 : Gladiator's Nostalgia -75542 : Gladiator's Nostalgia -75543 : Gladiator's Nostalgia -75544 : Gladiator's Nostalgia -75550 : Gladiator's Longing -75551 : Gladiator's Longing -75552 : Gladiator's Longing -75553 : Gladiator's Longing -75554 : Gladiator's Longing -76310 : Viridescent Venerer's Vessel -76311 : Viridescent Venerer's Vessel -76312 : Viridescent Venerer's Vessel -76313 : Viridescent Venerer's Vessel -76314 : Viridescent Venerer's Vessel -76320 : Viridescent Arrow Feather -76321 : Viridescent Arrow Feather -76322 : Viridescent Arrow Feather -76323 : Viridescent Arrow Feather -76324 : Viridescent Arrow Feather -76330 : Viridescent Venerer's Diadem -76331 : Viridescent Venerer's Diadem -76332 : Viridescent Venerer's Diadem -76333 : Viridescent Venerer's Diadem -76334 : Viridescent Venerer's Diadem -76340 : In Remembrance of Viridescent Fields -76341 : In Remembrance of Viridescent Fields -76342 : In Remembrance of Viridescent Fields -76343 : In Remembrance of Viridescent Fields -76344 : In Remembrance of Viridescent Fields -76350 : Viridescent Venerer's Determination -76351 : Viridescent Venerer's Determination -76352 : Viridescent Venerer's Determination -76353 : Viridescent Venerer's Determination -76354 : Viridescent Venerer's Determination -76410 : Viridescent Venerer's Vessel -76411 : Viridescent Venerer's Vessel -76412 : Viridescent Venerer's Vessel -76413 : Viridescent Venerer's Vessel -76414 : Viridescent Venerer's Vessel -76420 : Viridescent Arrow Feather -76421 : Viridescent Arrow Feather -76422 : Viridescent Arrow Feather -76423 : Viridescent Arrow Feather -76424 : Viridescent Arrow Feather -76430 : Viridescent Venerer's Diadem -76431 : Viridescent Venerer's Diadem -76432 : Viridescent Venerer's Diadem -76433 : Viridescent Venerer's Diadem -76434 : Viridescent Venerer's Diadem -76440 : In Remembrance of Viridescent Fields -76441 : In Remembrance of Viridescent Fields -76442 : In Remembrance of Viridescent Fields -76443 : In Remembrance of Viridescent Fields -76444 : In Remembrance of Viridescent Fields -76450 : Viridescent Venerer's Determination -76451 : Viridescent Venerer's Determination -76452 : Viridescent Venerer's Determination -76453 : Viridescent Venerer's Determination -76454 : Viridescent Venerer's Determination -76510 : Viridescent Venerer's Vessel -76511 : Viridescent Venerer's Vessel -76512 : Viridescent Venerer's Vessel -76513 : Viridescent Venerer's Vessel -76514 : Viridescent Venerer's Vessel -76520 : Viridescent Arrow Feather -76521 : Viridescent Arrow Feather -76522 : Viridescent Arrow Feather -76523 : Viridescent Arrow Feather -76524 : Viridescent Arrow Feather -76530 : Viridescent Venerer's Diadem -76531 : Viridescent Venerer's Diadem -76532 : Viridescent Venerer's Diadem -76533 : Viridescent Venerer's Diadem -76534 : Viridescent Venerer's Diadem -76540 : In Remembrance of Viridescent Fields -76541 : In Remembrance of Viridescent Fields -76542 : In Remembrance of Viridescent Fields -76543 : In Remembrance of Viridescent Fields -76544 : In Remembrance of Viridescent Fields -76550 : Viridescent Venerer's Determination -76551 : Viridescent Venerer's Determination -76552 : Viridescent Venerer's Determination -76553 : Viridescent Venerer's Determination -76554 : Viridescent Venerer's Determination -77310 : Wanderer's String-Kettle -77311 : Wanderer's String-Kettle -77312 : Wanderer's String-Kettle -77313 : Wanderer's String-Kettle -77314 : Wanderer's String-Kettle -77320 : Bard's Arrow Feather -77321 : Bard's Arrow Feather -77322 : Bard's Arrow Feather -77323 : Bard's Arrow Feather -77324 : Bard's Arrow Feather -77330 : Conductor's Top Hat -77331 : Conductor's Top Hat -77332 : Conductor's Top Hat -77333 : Conductor's Top Hat -77334 : Conductor's Top Hat -77340 : Troupe's Dawnlight -77341 : Troupe's Dawnlight -77342 : Troupe's Dawnlight -77343 : Troupe's Dawnlight -77344 : Troupe's Dawnlight -77350 : Concert's Final Hour -77351 : Concert's Final Hour -77352 : Concert's Final Hour -77353 : Concert's Final Hour -77354 : Concert's Final Hour -77410 : Wanderer's String-Kettle -77411 : Wanderer's String-Kettle -77412 : Wanderer's String-Kettle -77413 : Wanderer's String-Kettle -77414 : Wanderer's String-Kettle -77420 : Bard's Arrow Feather -77421 : Bard's Arrow Feather -77422 : Bard's Arrow Feather -77423 : Bard's Arrow Feather -77424 : Bard's Arrow Feather -77430 : Conductor's Top Hat -77431 : Conductor's Top Hat -77432 : Conductor's Top Hat -77433 : Conductor's Top Hat -77434 : Conductor's Top Hat -77440 : Troupe's Dawnlight -77441 : Troupe's Dawnlight -77442 : Troupe's Dawnlight -77443 : Troupe's Dawnlight -77444 : Troupe's Dawnlight -77450 : Concert's Final Hour -77451 : Concert's Final Hour -77452 : Concert's Final Hour -77453 : Concert's Final Hour -77454 : Concert's Final Hour -77510 : Wanderer's String-Kettle -77511 : Wanderer's String-Kettle -77512 : Wanderer's String-Kettle -77513 : Wanderer's String-Kettle -77514 : Wanderer's String-Kettle -77520 : Bard's Arrow Feather -77521 : Bard's Arrow Feather -77522 : Bard's Arrow Feather -77523 : Bard's Arrow Feather -77524 : Bard's Arrow Feather -77530 : Conductor's Top Hat -77531 : Conductor's Top Hat -77532 : Conductor's Top Hat -77533 : Conductor's Top Hat -77534 : Conductor's Top Hat -77540 : Troupe's Dawnlight -77541 : Troupe's Dawnlight -77542 : Troupe's Dawnlight -77543 : Troupe's Dawnlight -77544 : Troupe's Dawnlight -77550 : Concert's Final Hour -77551 : Concert's Final Hour -77552 : Concert's Final Hour -77553 : Concert's Final Hour -77554 : Concert's Final Hour -78310 : Goblet of Aquilo -78311 : Goblet of Aquilo -78312 : Goblet of Aquilo -78313 : Goblet of Aquilo -78314 : Goblet of Aquilo -78320 : Plume of Snow -78321 : Plume of Snow -78322 : Plume of Snow -78323 : Plume of Snow -78324 : Plume of Snow -78330 : Crown of Glacier -78331 : Crown of Glacier -78332 : Crown of Glacier -78333 : Crown of Glacier -78334 : Crown of Glacier -78340 : Heart of Frost -78341 : Heart of Frost -78342 : Heart of Frost -78343 : Heart of Frost -78344 : Heart of Frost -78350 : Glacial Sand -78351 : Glacial Sand -78352 : Glacial Sand -78353 : Glacial Sand -78354 : Glacial Sand -78410 : Goblet of Aquilo -78411 : Goblet of Aquilo -78412 : Goblet of Aquilo -78413 : Goblet of Aquilo -78414 : Goblet of Aquilo -78420 : Plume of Snow -78421 : Plume of Snow -78422 : Plume of Snow -78423 : Plume of Snow -78424 : Plume of Snow -78430 : Crown of Glacier -78431 : Crown of Glacier -78432 : Crown of Glacier -78433 : Crown of Glacier -78434 : Crown of Glacier -78440 : Heart of Frost -78441 : Heart of Frost -78442 : Heart of Frost -78443 : Heart of Frost -78444 : Heart of Frost -78450 : Glacial Sand -78451 : Glacial Sand -78452 : Glacial Sand -78453 : Glacial Sand -78454 : Glacial Sand -78510 : Goblet of Aquilo -78511 : Goblet of Aquilo -78512 : Goblet of Aquilo -78513 : Goblet of Aquilo -78514 : Goblet of Aquilo -78520 : Plume of Snow -78521 : Plume of Snow -78522 : Plume of Snow -78523 : Plume of Snow -78524 : Plume of Snow -78530 : Crown of Glacier -78531 : Crown of Glacier -78532 : Crown of Glacier -78533 : Crown of Glacier -78534 : Crown of Glacier -78540 : Heart of Frost -78541 : Heart of Frost -78542 : Heart of Frost -78543 : Heart of Frost -78544 : Heart of Frost -78550 : Glacial Sand -78551 : Glacial Sand -78552 : Glacial Sand -78553 : Glacial Sand -78554 : Glacial Sand -79310 : Omen of Thunderstorm -79311 : Omen of Thunderstorm -79312 : Omen of Thunderstorm -79313 : Omen of Thunderstorm -79314 : Omen of Thunderstorm -79320 : Survivor of Catastrophe -79321 : Survivor of Catastrophe -79322 : Survivor of Catastrophe -79323 : Survivor of Catastrophe -79324 : Survivor of Catastrophe -79330 : Thunder Summoner's Crown -79331 : Thunder Summoner's Crown -79332 : Thunder Summoner's Crown -79333 : Thunder Summoner's Crown -79334 : Thunder Summoner's Crown -79340 : Thunderbird's Mercy -79341 : Thunderbird's Mercy -79342 : Thunderbird's Mercy -79343 : Thunderbird's Mercy -79344 : Thunderbird's Mercy -79350 : Hourglass of Thunder -79351 : Hourglass of Thunder -79352 : Hourglass of Thunder -79353 : Hourglass of Thunder -79354 : Hourglass of Thunder -79410 : Omen of Thunderstorm -79411 : Omen of Thunderstorm -79412 : Omen of Thunderstorm -79413 : Omen of Thunderstorm -79414 : Omen of Thunderstorm -79420 : Survivor of Catastrophe -79421 : Survivor of Catastrophe -79422 : Survivor of Catastrophe -79423 : Survivor of Catastrophe -79424 : Survivor of Catastrophe -79430 : Thunder Summoner's Crown -79431 : Thunder Summoner's Crown -79432 : Thunder Summoner's Crown -79433 : Thunder Summoner's Crown -79434 : Thunder Summoner's Crown -79440 : Thunderbird's Mercy -79441 : Thunderbird's Mercy -79442 : Thunderbird's Mercy -79443 : Thunderbird's Mercy -79444 : Thunderbird's Mercy -79450 : Hourglass of Thunder -79451 : Hourglass of Thunder -79452 : Hourglass of Thunder -79453 : Hourglass of Thunder -79454 : Hourglass of Thunder -79510 : Omen of Thunderstorm -79511 : Omen of Thunderstorm -79512 : Omen of Thunderstorm -79513 : Omen of Thunderstorm -79514 : Omen of Thunderstorm -79520 : Survivor of Catastrophe -79521 : Survivor of Catastrophe -79522 : Survivor of Catastrophe -79523 : Survivor of Catastrophe -79524 : Survivor of Catastrophe -79530 : Thunder Summoner's Crown -79531 : Thunder Summoner's Crown -79532 : Thunder Summoner's Crown -79533 : Thunder Summoner's Crown -79534 : Thunder Summoner's Crown -79540 : Thunderbird's Mercy -79541 : Thunderbird's Mercy -79542 : Thunderbird's Mercy -79543 : Thunderbird's Mercy -79544 : Thunderbird's Mercy -79550 : Hourglass of Thunder -79551 : Hourglass of Thunder -79552 : Hourglass of Thunder -79553 : Hourglass of Thunder -79554 : Hourglass of Thunder -80310 : Witch's Heart Flames -80311 : Witch's Heart Flames -80312 : Witch's Heart Flames -80313 : Witch's Heart Flames -80314 : Witch's Heart Flames -80320 : Witch's Ever-Burning Plume -80321 : Witch's Ever-Burning Plume -80322 : Witch's Ever-Burning Plume -80323 : Witch's Ever-Burning Plume -80324 : Witch's Ever-Burning Plume -80330 : Witch's Scorching Hat -80331 : Witch's Scorching Hat -80332 : Witch's Scorching Hat -80333 : Witch's Scorching Hat -80334 : Witch's Scorching Hat -80340 : Witch's Flower of Blaze -80341 : Witch's Flower of Blaze -80342 : Witch's Flower of Blaze -80343 : Witch's Flower of Blaze -80344 : Witch's Flower of Blaze -80350 : Witch's End Time -80351 : Witch's End Time -80352 : Witch's End Time -80353 : Witch's End Time -80354 : Witch's End Time -80410 : Witch's Heart Flames -80411 : Witch's Heart Flames -80412 : Witch's Heart Flames -80413 : Witch's Heart Flames -80414 : Witch's Heart Flames -80420 : Witch's Ever-Burning Plume -80421 : Witch's Ever-Burning Plume -80422 : Witch's Ever-Burning Plume -80423 : Witch's Ever-Burning Plume -80424 : Witch's Ever-Burning Plume -80430 : Witch's Scorching Hat -80431 : Witch's Scorching Hat -80432 : Witch's Scorching Hat -80433 : Witch's Scorching Hat -80434 : Witch's Scorching Hat -80440 : Witch's Flower of Blaze -80441 : Witch's Flower of Blaze -80442 : Witch's Flower of Blaze -80443 : Witch's Flower of Blaze -80444 : Witch's Flower of Blaze -80450 : Witch's End Time -80451 : Witch's End Time -80452 : Witch's End Time -80453 : Witch's End Time -80454 : Witch's End Time -80510 : Witch's Heart Flames -80511 : Witch's Heart Flames -80512 : Witch's Heart Flames -80513 : Witch's Heart Flames -80514 : Witch's Heart Flames -80520 : Witch's Ever-Burning Plume -80521 : Witch's Ever-Burning Plume -80522 : Witch's Ever-Burning Plume -80523 : Witch's Ever-Burning Plume -80524 : Witch's Ever-Burning Plume -80530 : Witch's Scorching Hat -80531 : Witch's Scorching Hat -80532 : Witch's Scorching Hat -80533 : Witch's Scorching Hat -80534 : Witch's Scorching Hat -80540 : Witch's Flower of Blaze -80541 : Witch's Flower of Blaze -80542 : Witch's Flower of Blaze -80543 : Witch's Flower of Blaze -80544 : Witch's Flower of Blaze -80550 : Witch's End Time -80551 : Witch's End Time -80552 : Witch's End Time -80553 : Witch's End Time -80554 : Witch's End Time -81310 : Royal Silver Urn -81311 : Royal Silver Urn -81312 : Royal Silver Urn -81313 : Royal Silver Urn -81314 : Royal Silver Urn -81320 : Royal Plume -81321 : Royal Plume -81322 : Royal Plume -81323 : Royal Plume -81324 : Royal Plume -81330 : Royal Masque -81331 : Royal Masque -81332 : Royal Masque -81333 : Royal Masque -81334 : Royal Masque -81340 : Royal Flora -81341 : Royal Flora -81342 : Royal Flora -81343 : Royal Flora -81344 : Royal Flora -81350 : Royal Pocket Watch -81351 : Royal Pocket Watch -81352 : Royal Pocket Watch -81353 : Royal Pocket Watch -81354 : Royal Pocket Watch -81410 : Royal Silver Urn -81411 : Royal Silver Urn -81412 : Royal Silver Urn -81413 : Royal Silver Urn -81414 : Royal Silver Urn -81420 : Royal Plume -81421 : Royal Plume -81422 : Royal Plume -81423 : Royal Plume -81424 : Royal Plume -81430 : Royal Masque -81431 : Royal Masque -81432 : Royal Masque -81433 : Royal Masque -81434 : Royal Masque -81440 : Royal Flora -81441 : Royal Flora -81442 : Royal Flora -81443 : Royal Flora -81444 : Royal Flora -81450 : Royal Pocket Watch -81451 : Royal Pocket Watch -81452 : Royal Pocket Watch -81453 : Royal Pocket Watch -81454 : Royal Pocket Watch -81510 : Royal Silver Urn -81511 : Royal Silver Urn -81512 : Royal Silver Urn -81513 : Royal Silver Urn -81514 : Royal Silver Urn -81520 : Royal Plume -81521 : Royal Plume -81522 : Royal Plume -81523 : Royal Plume -81524 : Royal Plume -81530 : Royal Masque -81531 : Royal Masque -81532 : Royal Masque -81533 : Royal Masque -81534 : Royal Masque -81540 : Royal Flora -81541 : Royal Flora -81542 : Royal Flora -81543 : Royal Flora -81544 : Royal Flora -81550 : Royal Pocket Watch -81551 : Royal Pocket Watch -81552 : Royal Pocket Watch -81553 : Royal Pocket Watch -81554 : Royal Pocket Watch -82310 : Bloodstained Chevalier's Goblet -82311 : Bloodstained Chevalier's Goblet -82312 : Bloodstained Chevalier's Goblet -82313 : Bloodstained Chevalier's Goblet -82314 : Bloodstained Chevalier's Goblet -82320 : Bloodstained Black Plume -82321 : Bloodstained Black Plume -82322 : Bloodstained Black Plume -82323 : Bloodstained Black Plume -82324 : Bloodstained Black Plume -82330 : Bloodstained Iron Mask -82331 : Bloodstained Iron Mask -82332 : Bloodstained Iron Mask -82333 : Bloodstained Iron Mask -82334 : Bloodstained Iron Mask -82340 : Bloodstained Flower of Iron -82341 : Bloodstained Flower of Iron -82342 : Bloodstained Flower of Iron -82343 : Bloodstained Flower of Iron -82344 : Bloodstained Flower of Iron -82350 : Bloodstained Final Hour -82351 : Bloodstained Final Hour -82352 : Bloodstained Final Hour -82353 : Bloodstained Final Hour -82354 : Bloodstained Final Hour -82410 : Bloodstained Chevalier's Goblet -82411 : Bloodstained Chevalier's Goblet -82412 : Bloodstained Chevalier's Goblet -82413 : Bloodstained Chevalier's Goblet -82414 : Bloodstained Chevalier's Goblet -82420 : Bloodstained Black Plume -82421 : Bloodstained Black Plume -82422 : Bloodstained Black Plume -82423 : Bloodstained Black Plume -82424 : Bloodstained Black Plume -82430 : Bloodstained Iron Mask -82431 : Bloodstained Iron Mask -82432 : Bloodstained Iron Mask -82433 : Bloodstained Iron Mask -82434 : Bloodstained Iron Mask -82440 : Bloodstained Flower of Iron -82441 : Bloodstained Flower of Iron -82442 : Bloodstained Flower of Iron -82443 : Bloodstained Flower of Iron -82444 : Bloodstained Flower of Iron -82450 : Bloodstained Final Hour -82451 : Bloodstained Final Hour -82452 : Bloodstained Final Hour -82453 : Bloodstained Final Hour -82454 : Bloodstained Final Hour -82510 : Bloodstained Chevalier's Goblet -82511 : Bloodstained Chevalier's Goblet -82512 : Bloodstained Chevalier's Goblet -82513 : Bloodstained Chevalier's Goblet -82514 : Bloodstained Chevalier's Goblet -82520 : Bloodstained Black Plume -82521 : Bloodstained Black Plume -82522 : Bloodstained Black Plume -82523 : Bloodstained Black Plume -82524 : Bloodstained Black Plume -82530 : Bloodstained Iron Mask -82531 : Bloodstained Iron Mask -82532 : Bloodstained Iron Mask -82533 : Bloodstained Iron Mask -82534 : Bloodstained Iron Mask -82540 : Bloodstained Flower of Iron -82541 : Bloodstained Flower of Iron -82542 : Bloodstained Flower of Iron -82543 : Bloodstained Flower of Iron -82544 : Bloodstained Flower of Iron -82550 : Bloodstained Final Hour -82551 : Bloodstained Final Hour -82552 : Bloodstained Final Hour -82553 : Bloodstained Final Hour -82554 : Bloodstained Final Hour -83330 : Tiara of Flame -83331 : Tiara of Flame -83332 : Tiara of Flame -83333 : Tiara of Flame -83334 : Tiara of Flame -83430 : Tiara of Flame -83431 : Tiara of Flame -83432 : Tiara of Flame -83433 : Tiara of Flame -83434 : Tiara of Flame -83530 : Tiara of Flame -83531 : Tiara of Flame -83532 : Tiara of Flame -83533 : Tiara of Flame -83534 : Tiara of Flame -84330 : Tiara of Torrents -84331 : Tiara of Torrents -84332 : Tiara of Torrents -84333 : Tiara of Torrents -84334 : Tiara of Torrents -84430 : Tiara of Torrents -84431 : Tiara of Torrents -84432 : Tiara of Torrents -84433 : Tiara of Torrents -84434 : Tiara of Torrents -84530 : Tiara of Torrents -84531 : Tiara of Torrents -84532 : Tiara of Torrents -84533 : Tiara of Torrents -84534 : Tiara of Torrents -85330 : Tiara of Thunder -85331 : Tiara of Thunder -85332 : Tiara of Thunder -85333 : Tiara of Thunder -85334 : Tiara of Thunder -85430 : Tiara of Thunder -85431 : Tiara of Thunder -85432 : Tiara of Thunder -85433 : Tiara of Thunder -85434 : Tiara of Thunder -85530 : Tiara of Thunder -85531 : Tiara of Thunder -85532 : Tiara of Thunder -85533 : Tiara of Thunder -85534 : Tiara of Thunder -86330 : Tiara of Gales -86331 : Tiara of Gales -86332 : Tiara of Gales -86333 : Tiara of Gales -86334 : Tiara of Gales -86430 : Tiara of Gales -86431 : Tiara of Gales -86432 : Tiara of Gales -86433 : Tiara of Gales -86434 : Tiara of Gales -86530 : Tiara of Gales -86531 : Tiara of Gales -86532 : Tiara of Gales -86533 : Tiara of Gales -86534 : Tiara of Gales -87330 : Tiara of Frost -87331 : Tiara of Frost -87332 : Tiara of Frost -87333 : Tiara of Frost -87334 : Tiara of Frost -87430 : Tiara of Frost -87431 : Tiara of Frost -87432 : Tiara of Frost -87433 : Tiara of Frost -87434 : Tiara of Frost -87530 : Tiara of Frost -87531 : Tiara of Frost -87532 : Tiara of Frost -87533 : Tiara of Frost -87534 : Tiara of Frost -88310 : Goblet of Chiseled Crag -88311 : Goblet of Chiseled Crag -88312 : Goblet of Chiseled Crag -88313 : Goblet of Chiseled Crag -88314 : Goblet of Chiseled Crag -88320 : Feather of Jagged Peaks -88321 : Feather of Jagged Peaks -88322 : Feather of Jagged Peaks -88323 : Feather of Jagged Peaks -88324 : Feather of Jagged Peaks -88330 : Mask of Solitude Basalt -88331 : Mask of Solitude Basalt -88332 : Mask of Solitude Basalt -88333 : Mask of Solitude Basalt -88334 : Mask of Solitude Basalt -88340 : Flower of Creviced Cliff -88341 : Flower of Creviced Cliff -88342 : Flower of Creviced Cliff -88343 : Flower of Creviced Cliff -88344 : Flower of Creviced Cliff -88350 : Sundial of Enduring Jade -88351 : Sundial of Enduring Jade -88352 : Sundial of Enduring Jade -88353 : Sundial of Enduring Jade -88354 : Sundial of Enduring Jade -88410 : Goblet of Chiseled Crag -88411 : Goblet of Chiseled Crag -88412 : Goblet of Chiseled Crag -88413 : Goblet of Chiseled Crag -88414 : Goblet of Chiseled Crag -88420 : Feather of Jagged Peaks -88421 : Feather of Jagged Peaks -88422 : Feather of Jagged Peaks -88423 : Feather of Jagged Peaks -88424 : Feather of Jagged Peaks -88430 : Mask of Solitude Basalt -88431 : Mask of Solitude Basalt -88432 : Mask of Solitude Basalt -88433 : Mask of Solitude Basalt -88434 : Mask of Solitude Basalt -88440 : Flower of Creviced Cliff -88441 : Flower of Creviced Cliff -88442 : Flower of Creviced Cliff -88443 : Flower of Creviced Cliff -88444 : Flower of Creviced Cliff -88450 : Sundial of Enduring Jade -88451 : Sundial of Enduring Jade -88452 : Sundial of Enduring Jade -88453 : Sundial of Enduring Jade -88454 : Sundial of Enduring Jade -88510 : Goblet of Chiseled Crag -88511 : Goblet of Chiseled Crag -88512 : Goblet of Chiseled Crag -88513 : Goblet of Chiseled Crag -88514 : Goblet of Chiseled Crag -88520 : Feather of Jagged Peaks -88521 : Feather of Jagged Peaks -88522 : Feather of Jagged Peaks -88523 : Feather of Jagged Peaks -88524 : Feather of Jagged Peaks -88530 : Mask of Solitude Basalt -88531 : Mask of Solitude Basalt -88532 : Mask of Solitude Basalt -88533 : Mask of Solitude Basalt -88534 : Mask of Solitude Basalt -88540 : Flower of Creviced Cliff -88541 : Flower of Creviced Cliff -88542 : Flower of Creviced Cliff -88543 : Flower of Creviced Cliff -88544 : Flower of Creviced Cliff -88550 : Sundial of Enduring Jade -88551 : Sundial of Enduring Jade -88552 : Sundial of Enduring Jade -88553 : Sundial of Enduring Jade -88554 : Sundial of Enduring Jade -89310 : Summer Night's Waterballoon -89311 : Summer Night's Waterballoon -89312 : Summer Night's Waterballoon -89313 : Summer Night's Waterballoon -89314 : Summer Night's Waterballoon -89320 : Summer Night's Finale -89321 : Summer Night's Finale -89322 : Summer Night's Finale -89323 : Summer Night's Finale -89324 : Summer Night's Finale -89330 : Summer Night's Mask -89331 : Summer Night's Mask -89332 : Summer Night's Mask -89333 : Summer Night's Mask -89334 : Summer Night's Mask -89340 : Summer Night's Bloom -89341 : Summer Night's Bloom -89342 : Summer Night's Bloom -89343 : Summer Night's Bloom -89344 : Summer Night's Bloom -89350 : Summer Night's Moment -89351 : Summer Night's Moment -89352 : Summer Night's Moment -89353 : Summer Night's Moment -89354 : Summer Night's Moment -89410 : Summer Night's Waterballoon -89411 : Summer Night's Waterballoon -89412 : Summer Night's Waterballoon -89413 : Summer Night's Waterballoon -89414 : Summer Night's Waterballoon -89420 : Summer Night's Finale -89421 : Summer Night's Finale -89422 : Summer Night's Finale -89423 : Summer Night's Finale -89424 : Summer Night's Finale -89430 : Summer Night's Mask -89431 : Summer Night's Mask -89432 : Summer Night's Mask -89433 : Summer Night's Mask -89434 : Summer Night's Mask -89440 : Summer Night's Bloom -89441 : Summer Night's Bloom -89442 : Summer Night's Bloom -89443 : Summer Night's Bloom -89444 : Summer Night's Bloom -89450 : Summer Night's Moment -89451 : Summer Night's Moment -89452 : Summer Night's Moment -89453 : Summer Night's Moment -89454 : Summer Night's Moment -89510 : Summer Night's Waterballoon -89511 : Summer Night's Waterballoon -89512 : Summer Night's Waterballoon -89513 : Summer Night's Waterballoon -89514 : Summer Night's Waterballoon -89520 : Summer Night's Finale -89521 : Summer Night's Finale -89522 : Summer Night's Finale -89523 : Summer Night's Finale -89524 : Summer Night's Finale -89530 : Summer Night's Mask -89531 : Summer Night's Mask -89532 : Summer Night's Mask -89533 : Summer Night's Mask -89534 : Summer Night's Mask -89540 : Summer Night's Bloom -89541 : Summer Night's Bloom -89542 : Summer Night's Bloom -89543 : Summer Night's Bloom -89544 : Summer Night's Bloom -89550 : Summer Night's Moment -89551 : Summer Night's Moment -89552 : Summer Night's Moment -89553 : Summer Night's Moment -89554 : Summer Night's Moment -90310 : Goblet of Thundering Deep -90311 : Goblet of Thundering Deep -90312 : Goblet of Thundering Deep -90313 : Goblet of Thundering Deep -90314 : Goblet of Thundering Deep -90320 : Gust of Nostalgia -90321 : Gust of Nostalgia -90322 : Gust of Nostalgia -90323 : Gust of Nostalgia -90324 : Gust of Nostalgia -90330 : Wine-Stained Tricorne -90331 : Wine-Stained Tricorne -90332 : Wine-Stained Tricorne -90333 : Wine-Stained Tricorne -90334 : Wine-Stained Tricorne -90340 : Gilded Corsage -90341 : Gilded Corsage -90342 : Gilded Corsage -90343 : Gilded Corsage -90344 : Gilded Corsage -90350 : Copper Compass -90351 : Copper Compass -90352 : Copper Compass -90353 : Copper Compass -90354 : Copper Compass -90410 : Goblet of Thundering Deep -90411 : Goblet of Thundering Deep -90412 : Goblet of Thundering Deep -90413 : Goblet of Thundering Deep -90414 : Goblet of Thundering Deep -90420 : Gust of Nostalgia -90421 : Gust of Nostalgia -90422 : Gust of Nostalgia -90423 : Gust of Nostalgia -90424 : Gust of Nostalgia -90430 : Wine-Stained Tricorne -90431 : Wine-Stained Tricorne -90432 : Wine-Stained Tricorne -90433 : Wine-Stained Tricorne -90434 : Wine-Stained Tricorne -90440 : Gilded Corsage -90441 : Gilded Corsage -90442 : Gilded Corsage -90443 : Gilded Corsage -90444 : Gilded Corsage -90450 : Copper Compass -90451 : Copper Compass -90452 : Copper Compass -90453 : Copper Compass -90454 : Copper Compass -90510 : Goblet of Thundering Deep -90511 : Goblet of Thundering Deep -90512 : Goblet of Thundering Deep -90513 : Goblet of Thundering Deep -90514 : Goblet of Thundering Deep -90520 : Gust of Nostalgia -90521 : Gust of Nostalgia -90522 : Gust of Nostalgia -90523 : Gust of Nostalgia -90524 : Gust of Nostalgia -90530 : Wine-Stained Tricorne -90531 : Wine-Stained Tricorne -90532 : Wine-Stained Tricorne -90533 : Wine-Stained Tricorne -90534 : Wine-Stained Tricorne -90540 : Gilded Corsage -90541 : Gilded Corsage -90542 : Gilded Corsage -90543 : Gilded Corsage -90544 : Gilded Corsage -90550 : Copper Compass -90551 : Copper Compass -90552 : Copper Compass -90553 : Copper Compass -90554 : Copper Compass -91310 : Noble's Pledging Vessel -91311 : Noble's Pledging Vessel -91312 : Noble's Pledging Vessel -91313 : Noble's Pledging Vessel -91314 : Noble's Pledging Vessel -91320 : Ceremonial War-Plume -91321 : Ceremonial War-Plume -91322 : Ceremonial War-Plume -91323 : Ceremonial War-Plume -91324 : Ceremonial War-Plume -91330 : General's Ancient Helm -91331 : General's Ancient Helm -91332 : General's Ancient Helm -91333 : General's Ancient Helm -91334 : General's Ancient Helm -91340 : Flower of Accolades -91341 : Flower of Accolades -91342 : Flower of Accolades -91343 : Flower of Accolades -91344 : Flower of Accolades -91350 : Orichalceous Time-Dial -91351 : Orichalceous Time-Dial -91352 : Orichalceous Time-Dial -91353 : Orichalceous Time-Dial -91354 : Orichalceous Time-Dial -91410 : Noble's Pledging Vessel -91411 : Noble's Pledging Vessel -91412 : Noble's Pledging Vessel -91413 : Noble's Pledging Vessel -91414 : Noble's Pledging Vessel -91420 : Ceremonial War-Plume -91421 : Ceremonial War-Plume -91422 : Ceremonial War-Plume -91423 : Ceremonial War-Plume -91424 : Ceremonial War-Plume -91430 : General's Ancient Helm -91431 : General's Ancient Helm -91432 : General's Ancient Helm -91433 : General's Ancient Helm -91434 : General's Ancient Helm -91440 : Flower of Accolades -91441 : Flower of Accolades -91442 : Flower of Accolades -91443 : Flower of Accolades -91444 : Flower of Accolades -91450 : Orichalceous Time-Dial -91451 : Orichalceous Time-Dial -91452 : Orichalceous Time-Dial -91453 : Orichalceous Time-Dial -91454 : Orichalceous Time-Dial -91510 : Noble's Pledging Vessel -91511 : Noble's Pledging Vessel -91512 : Noble's Pledging Vessel -91513 : Noble's Pledging Vessel -91514 : Noble's Pledging Vessel -91520 : Ceremonial War-Plume -91521 : Ceremonial War-Plume -91522 : Ceremonial War-Plume -91523 : Ceremonial War-Plume -91524 : Ceremonial War-Plume -91530 : General's Ancient Helm -91531 : General's Ancient Helm -91532 : General's Ancient Helm -91533 : General's Ancient Helm -91534 : General's Ancient Helm -91540 : Flower of Accolades -91541 : Flower of Accolades -91542 : Flower of Accolades -91543 : Flower of Accolades -91544 : Flower of Accolades -91550 : Orichalceous Time-Dial -91551 : Orichalceous Time-Dial -91552 : Orichalceous Time-Dial -91553 : Orichalceous Time-Dial -91554 : Orichalceous Time-Dial -92310 : Surpassing Cup -92311 : Surpassing Cup -92312 : Surpassing Cup -92313 : Surpassing Cup -92314 : Surpassing Cup -92320 : Wise Doctor's Pinion -92321 : Wise Doctor's Pinion -92322 : Wise Doctor's Pinion -92323 : Wise Doctor's Pinion -92324 : Wise Doctor's Pinion -92330 : Mocking Mask -92331 : Mocking Mask -92332 : Mocking Mask -92333 : Mocking Mask -92334 : Mocking Mask -92340 : Stainless Bloom -92341 : Stainless Bloom -92342 : Stainless Bloom -92343 : Stainless Bloom -92344 : Stainless Bloom -92350 : Moment of Cessation -92351 : Moment of Cessation -92352 : Moment of Cessation -92353 : Moment of Cessation -92354 : Moment of Cessation -92410 : Surpassing Cup -92411 : Surpassing Cup -92412 : Surpassing Cup -92413 : Surpassing Cup -92414 : Surpassing Cup -92420 : Wise Doctor's Pinion -92421 : Wise Doctor's Pinion -92422 : Wise Doctor's Pinion -92423 : Wise Doctor's Pinion -92424 : Wise Doctor's Pinion -92430 : Mocking Mask -92431 : Mocking Mask -92432 : Mocking Mask -92433 : Mocking Mask -92434 : Mocking Mask -92440 : Stainless Bloom -92441 : Stainless Bloom -92442 : Stainless Bloom -92443 : Stainless Bloom -92444 : Stainless Bloom -92450 : Moment of Cessation -92451 : Moment of Cessation -92452 : Moment of Cessation -92453 : Moment of Cessation -92454 : Moment of Cessation -92510 : Surpassing Cup -92511 : Surpassing Cup -92512 : Surpassing Cup -92513 : Surpassing Cup -92514 : Surpassing Cup -92520 : Wise Doctor's Pinion -92521 : Wise Doctor's Pinion -92522 : Wise Doctor's Pinion -92523 : Wise Doctor's Pinion -92524 : Wise Doctor's Pinion -92530 : Mocking Mask -92531 : Mocking Mask -92532 : Mocking Mask -92533 : Mocking Mask -92534 : Mocking Mask -92540 : Stainless Bloom -92541 : Stainless Bloom -92542 : Stainless Bloom -92543 : Stainless Bloom -92544 : Stainless Bloom -92550 : Moment of Cessation -92551 : Moment of Cessation -92552 : Moment of Cessation -92553 : Moment of Cessation -92554 : Moment of Cessation -93412 : Hopeful Heart -93413 : Hopeful Heart -93422 : Shaft of Remembrance -93423 : Shaft of Remembrance -93432 : Capricious Visage -93433 : Capricious Visage -93442 : Entangling Bloom -93443 : Entangling Bloom -93452 : Morning Dew's Moment -93453 : Morning Dew's Moment -93513 : Hopeful Heart -93514 : Hopeful Heart -93523 : Shaft of Remembrance -93524 : Shaft of Remembrance -93533 : Capricious Visage -93534 : Capricious Visage -93543 : Entangling Bloom -93544 : Entangling Bloom -93553 : Morning Dew's Moment -93554 : Morning Dew's Moment -94412 : Scarlet Vessel -94413 : Scarlet Vessel -94422 : Sundered Feather -94423 : Sundered Feather -94432 : Ornate Kabuto -94433 : Ornate Kabuto -94442 : Magnificent Tsuba -94443 : Magnificent Tsuba -94452 : Storm Cage -94453 : Storm Cage -94513 : Scarlet Vessel -94514 : Scarlet Vessel -94523 : Sundered Feather -94524 : Sundered Feather -94533 : Ornate Kabuto -94534 : Ornate Kabuto -94543 : Magnificent Tsuba -94544 : Magnificent Tsuba -94553 : Storm Cage -94554 : Storm Cage -95412 : Calabash of Awakening -95413 : Calabash of Awakening -95422 : Plume of Luxury -95423 : Plume of Luxury -95432 : Skeletal Hat -95433 : Skeletal Hat -95442 : Bloom Times -95443 : Bloom Times -95452 : Song of Life -95453 : Song of Life -95513 : Calabash of Awakening -95514 : Calabash of Awakening -95523 : Plume of Luxury -95524 : Plume of Luxury -95533 : Skeletal Hat -95534 : Skeletal Hat -95543 : Bloom Times -95544 : Bloom Times -95553 : Song of Life -95554 : Song of Life -96412 : Pearl Cage -96413 : Pearl Cage -96422 : Deep Palace's Plume -96423 : Deep Palace's Plume -96432 : Crown of Watatsumi -96433 : Crown of Watatsumi -96442 : Sea-Dyed Blossom -96443 : Sea-Dyed Blossom -96452 : Cowry of Parting -96453 : Cowry of Parting -96513 : Pearl Cage -96514 : Pearl Cage -96523 : Deep Palace's Plume -96524 : Deep Palace's Plume -96533 : Crown of Watatsumi -96534 : Crown of Watatsumi -96543 : Sea-Dyed Blossom -96544 : Sea-Dyed Blossom -96553 : Cowry of Parting -96554 : Cowry of Parting -97412 : Moment of the Pact -97413 : Moment of the Pact -97422 : Feather of Nascent Light -97423 : Feather of Nascent Light -97432 : Thundering Poise -97433 : Thundering Poise -97442 : Flowering Life -97443 : Flowering Life -97452 : Solar Relic -97453 : Solar Relic -97513 : Moment of the Pact -97514 : Moment of the Pact -97523 : Feather of Nascent Light -97524 : Feather of Nascent Light -97533 : Thundering Poise -97534 : Thundering Poise -97543 : Flowering Life -97544 : Flowering Life -97553 : Solar Relic -97554 : Solar Relic -98412 : Chalice of the Font -98413 : Chalice of the Font -98422 : Jade Leaf -98423 : Jade Leaf -98432 : Flowing Rings -98433 : Flowing Rings -98442 : Soulscent Bloom -98443 : Soulscent Bloom -98452 : Symbol of Felicitation -98453 : Symbol of Felicitation -98513 : Chalice of the Font -98514 : Chalice of the Font -98523 : Jade Leaf -98524 : Jade Leaf -98533 : Flowing Rings -98534 : Flowing Rings -98543 : Soulscent Bloom -98544 : Soulscent Bloom -98553 : Symbol of Felicitation -98554 : Symbol of Felicitation -99310 : Lord of Wind over Firmament's Cup -99311 : Lord of Wind over Firmament's Cup -99312 : Lord of Wind over Firmament's Cup -99313 : Lord of Wind over Firmament's Cup -99314 : Lord of Wind over Firmament's Cup -99320 : Lord of Wind over Firmament's Feather -99321 : Lord of Wind over Firmament's Feather -99322 : Lord of Wind over Firmament's Feather -99323 : Lord of Wind over Firmament's Feather -99324 : Lord of Wind over Firmament's Feather -99330 : Lord of Wind over Firmament's Crown -99331 : Lord of Wind over Firmament's Crown -99332 : Lord of Wind over Firmament's Crown -99333 : Lord of Wind over Firmament's Crown -99334 : Lord of Wind over Firmament's Crown -99340 : Lord of Wind over Firmament's Flower -99341 : Lord of Wind over Firmament's Flower -99342 : Lord of Wind over Firmament's Flower -99343 : Lord of Wind over Firmament's Flower -99344 : Lord of Wind over Firmament's Flower -99350 : Lord of Wind over Firmament's Hourglass -99351 : Lord of Wind over Firmament's Hourglass -99352 : Lord of Wind over Firmament's Hourglass -99353 : Lord of Wind over Firmament's Hourglass -99354 : Lord of Wind over Firmament's Hourglass -99410 : Lord of Wind over Firmament's Cup -99411 : Lord of Wind over Firmament's Cup -99412 : Lord of Wind over Firmament's Cup -99413 : Lord of Wind over Firmament's Cup -99414 : Lord of Wind over Firmament's Cup -99420 : Lord of Wind over Firmament's Feather -99421 : Lord of Wind over Firmament's Feather -99422 : Lord of Wind over Firmament's Feather -99423 : Lord of Wind over Firmament's Feather -99424 : Lord of Wind over Firmament's Feather -99430 : Lord of Wind over Firmament's Crown -99431 : Lord of Wind over Firmament's Crown -99432 : Lord of Wind over Firmament's Crown -99433 : Lord of Wind over Firmament's Crown -99434 : Lord of Wind over Firmament's Crown -99440 : Lord of Wind over Firmament's Flower -99441 : Lord of Wind over Firmament's Flower -99442 : Lord of Wind over Firmament's Flower -99443 : Lord of Wind over Firmament's Flower -99444 : Lord of Wind over Firmament's Flower -99450 : Lord of Wind over Firmament's Hourglass -99451 : Lord of Wind over Firmament's Hourglass -99452 : Lord of Wind over Firmament's Hourglass -99453 : Lord of Wind over Firmament's Hourglass -99454 : Lord of Wind over Firmament's Hourglass -99510 : Lord of Wind over Firmament's Cup -99511 : Lord of Wind over Firmament's Cup -99512 : Lord of Wind over Firmament's Cup -99513 : Lord of Wind over Firmament's Cup -99514 : Lord of Wind over Firmament's Cup -99520 : Lord of Wind over Firmament's Feather -99521 : Lord of Wind over Firmament's Feather -99522 : Lord of Wind over Firmament's Feather -99523 : Lord of Wind over Firmament's Feather -99524 : Lord of Wind over Firmament's Feather -99530 : Lord of Wind over Firmament's Crown -99531 : Lord of Wind over Firmament's Crown -99532 : Lord of Wind over Firmament's Crown -99533 : Lord of Wind over Firmament's Crown -99534 : Lord of Wind over Firmament's Crown -99540 : Lord of Wind over Firmament's Flower -99541 : Lord of Wind over Firmament's Flower -99542 : Lord of Wind over Firmament's Flower -99543 : Lord of Wind over Firmament's Flower -99544 : Lord of Wind over Firmament's Flower -99550 : Lord of Wind over Firmament's Hourglass -99551 : Lord of Wind over Firmament's Hourglass -99552 : Lord of Wind over Firmament's Hourglass -99553 : Lord of Wind over Firmament's Hourglass -99554 : Lord of Wind over Firmament's Hourglass -100001 : Apple -100002 : Sunsettia -100003 : A Piece of Paper -100004 : Stolen Items -100006 : Hilichurl Antidote -100007 : Climbing Finish Line Garland -100008 : Gliding Finish Line Garland -100009 : Gliding Finish Line Garland -100010 : Gliding Champion Cup -100011 : Mushroom -100012 : Sweet Flower -100013 : Carrot -100014 : Radish -100015 : Snapdragon -100016 : Mint -100017 : Wheat -100018 : Cabbage -100019 : Silver Lotus -100020 : Pinecone -100021 : Wolfhook -100022 : Valberry -100023 : Cecilia -100024 : Windwheel Aster -100025 : Philanemo Mushroom -100026 : Lotus Head -100027 : Jueyun Chili -100028 : Noctilucous Jade -100029 : Silk Flower -100030 : Glaze Lily -100031 : Qingxin -100032 : Horsetail -100033 : Starconch -100034 : Violetgrass -100051 : Berry -100052 : Mist Flower Corolla -100053 : Flaming Flower Stamen -100054 : Electro Crystal -100055 : Small Lamp Grass -100056 : Calla Lily -100057 : Dandelion Seed -100058 : Cor Lapis -100061 : Raw Meat -100062 : Bird Egg -100063 : Matsutake -100064 : Fowl -100072 : Butterfly Wings -100073 : Crab -100074 : Crab Roe -100075 : Salt -100076 : Onion -100077 : Pepper -100078 : Milk -100079 : Tomato -100080 : Potato -100081 : Frog -100082 : Luminescent Spine -100083 : Lizard Tail -100084 : Fish -100085 : Crystal Core -100086 : Raw Meat (S) -100087 : Fowl (S) -100088 : Tofu -100089 : Almond -100090 : Loach Pearl -100091 : Bamboo Shoot -100092 : Rice -100093 : Shrimp Meat -100094 : Chilled Meat -100095 : Unagi Meat -100101 : Jean's Document Package -100102 : Extreme Escape -100103 : Incomplete Score (Part 1) -100104 : Incomplete Score (Part 2) -100105 : Private Letter from Lisa to Jean -100106 : Autumn Night -100107 : Tasty-Looking Potion -100108 : Potion -100109 : Barbara's Treatment -100110 : Incomplete Poem (Part 1) -100111 : Incomplete Poem (Part 2) -100112 : Incomplete Poem (Part 3) -100113 : Inscription Rubbing -100114 : Form Restoration Potion -100115 : Holy Lyre der Himmel -100120 : Cricket Hair -100121 : Cricket (White) -100122 : Cricket (Blue) -100123 : Cricket (Purple) -100124 : Cricket (Gold) -100125 : Hydro Amber -100126 : Anemo Amber -100131 : Random Loot (A) -100132 : Random Loot (B) -100133 : Random Loot (A) -100134 : Random Loot (B) -100135 : Crimson Crystal -100136 : Seal Clue 101 -100137 : Seal Clue 102 -100138 : Seal Clue 103 -100139 : Seal Clue 201 -100140 : Seal Clue 202 -100141 : Seal Clue 203 -100142 : Seal Clue 301 -100143 : Seal Clue 302 -100144 : Seal Clue 303 -100145 : Break Seal 1 -100146 : Break Seal 2 -100147 : Break Seal 3 -100148 : Investigate the Seal of Stormterror's Lair -100149 : Break the seal of Stormterror's Lair -100151 : Fragmented Memory (Wind) -100152 : Sword Cemetery Seal 1 -100153 : Sword Cemetery Seal 2 -100154 : Sword Cemetery Seal 3 -100158 : Teardrop Crystal -100159 : Teardrop Crystal -100160 : Teardrop Crystal -100161 : Holy Lyre der Himmel -100162 : Partially Repaired Holy Lyre der Himmel -100163 : Completely Repaired Holy Lyre der Himmel -100164 : Clear Dvalin Tear -100165 : Damaged Holy Lyre der Himmel -100171 : Treasure Clue (I) -100172 : Treasure Clue (II) -100173 : Treasure Map -100174 : Universal Temporary Interaction -100175 : Hidden Key -100176 : Black Key -100177 : Scene Interaction -100178 : Vera's Melancholy (I) -100179 : Vera's Melancholy (II) -100180 : Vera's Melancholy (III) -100181 : Along with Divinity: Prologue -100182 : The Legend of Vennessa (I) -100183 : The Legend of Vennessa (II) -100184 : Poster -100185 : Poster -100186 : Mondstadt General Goods Order Board -100187 : Cat's Tail Tavern Message Board -100188 : The Fox in the Dandelion Sea (I) -100189 : The Fox in the Dandelion Sea (II) -100190 : The Fox in the Dandelion Sea (III) -100191 : The Fox in the Dandelion Sea (V) -100192 : The Fox in the Dandelion Sea (VI) -100193 : The Fox in the Dandelion Sea (VII) -100194 : The Fox in the Dandelion Sea (X) -100195 : The Fox in the Dandelion Sea (XI) -100196 : Hilichurl Ballad Selection (I) -100197 : Hilichurl Ballad Selection (II) -100198 : Vera's Melancholy (V) -100199 : Vera's Melancholy (IX) -100200 : Vera's Melancholy (X) -100201 : Breeze Amidst the Forest - Ballad Selection Excerpt -100202 : The Boar Princess (I) -100203 : The Boar Princess (II) -100204 : The Boar Princess (III) -100205 : The Boar Princess (IV) -100206 : The Boar Princess (V) -100207 : The Boar Princess (VII) -100208 : The Mondstadt Tower (I) -100210 : Elemental Mark -100211 : Broken-off Branch -100212 : Fabric Piece -100213 : Breeze Amidst the Forest Supplement: The Dragon Tome -100214 : Letter from the Abyss Order -100215 : The Pale Princess and the Six Pygmies (I) -100216 : The Pale Princess and the Six Pygmies (II) -100217 : The Pale Princess and the Six Pygmies (III) -100218 : The Pale Princess and the Six Pygmies (IV) -100219 : The Pale Princess and the Six Pygmies (V) -100220 : The Pale Princess and the Six Pygmies (VI) -100221 : The Pale Princess and the Six Pygmies (VII) -100222 : 1000 Years of Loneliness -100223 : Teyvat Travel Guide - Mondstadt -100224 : Wind, Courage, and Wings -100225 : Hunting Trap -100226 : Diary of Roald the Adventurer: Qingce Village -100227 : Diary of Roald the Adventurer: Luhua Pool -100228 : Diary of Roald the Adventurer: Yaoguang Shoal -100229 : Letter for Dongdong -100230 : Someone's Diary I: Yaoguang Shoal -100231 : Scattered Page -100232 : Intact Tome -100233 : Hearty Mushrooms -100234 : Crunchy Carrots -100235 : A Plump Cabbage -100236 : Gliding Instruction Manual -100237 : Azurite -100238 : Vermillionite -100239 : Someone's Diary II: Guili Plains -100240 : Someone's Diary III: Jueyun Karst -100241 : Someone's Diary IV: Liyue Harbor -100242 : Letter to the Treasure Hoarders -100243 : Nephrite Ring -100244 : Delicious Golden Crab -100245 : "Of Mountains and Seas" -100246 : Draft Manuscript of "Hyakunin Ikki: The Greatest Battle" -100301 : Wyatt's Red Key -100302 : Wyatt's Black Key -100303 : Coin Pouch -100304 : Meal Fee Pouch -100305 : Delicious Sticky Honey Roast -100306 : Sturdy Plank -100307 : Fragile Wooden Plank -100308 : A Bundle of Ropes -100309 : Meal Fee Pouch -100310 : Lost Coin Pouch -100311 : Meal Fee Pouch -100312 : Delicious Fried Radish Balls -100313 : Delicious Calla Lily Seafood Soup -100314 : Bag of Goods -100315 : Processed Noctilucous Jade -100316 : "Mondstadt Sunset" -100317 : "Margaret" -100318 : "Charged Attack" -100319 : "Pearl" -100320 : Messy "Mondstadt Sunset" -100321 : Unusual "Margaret" -100322 : Bizarre "Charged Attack" -100323 : Unusual "Pearl" -100324 : Odd Cocktail -100325 : Messy Cocktail -100326 : Bizarre Cocktail -100327 : Unusual Beer -100328 : Barely Drinkable Cocktail -100329 : Unknown Cocktail -100330 : Plain Liquor -100331 : (TEST) Cocktail 16 -100332 : (TEST) Cocktail 17 -100333 : (TEST) Cocktail 18 -100334 : (TEST) Cocktail 19 -100335 : (TEST) Cocktail 20 -100336 : (TEST) Cocktail 21 -100337 : (TEST) Cocktail 22 -100338 : (TEST) Cocktail 23 -100339 : (TEST) Cocktail 24 -100340 : (TEST) Cocktail 25 -100341 : (TEST) Cocktail 26 -100342 : (TEST) Cocktail 27 -100343 : (TEST) Cocktail 28 -100344 : (TEST) Cocktail 29 -100345 : (TEST) Cocktail 30 -100346 : (TEST) Cocktail 31 -100347 : (TEST) Cocktail 32 -100348 : Godwin's Letter -100349 : Someone's Drifting Bottle -100350 : (TEST) Klee's Notebook -100351 : Tunner's Cough Syrup -100352 : Draff's Letter -100353 : Materials for Training Dummy -100354 : Sara's Letter -100355 : Clean Radish -100356 : Guy's Letter -100357 : Quinn's Special -100358 : Margaret's Special -100359 : Jack's Special -100360 : Draff's Special -100361 : Teyvat Travel Guide - Liyue -100362 : Letter -100363 : A Huge Bag of Mora -100364 : Legend of the Shattered Halberd (VI) -100365 : Intact Training Dummy -100366 : Legend of the Geo Archon: God of the Stove -100367 : Legend of the Geo Archon: The Groundbreaker -100368 : Legend of the Geo Archon: God of Wealth -100369 : Legend of the Geo Archon: God of History -100370 : The Wrath of Haishan -100371 : -100372 : -100373 : Ring of Raining Blades (I) -100374 : Ring of Raining Blades (II) -100375 : -100376 : Meal Box by Smiley Yanxiao for Jiangxue -100377 : A log of ships coming in and out by Little Lulu -100378 : A log of ships coming in and out by Little Lulu -100379 : A log of ships coming in and out by Little Lulu -100380 : A log of ships coming in and out by Little Fei -100381 : A log of ships coming in and out by Little Fei -100382 : A log of ships coming in and out by Little Fei -100383 : A log of ships coming in and out by Little Meng -100384 : A log of ships coming in and out by Little Meng -100385 : A log of ships coming in and out by Little Meng -100386 : Sealed Package -100387 : First Apprentice of Guhua -100388 : Diary of Roald the Adventurer: Guyun Stone Forest -100389 : Diary of Roald the Adventurer: Sal Terrae -100390 : Diary of Roald the Adventurer: Qingyun Peak, Jueyun Karst -100391 : Diary of Roald the Adventurer: Aocang Lake, Jueyun Karst -100392 : Treasure Map of Lone Gorge -100393 : Treasure Map of Lone Gorge -100394 : Treasure Map of Lone Gorge -100395 : Poorly-Sealed Box -100396 : Tightly-Sealed Box -100397 : -100398 : Katheryne's Letter -100399 : Records of Jueyun: Stone Beasts -100400 : Records of Jueyun: Palace Beneath the Sea -100401 : Verses of Equilibrium -100402 : Records of the Gallant: The Hermit -100403 : Customs of Liyue: Flower Ball -100404 : Stone Tablet Compilations: Vol. I -100405 : Humor From Tianheng -100406 : Hilichurl Cultural Customs (I) -100407 : Hilichurl Cultural Customs (II) -100408 : Hilichurl Cultural Customs (IV) -100409 : History of Kings and Clans: Prologue -100410 : Biography of Gunnhildr -100411 : Ballads of the Squire (I) -100412 : Ballads of the Squire (II) -100413 : Teyvat Wilderness Survivalist's Recipes -100414 : Treasure Map of Giant's Steps -100415 : Treasure Map of Giant's Steps -100416 : Treasure Map of Giant's Steps -100417 : Treasure Map of The Vast Blue -100418 : Treasure Map of The Vast Blue -100419 : Treasure Map of The Vast Blue -100420 : -100421 : -100422 : -100423 : -100424 : -100425 : -100426 : Yakshas: The Guardian Adepti -100427 : Witness Sigil -100428 : Special Almond Tofu -100429 : Dropped Package -100430 : Sigil of Permission -100431 : Klee's Wooden Sign -100432 : Legend of the Shattered Halberd (I) -100433 : Legend of the Shattered Halberd (II) -100434 : Legend of the Shattered Halberd (III) -100435 : Legend of the Shattered Halberd (IV) -100436 : Legend of the Shattered Halberd (V) -100437 : Heart's Desire: Moonlight -100438 : Heart's Desire: Crystal Glaze -100439 : Heart's Desire: Sapphire -100440 : Heart's Desire: Stone Heart -100441 : Diary of Roald the Adventurer: Qingxu Pool -100442 : Traveler's Notes -100443 : Traveler's Notes -100444 : Traveler's Notes -100445 : Traveler's Notes -100450 : Censer -100451 : Seven-Star Lamp -100452 : Letter from Starsnatcher -100453 : Special Mondstadt Hash Brown -100454 : Dendro-Processed Berry -100455 : Thick Hydro Slime Condensate -100456 : Wind-Caressed Aster -100457 : Collected Fragment -100458 : Collected Fragment -100459 : Collected Fragment -100460 : Transcription from a stone tablet -100461 : Transcription from a stone tablet -100462 : Transcription from a stone tablet -100463 : Transcription from a stone tablet -100464 : Transcription from a stone tablet -100465 : Transcription from a ruin -100466 : Transcription from a ruin -100467 : Hidden Treasure of Qingce -100468 : -100469 : Draft Lines of Hilichurlian Poetry -100470 : -100471 : -100472 : A Letter by Timmie -100473 : Marjorie's Recommended Gift -100474 : A Gift from Quinn -100475 : Sara's Special Dish -100476 : Traveling Merchant's Package -100477 : Box of Goods Invoices -100478 : Box of Goods Invoices -100479 : Box of Goods Invoices -100480 : Heart of Clear Springs (I) -100481 : Heart of Clear Springs (II) -100482 : Heart of Clear Springs (III) -100483 : Heart of Clear Springs (IV) -100484 : Linling's Anthology of Selected Poetry -100485 : Goods Invoice -100486 : Invoice of Goods Quantities -100487 : Golden House Maiden -100488 : Valley Weaver -100489 : Fate's Yearning -100490 : Golden House Maiden Essential Oil -100491 : Valley Weaver Essential Oil -100492 : Fate's Yearning Essential Oil -100493 : Bao'er's Empty Box -100494 : Heavy Box -100495 : Sopping Wet Page -100496 : A Huge Bag of Mora -100497 : Golden House Maiden Perfume -100498 : Valley Weaver Perfume -100499 : Fate's Yearning Perfume -100500 : A Box of Gadgets -100501 : Cleansing Bell -100502 : Guizhong Ballista Maintenance Material -100503 : A Record of Qiming and Zhihua's Conversation -100504 : A Record of Sisi and Chaoxi's Conversation -100505 : A Record of Little Meng, Little Fei, and Little Lulu's Conversation -100506 : Norma's Order -100507 : Hilichurl Ballad: Recital Draft -100508 : Hilichurl Ballad: Narrative Draft -100509 : Hilichurl Ballad: Lyrical Draft -100510 : Vile's Gift -100511 : Stolen Relic -100512 : Madame Ping's Box -100513 : A Torn Out Page -100514 : Page of Scribbled Writing -100515 : Noctilucous Jade Sample -100516 : A Bag of Mora -100517 : Mitachurl Loot -100518 : Treasure Hoarder Loot -100519 : Ruin Guard Loot -100520 : Noctilucous Jade Sample -100521 : Noctilucous Jade Sample -100522 : Everlasting Incense -100523 : Guizhong Ballista Maintenance Material -100524 : Sturdy Wooden Plank -100525 : Box of Leaves -100526 : -100527 : -100528 : Treasure Hoarder's Key -100529 : Alrani's Note -100530 : Nameless Treasure -100531 : Nameless Treasure -100532 : Nameless Treasure -100533 : Stone of Remembrance -100534 : Dull Ring -100535 : Vermeer's Paintbrushes -100536 : Vermeer's Paints -100537 : Black and White Sketch -100538 : Color Sketch -100539 : Nameless Sketch -100540 : Strange Stone -100541 : Fresh Qingxin -100542 : Good Hunter's Specialty Dish -100543 : Flora's Bookmark -100544 : Special Beverage from Angel's Share -100545 : Special Perfume -100546 : Mint Essential Oil -100547 : Tasty Slime Condensate -100548 : Extra-Sweet Sweet Flower -100549 : Fresh Sweet Flower -100550 : Fresh Cecilia -100551 : Fresh Windwheel Aster -100552 : Fresh Small Lamp Grass -100553 : Strange Cocktail Ingredient -100554 : Teucer's Mora Pouch -100555 : Childe and Teucer's Mora Pouch -100556 : Plump Sunsettia -100557 : Merchant Poster -100558 : Merchant Poster -100559 : Merchant Poster -100560 : Jiayi's Gifts -100561 : Treasure Hoarder's Map -100562 : Ragged Notebook -100563 : Strange Stone -100564 : Knights of Favonius Handbook - 5th Edition -100565 : Tales From the Waves: Rising Tide -100566 : Tales From the Waves: Wild Storm -100567 : Tales From the Waves: Receding Torrent -100568 : Hex & Hound (I) -100569 : Hex & Hound (II) -100570 : Hex & Hound (III) -100571 : Hex & Hound (IV) -100572 : Hex & Hound (V) -100573 : Moonlit Bamboo Forest (I) -100574 : Moonlit Bamboo Forest (II) -100575 : Moonlit Bamboo Forest (III) -100576 : Moonlit Bamboo Forest (IV) -100577 : A Drunkard's Tale (I) -100578 : A Drunkard's Tale (II) -100579 : A Drunkard's Tale (III) -100580 : A Drunkard's Tale (IV) -100581 : -100582 : -100583 : "Dwelling in the Clouds" Blueprints -100584 : Tainted Blood -100585 : Monolith Fragment -100586 : Rex Incognito (I) -100587 : Rex Incognito (II) -100588 : Rex Incognito (III) -100589 : Rex Incognito (IV) -100590 : Legend of the Lone Sword (I) -100591 : Legend of the Lone Sword (II) -100592 : Legend of the Lone Sword (III) -100593 : Legend of the Lone Sword (IV) -100594 : Little Liu's Gifts -100595 : Chaoxi's Reply to Cui'er -100596 : Little Yue's Gift -100597 : Yinxing's Letter to Bolai -100598 : Clerk Zhao's Invoice for Jiangzhou -100599 : Clerk Zhao's Invoice for Nervous An -100600 : Cui'er's Letter to Chaoxi -100601 : Thick Notebook -100602 : Jack's Map -100603 : Jack's Adventurer Handbook -100604 : Cage Key -100605 : Sugar-Frosted Slime -100606 : Wild Glaze Lily -100607 : The Fox in the Dandelion Sea (IV) -100608 : The Fox in the Dandelion Sea (VIII) -100609 : The Fox in the Dandelion Sea (IX) -100610 : The Boar Princess (VI) -100611 : Vera's Melancholy (IV) -100612 : Vera's Melancholy (VI) -100613 : Vera's Melancholy (VII) -100614 : Vera's Melancholy (VIII) -100615 : Hilichurl Cultural Customs (III) -100616 : -100617 : "Of Mountains and Seas" -100618 : Strange Tooth -100619 : Vitalized Dragontooth -100620 : Princess's Box -100621 : Priest's Box -100622 : Scribe's Box -100623 : Very Ordinary-Looking Sweet Flower -100624 : Customs of Liyue: Receiving God -100625 : Mr. Cyclops Action Figure -100626 : Little Liu's Letter -100627 : Used Training Dummy -100628 : Crude Sack -100629 : Mysterious Stone Tablet -100630 : Treasure Hoarder Scouting Report -100631 : Viktor's Lost Box -100632 : Notice Paper -100633 : Old Business Permit -100634 : Business Premises and Safety Certificates -100635 : Approved Exit Permit -100636 : Great Snowboar King Meat -100637 : Records of Jueyun: Wuwang -100638 : Records of Jueyun: Mountain Spirits -100639 : Meadow of Gems -100640 : Customs of Liyue: Silk Flowers -100641 : Customs of Liyue: Glaze Lilies -100642 : String of Pearls (I) -100643 : String of Pearls (II) -100644 : String of Pearls (III) -100645 : Ancient Investigation Journal: Part I -100646 : Special Mondstadt Hash Brown -100647 : Special Almond Tofu -100648 : Special Jewelry Soup -100649 : Special Sweet Madame -100650 : Special Matsutake Meat Rolls -100651 : Special Jade Parcels -100652 : Special Flaming Red Bolognese -100653 : Special Black-Back Perch Stew -100654 : Special Mora Meat -100655 : Special Tea Break Pancake -100656 : Special Come and Get It -100657 : Special Jueyun Chili Chicken -100658 : Special Mondstadt Hash Brown -100659 : Special Black-Back Perch Stew -100660 : Special Come and Get It -100661 : Special Mondstadt Grilled Fish -100662 : Special Stir-Fried Filet -100663 : Special Lotus Seed and Bird Egg Soup -100664 : Special Fisherman's Toast -100665 : Special Almond Tofu -100666 : Special Jewelry Soup -100667 : Orders -100668 : -100669 : -100670 : -100671 : -100672 : -100673 : -100674 : -100675 : -100676 : -100677 : -100678 : -100679 : -100680 : -100681 : Jiayi's Letter -100682 : Nostalgic Jueyun Chili Chicken -100683 : Luxurious Toybox -100684 : Congzi's Plaustrite Shards -100685 : Custom-Made Xiao Lantern -100686 : Glory's Dandelion Seeds -100687 : Letter to Cyrus -100688 : Qingzhou's Signature -100689 : Package of Fresh Flowers -100690 : Package of Fresh Flowers -100691 : Rex Incognito (IV) -100692 : Ancient Investigation Journal: Part II -100693 : Ancient Investigation Journal: Part III -100694 : -100695 : -100696 : -100697 : -100698 : -100699 : Invoice From Second Life -100700 : Package of Fresh Flowers -100701 : Package of Fresh Flowers -100702 : Package of Fresh Flowers -100703 : Thank-You Letter -100704 : Experimental Potion -100705 : Chilled Meat -100706 : Diary of Roald the Adventurer: Dragonspine -100707 : Kamera Picture -100708 : Kamera Picture -100709 : Sigil of Permission -100710 : Harris' Special Cream Stew -100711 : Treasure Map -100712 : Strange Note -100713 : A Bag of Mora -100714 : Water-Logged Box -100715 : Meadow of Gems -100716 : Starsilver Catalyst -100717 : Starsilver Catalyst -100718 : Starsilver Catalyst -100719 : Starsilver Catalyst -100720 : Starsilver Catalyst -100721 : -100722 : -100723 : Dummy's Xiao Lantern -100724 : Unnamed Mingxiao Lantern -100725 : -100726 : Herbalist Gui's Medicine -100727 : Starsilver Catalyst -100728 : Dandelion Seed -100729 : Siyu's Xiao Lantern -100730 : Records of Jueyun: Qilin -100731 : Records of Jueyun: Hidden Jade -100732 : Records of the Gallant: Black Raccoons -100733 : Records of the Gallant: Dust -100734 : Hex & Hound (VI) -100735 : Hex & Hound (VII) -100736 : Hex & Hound (VIII) -100737 : Aunt Qiao's Almond Tofu -100738 : Zhuyu's Golden Shrimp Balls -100739 : Ominous Dish -100740 : Lost Adventure Notebook -100741 : Broken Xiao Lantern Lampshade -100742 : Hard Iron Chunk -100743 : Hard Crystal Chunk -100744 : Red Wolfhook -100745 : Fresh Jueyun Chili -100746 : Handpicked Gift -100747 : Lantern Rite Gift -100748 : Pyro Whopperflower Nectar -100749 : Wanmin Restaurant Take-Away -100750 : Strange Box -100751 : Inscribed Xiao Lantern -100752 : Soil Sample -100753 : Fresh Qingxin -100754 : Slime-Swallowed Calla Lily -100755 : Fresh Lotus Head -100756 : Plank -100757 : Fresh Raw Meat -100758 : High-Quality Chilled Meat -100759 : Picture of Windblume Festival -100760 : Picture of Windblume Festival -100761 : Picture of Windblume Festival -100762 : Wondrous Lovely Flower -100763 : Watch Out! -100764 : Fresh Valberry -100765 : Pyro Slime Condensate -100766 : Special Bottle -100767 : Notes of Some Kind -100768 : Ward -100769 : Ward -100770 : Ioroi's Ward -100771 : Scroll-Shaped Ward -100772 : Key-Shaped Ward -100773 : -100774 : Old Key -100775 : Old Stone Slate -100776 : Old Stone Slate -100777 : Old Stone Slate -100778 : Old Stone Slate -100779 : Rather Fine Dandelion Seeds -100780 : Rather Fine Windwheel Aster -100781 : Special Beverage -100782 : Special Beverage -100783 : Hex & Hound (IX) -100784 : Hex & Hound (X) -100785 : Hex & Hound (XI) -100786 : String of Pearls (IV) -100787 : String of Pearls (V) -100788 : Handy Handbook of Hilichurlian -100789 : Bamboo Slip -100790 : Bamboo Slip -100791 : Bamboo Slip -100792 : Bamboo Slip -100793 : Bamboo Slip -100794 : Bamboo Slip -100795 : Bamboo Slip -100796 : Bamboo Slip -100797 : Bamboo Slip -100798 : Fortune Slip -100799 : Fortune Slip -100800 : Fortune Slip -100801 : Fortune Slip -100802 : Fortune Slip -100803 : Fortune Slip -100804 : Fortune Slip -100805 : Fortune Slip -100806 : Fortune Slip -100807 : Strange Fortune Slip -100808 : Strange Fortune Slip -100809 : Strange Fortune Slip -100810 : Strange Fortune Slip -100811 : Picture of Cape Oath -100812 : Picture of Starsnatch Cliff -100813 : Picture of Windrise -100814 : Cyrus' Letter to Iris -100815 : Picture of Dragonspine -100816 : The Crux Clash Champion Medal -100817 : Well-Packaged Gebratenes Fleisch mit Sauerkraut -100818 : Tea Break Pancake Cooked by Lily -100819 : Mysterious Mechanical Part -100820 : Pale Yellow Crystal -100821 : Pale Red Crystal -100822 : Pale Blue Crystal -100823 : Pale Yellow Scale -100824 : Pale Blue Scale -100825 : Pale Red Scale -100826 : Cat Food -100827 : Cat Toy -100828 : Fresh Fish Scales -100829 : Some Strange... Drink? -100830 : Purse by the Dried-Up Well -100831 : Archaic Stone -100832 : Slightly Damaged Wooden Plank -100833 : Somewhat Rotten Wooden Plank -100834 : -100835 : Smaragdus Jadeite -100836 : Smaragdus Nephrite Fragment -100837 : The Jade Mystery's Affidavit -100838 : Ministry of Civil Affairs' Affidavit -100839 : Bubu Pharmacy's Affidavit -100840 : Fresh Slime Condensate -100841 : Minacious Isle Mural -100842 : Broken Isle Mural -100843 : Nameless Island Mural -100844 : Twinning Isle Mural -100845 : Illegible Notes -100846 : Fresh Fish -100847 : -100848 : -100849 : Ragged List of Goods -100850 : Cargo Bag Fished Out From Water -100851 : Nameless Islet Mural -100852 : Clear Image -100853 : Somewhat Clear Image -100854 : Rather Foggy Image -100855 : A Discarded Blade -100856 : A Jug of Wine -100857 : A Masterless Blade -100858 : Bag of Flower Seeds -100859 : Mysterious Conch -100860 : -100861 : The Sage Aetolia Will Die Tomorrow -100862 : The Honest Cat's Little Lie -100863 : Literature Club -100864 : Rust-Worn Key -100865 : Mask of Memories -100866 : The Violet Oni's Blade -100867 : The Crimson Oni's Blade -100868 : Fortune Slip -100869 : Fortune Slip -100870 : Fortune Slip -100871 : Fortune Slip -100872 : Fortune Slip -100873 : Fortune Slip -100874 : Fortune Slip -100875 : Chang the Ninth's Gift -100876 : Zhenyu's Gift -100880 : Cage Key -100881 : Metal Key -100882 : Atsuko's Letter -100883 : Illegible Fortune Slip -100884 : Damaged Note -100885 : Luxurious Silk Cloth -100886 : Special Recipe: Mushroom Pizza -100887 : -100888 : -100889 : Chef Mao's Special Jueyun Chili Chicken -100890 : Xiangling's Handwritten Notes -100891 : Yellowed Letter -100892 : Vahid's Kneaded Onigiri -100893 : Naganohara Fireworks Note -100894 : Spirit Pearl -100895 : Key of the Moon-bathed Deep -100896 : Strange Bottle -100897 : Water Welling With "Wishes" -100898 : Spiritherb Water -100899 : Rinzou's Letter -100900 : Rinzou's Signet -100901 : Hidden Ledger -100902 : Komore Teahouse Invitation Letter -100903 : A Love Letter(?) -100904 : Cooked Meat -100905 : "The Seventh Samurai" Script -100906 : -100907 : A Note Left by Someone -100908 : Bamboo Slip -100909 : Bamboo Slip -100910 : Bamboo Slip -100911 : Bamboo Slip -100912 : Bamboo Slip -100913 : Bamboo Slip -100914 : Bamboo Slip -100915 : -100916 : Lightly-Perfumed Letter -100917 : Travel Permit -100918 : Kujou Kamaji's Letter -100919 : Snack Box -100920 : Dull Golden Bridle -100921 : Golden Bridle -100922 : Reins of Revival Fragment (The Narrows) -100923 : Reins of Revival Fragment (Temple) -100924 : Reins of Revival Fragment (Serpent's Heart) -100925 : Reins of Revival -100926 : Offerings of The Narrows -100927 : Offerings of the Temple -100928 : Offerings of the Serpent's Heart -100929 : The Serpent and Drakes of Tokoyokoku -100930 : Bathysmal Vishap Experimental Records -100931 : Before Sun and Moon -100932 : Hydrological Studies in Byakuyakoku -100933 : In the Light, Beneath the Shadow -100934 : Key Sigil -100935 : Key Sigil -100936 : Key Sigil -100937 : Key Sigil -100938 : Key Sigil -100939 : Bloodbranch Coral -100940 : Divine Bridle -100941 : Date's Medal of Recognition -100942 : Date's Medal of Recognition -100943 : Secret Room Key -100944 : Waters of Lethe -100945 : Dragonbone Orb -100946 : Key to Some Place -100947 : Key to Some Place -100948 : Key to Some Place -100949 : Sun-Dried Sweet Flower -100950 : Peculiar Pinion -100951 : Maushiro -100952 : Maushiro -100953 : -100954 : -100955 : An Onikabuto Affected by Tatarigami -100956 : Missing Component(s) -100957 : Funerary Mask -100958 : Musoujin Gorge: Rock Pillar Pearl -100959 : Musoujin Gorge: Rock Pillar Warding Stone -100960 : Serpent's Head: Rock Pillar Pearl -100961 : Serpent's Head: Rock Pillar Warding Stone -100962 : Jakotsu Mine: Rock Pillar Pearl -100963 : Jakotsu Mine: Rock Pillar Warding Stone -100964 : Fort Mumei: Rock Pillar Pearl -100965 : Fort Mumei: Rock Pillar Warding Stone -100966 : Naku Weed Seed -100967 : High-Quality Chilled Meat -100968 : Piping-Hot Braised Meat -100969 : Family Letter -100970 : Tattered Letter -100971 : Pharmacist's Notebook (I) -100972 : Pharmacist's Notebook (II) -100973 : Pharmacist's Notebook (III) -100974 : Unsealed Letter -100975 : Inaba Tousaburou Kyuuzou's Final Words -100976 : Star-Shaped Gem -100977 : Stone Slate -100978 : Kamuijima Cannon Map -100979 : Secret Notes -100980 : High-Quality Rice -100981 : Fragrant Rice Pudding -100982 : Anemo Slime-Swallowed Bamboo Shoots -100983 : Piping-Hot Oncidium Tofu -100984 : Fossil Bag -100985 : "Treasury" Key -100986 : Incomplete Notes -100987 : Tattered Paper -100988 : Picture Commemorating Seirai Island -100989 : Picture Commemorating Seirai Island (II) -100990 : Picture Commemorating Seirai Island (III) -100991 : Picture Commemorating Seirai Island (IV) -100992 : Fujiwara Toshiko's Treasure Map -100993 : A Bag of Beans -100994 : -100995 : Right-Side Photo -100996 : Left-Side Photo -100997 : Inferior Starsilver -100998 : Quality Starsilver -100999 : Key -101000 : Box of Clothes -101001 : Iron Chunk -101002 : White Iron Chunk -101003 : Crystal Chunk -101004 : Magical Crystal Chunk -101005 : Scarlet Quartz -101006 : Starsilver -101007 : Scarlet Quartz -101008 : Amethyst Lump -101101 : Northlander Sword Billet -101102 : Northlander Bow Billet -101103 : Northlander Claymore Billet -101104 : Northlander Catalyst Billet -101105 : Northlander Polearm Billet -101106 : Northlander Sword -101107 : Northlander Bow -101108 : Northlander Claymore -101109 : Northlander Catalyst -101110 : Northlander Polearm -101201 : Onikabuto -101202 : Sakura Bloom -101203 : Crystal Marrow -101204 : Dendrobium -101205 : Naku Weed -101206 : Sea Ganoderma -101207 : Sango Pearl -101208 : Amakumo Fruit -101209 : Fluorescent Fungus -101210 : Seagrass -101211 : Lavender Melon -101212 : Starshroom -101301 : Birch Wood -101302 : Cuihua Wood -101303 : Pine Wood -101304 : Sandbearer Wood -101305 : Bamboo Segment -101306 : -101307 : Fragrant Cedar Wood -101308 : Fir Wood -101309 : Yumemiru Wood -101310 : Maple Wood -101311 : Aralia Wood -101312 : Otogi Wood -101401 : Fabric -101402 : Red Dye -101403 : Yellow Dye -101404 : Blue Dye -101501 : Torn Page: Toki Alley Tales (Prologue) -101502 : Torn Page: Toki Alley Tales (I) -101503 : Torn Page: Toki Alley Tales (II) -101504 : Torn Page: Toki Alley Tales (III) -101505 : Torn Page: Toki Alley Tales (IV) -101506 : Torn Page: Toki Alley Tales (V) -101507 : Toki Alley Tales (Prologue) -101508 : Toki Alley Tales (I) -101509 : Toki Alley Tales (II) -101510 : Toki Alley Tales (III) -101511 : Toki Alley Tales (IV) -101512 : Toki Alley Tales (V) -101513 : Pass Permit -101514 : Dango Milk -101515 : Realm Dispatch -101516 : -101517 : Special Sakura Bloom -101518 : Thunder Sakura Crab -101519 : Fresh Seagrass -101520 : Fresh Sakura Bloom -101521 : Fresh Snapdragon -101522 : Fresh Bird Egg -101523 : New Chronicles of the Six Kitsune: Prologue -101524 : New Chronicles of the Six Kitsune (I) -101525 : New Chronicles of the Six Kitsune (II) -101526 : New Chronicles of the Six Kitsune (III) -101527 : New Chronicles of the Six Kitsune (IV) -101528 : Sangonomiya Chronicles -101529 : The Saga of Hamavaran (Preface) -101530 : The Saga of Hamavaran (I) -101531 : The Saga of Hamavaran (II) -101532 : A Legend of Sword (I) -101533 : A Legend of Sword (II) -101534 : A Legend of Sword (III) -101535 : A Legend of Sword (IV) -101536 : A Legend of Sword (V) -101537 : Sacred Sakura Cleansing Summary -101538 : Fresh Mushroom -101539 : Crab Bait -101540 : Someone's Diary V: Jinren Island -101541 : Diary of Roald the Adventurer: Ritou -101542 : Grand Narukami Shrine Omamori -101543 : Official Tenryou Commission Document -101544 : Tenryou Commission Secret Letter -101545 : Supersized Firework -101546 : Special Magical Crystal Ore -101547 : Ore Slag -101548 : Princess Mina of the Fallen Nation (I) -101549 : Princess Mina of the Fallen Nation (II) -101550 : Princess Mina of the Fallen Nation (III) -101551 : Princess Mina of the Fallen Nation (IV) -101552 : Princess Mina of the Fallen Nation (V) -101553 : Princess Mina of the Fallen Nation (VI) -101554 : Flowers for Princess Fischl (0) -101555 : -101556 : -101557 : -101558 : Teyvat Travel Guide - Inazuma -101559 : Drifting Bottle With Letter -101560 : Onibudou -101561 : Grand Narukami Shrine Omamori -101570 : Lucky Omamori -101571 : Box of Nails -101572 : Planks -101573 : Rope -101574 : -101575 : Kito's Sachet -101576 : Treasure Map Fragment -101577 : Treasure Map Fragment -101578 : Treasure Map Fragment -101579 : Treasure Map Fragment -101580 : A Treasure Map Left for Shitoki -101581 : Makiri's Charm -101582 : General Purpose Directional Conduction Component -101583 : Rust-Worn Key -101584 : Heavy Key -101585 : Intact Key -101586 : Sumida's Letter -101587 : New Firework Model -101588 : New Chronicles of the Six Kitsune (V) -101589 : Northland Bank Check -101590 : Scrawled Treasure Map -101591 : Kiminami Anna's Invigorating Kitty Meal -101592 : Autake Slate -101593 : General Purpose Directional Conduction Component -101594 : General Purpose Directional Conduction Component -101595 : General Purpose Directional Conduction Component -101596 : A Preliminary Study of Sangonomiya Folk Belief -101597 : The Life of Mouun the Shrine Maiden -101598 : Debates on the "Viceroy of the East" -101599 : Treasured Tales of the Chouken Shinkageuchi (I) -101600 : Mysterious Stone -101601 : Diary of Roald the Adventurer: Tsurumi Island -101602 : Fresh Meat -101603 : Fresh Fish -101604 : Bag of Retrieved Items -101605 : Repaired Comb -101606 : Mysterious Flyer -101607 : Rigorous Schedule -101608 : Simple Schedule -101609 : Starsplinter Iron -101610 : Subrosium -101611 : Wonder Core -101612 : Adepti Sigil -101613 : Records of a Changing Village -101614 : Ragged Notebook -101615 : Mountainous Miscellany -101616 : Neatly-Written Note -101617 : Little Meng's Drifting Bottle -101618 : Lumenstone -101619 : Muning's Note -101620 : Treasure Map Fragment -101621 : Treasure Hoarders' Treasure Map -101622 : Storehouse Security Key No. 1 -101623 : Storehouse Security Key No. 2 -101624 : A Set of Cannonballs -101625 : Special Unmoving Essential Oil -101626 : Key to a Stony Hall -101627 : Photo of a Strange Rock -101628 : Academia Recommendation Letter -101629 : Orb of the Blue Depths -101630 : Metal Key -101631 : Miner's Key -101632 : Blessings of Wisdom -101633 : Mountainator Cannonball (Fuse Attached) -101634 : Toy Doll -101635 : Flower of Farsight -101636 : Skyfeather -101637 : Sundial of Ages -101638 : Cup of Commons -101639 : Helm of Warding -101640 : Warrior's Spear -101641 : Brass Ring -101642 : Archaic Stone -101643 : Shriveled Seed -101644 : Lumenstone Ore -101645 : Yue Chuan's Drifting Bottle -101648 : Hiraizumi's Goods -101649 : Cell Key -101650 : Freshly-Picked Calla Lily -101651 : Freshly-Picked Small Lamp Grass -101652 : Freshly-Picked Cecilia -101654 : Ruin Machine Core -101655 : Date's Key -101656 : Pile of Lavender Melons -101657 : Fine Incense -101658 : -101659 : Curious Cube -101660 : A Note Someone Stuffed You -101661 : Special Bamboo Slip -101662 : "Final Instructions" -101663 : Bag of Clothes -101664 : Special Fortune Slip -101665 : Strange Object -101666 : Bedrock Key Location Diagram -101667 : Light Mora Purse -101668 : Full Mora Purse -101669 : Plump Fish -101670 : Beautifully-Written Note -101671 : Yun Jin's Personal Letter -101672 : Lyudochka's Letter -101673 : Lyudochka's Mora Purse -101674 : Fatui Code Sheet -101675 : Light Purse -101676 : Marjorie's Gift -101677 : Viktor's Gift -101678 : Fresh Wolfhooks -101679 : Lyudochka's Fortune Slip -101680 : The Serpent and Drakes of Tokoyokoku -101681 : Before Sun and Moon -101682 : Hydrological Studies in Byakuyakoku -101683 : Bathysmal Vishap Experimental Records -101684 : In the Light, Beneath the Shadow -101685 : The Miraculous Adventures of the Traveler -101686 : The Miraculous Adventures of the Traveler -101687 : The Miraculous Adventures of the Traveler -101688 : The Miraculous Adventures of the Traveler -101689 : -101690 : Muning's Note -101691 : Frostglaze Crystal -101692 : Light Realm Sigil -101693 : Light Realm Core -101694 : Bloodied Sergeant's Insignia -101695 : Corporal Nikolay's Diary -101696 : Corporal Nikolay's Diary -101697 : Mora Purse -101698 : A Firsthand Guide to Summoning Spirits -101699 : Dream Sakura -101700 : Aphotium Ore -101701 : Tokoyo Legume -101702 : Husk Gem -101703 : Fragmented Accessory -101704 : Fragmented Accessory -101706 : Tsumi's Map -101707 : Hakuen Michimitsu Amenoma -101708 : Wooden Cage Key -101709 : Damaged Stone Slate -101710 : Mysterious Stone Slate -101711 : Yanbo's Note -101712 : Nikolay's Letter -101713 : -101714 : Fragrant Seasoning -101715 : Fragrant Vegetarian Abalone -101719 : Fragrant Mint Salad -101720 : Fragrant Triple-Layered Consommé -101724 : Zhiqiong's Letter -101725 : Arrival Schedule -101726 : Five Kasen Summary -101727 : The Five Kasen's Splendor: Suikou -101728 : The Five Kasen's Splendor: Aoi no Okina -101729 : The Five Kasen's Splendor: Akahito -101730 : The Five Kasen's Splendor: Sumizome -101731 : The Five Kasen's Splendor: Sumizome -101732 : Ancient Forging Blueprint -101733 : Kaedehara Yoshinori's Letter -101734 : Taliesin's Manuscript -101737 : Fragrant Stir-Fried Shrimp -101738 : Fragrant Golden Shrimp Balls -101739 : Fragrant Qingce Stir Fry -101740 : Fragrant Black-Back Perch Stew -101741 : Fragrant Stir-Fried Filet -101742 : Fragrant Grilled Tiger Fish -101743 : Fragrant Crab Roe Tofu -101744 : Fragrant Golden Crab -101745 : Fragrant Jewelry Soup -101746 : Fragrant Bamboo Shoot Soup -101747 : Fragrant Noodles with Mountain Delicacies -101748 : Fragrant Mora Meat -101749 : Fragrant Stir-Fried Fish Noodles -101750 : Fragrant Universal Peace -101751 : Fragrant Rice Buns -101752 : Fragrant Almond Tofu -101753 : Fragrant Lotus Flower Crisp -101754 : Sayu's Salary -101755 : Statue of Her Excellency, the Almighty Narukami Ogosho, God of Thunder -101756 : Kokomi's Shopping List -101757 : Toy Fox -101766 : A Legend of Sword (VI) -101767 : Shogun Almighty: Reborn as Raiden With Unlimited Power -101768 : Pretty Please, Kitsune Guuji? -101769 : Let's Go, Dodoco! -101782 : Jinwu's Soup -101783 : -101784 : -101785 : -101786 : -101787 : -101788 : -101789 : -101790 : -101791 : -101792 : -101793 : -101794 : -101795 : Bag of Ornaments -101797 : Let's Go, Dodoco! -102001 : Pyro Shard -102002 : Hydro Shard -102003 : Dendro Shard -102004 : Electro Shard -102005 : Anemo Shard -102006 : Cryo Shard -102007 : Geo Shard -102008 : Primordial Elemental Shard -103001 : Pyro Jikaka -103002 : Hydro Jikaka -103003 : Dendro Jikaka -103004 : Electro Jikaka -103005 : Anemo Jikaka -103006 : Cryo Jikaka -103007 : Geo Jikaka -103008 : Standard Jikaka -104001 : Wanderer's Advice -104002 : Adventurer's Experience -104003 : Hero's Wit -104011 : Enhancement Ore -104012 : Fine Enhancement Ore -104013 : Mystic Enhancement Ore -104101 : Brilliant Diamond Sliver -104102 : Brilliant Diamond Fragment -104103 : Brilliant Diamond Chunk -104104 : Brilliant Diamond Gemstone -104111 : Agnidus Agate Sliver -104112 : Agnidus Agate Fragment -104113 : Agnidus Agate Chunk -104114 : Agnidus Agate Gemstone -104121 : Varunada Lazurite Sliver -104122 : Varunada Lazurite Fragment -104123 : Varunada Lazurite Chunk -104124 : Varunada Lazurite Gemstone -104131 : Nagadus Emerald Sliver -104132 : Nagadus Emerald Fragment -104133 : Nagadus Emerald Chunk -104134 : Nagadus Emerald Gemstone -104141 : Vajrada Amethyst Sliver -104142 : Vajrada Amethyst Fragment -104143 : Vajrada Amethyst Chunk -104144 : Vajrada Amethyst Gemstone -104151 : Vayuda Turquoise Sliver -104152 : Vayuda Turquoise Fragment -104153 : Vayuda Turquoise Chunk -104154 : Vayuda Turquoise Gemstone -104161 : Shivada Jade Sliver -104162 : Shivada Jade Fragment -104163 : Shivada Jade Chunk -104164 : Shivada Jade Gemstone -104171 : Prithiva Topaz Sliver -104172 : Prithiva Topaz Fragment -104173 : Prithiva Topaz Chunk -104174 : Prithiva Topaz Gemstone -104201 : Dust of Azoth -104301 : Teachings of Freedom -104302 : Guide to Freedom -104303 : Philosophies of Freedom -104304 : Teachings of Resistance -104305 : Guide to Resistance -104306 : Philosophies of Resistance -104307 : Teachings of Ballad -104308 : Guide to Ballad -104309 : Philosophies of Ballad -104310 : Teachings of Prosperity -104311 : Guide to Prosperity -104312 : Philosophies of Prosperity -104313 : Teachings of Diligence -104314 : Guide to Diligence -104315 : Philosophies of Diligence -104316 : Teachings of Gold -104317 : Guide to Gold -104318 : Philosophies of Gold -104319 : Crown of Insight -104320 : Teachings of Transience -104321 : Guide to Transience -104322 : Philosophies of Transience -104323 : Teachings of Elegance -104324 : Guide to Elegance -104325 : Philosophies of Elegance -104326 : Teachings of Light -104327 : Guide to Light -104328 : Philosophies of Light -105001 : Sanctifying Droplet -105002 : Sanctifying Unction -105003 : Sanctifying Essence -105004 : Sanctifying Essence -106000 : Test Stamina Growth Item -106001 : Test Temporary stamina Growth Item -107001 : Anemoculus -107002 : Elemental Dust -107003 : Geoculus -107004 : Adventure Treasure Pack -107005 : Skyrider Greatsword Chest -107006 : Mondstadt Shrine of Depths Key -107007 : Liyue Shrine of Depths Key -107008 : Inazuma Shrine of Depths Key -107009 : Fragile Resin -107010 : Crimson Agate -107011 : Crimson Agate (Display) -107012 : Transient Resin -107013 : Vial of Adeptal Speed -107014 : Electroculus -107015 : Moonchase Charm -107016 : Lumenspar -108000 : Dish -108001 : Suspicious Fisherman's Toast -108002 : Fisherman's Toast -108003 : Delicious Fisherman's Toast -108004 : Suspicious Teyvat Fried Egg -108005 : Teyvat Fried Egg -108006 : Delicious Teyvat Fried Egg -108007 : Suspicious Steak -108008 : Steak -108009 : Delicious Steak -108010 : Outrider's Champion Steak! -108011 : Suspicious Chicken-Mushroom Skewer -108012 : Chicken-Mushroom Skewer -108013 : Delicious Chicken-Mushroom Skewer -108014 : Fruity Skewers -108015 : Suspicious Flaming Red Bolognese -108016 : Flaming Red Bolognese -108017 : Delicious Flaming Red Bolognese -108018 : Mysterious Bolognese -108019 : Suspicious Radish Veggie Soup -108020 : Radish Veggie Soup -108021 : Delicious Radish Veggie Soup -108022 : Suspicious Tea Break Pancake -108023 : Tea Break Pancake -108024 : Delicious Tea Break Pancake -108025 : Suspicious Fried Radish Balls -108026 : Fried Radish Balls -108027 : Delicious Fried Radish Balls -108028 : Suspicious Satisfying Salad -108029 : Satisfying Salad -108030 : Delicious Satisfying Salad -108031 : Suspicious Sweet Madame -108032 : Sweet Madame -108033 : Delicious Sweet Madame -108034 : Suspicious Northern Smoked Chicken -108035 : Northern Smoked Chicken -108036 : Delicious Northern Smoked Chicken -108037 : Suspicious Cream Stew -108038 : Cream Stew -108039 : Delicious Cream Stew -108040 : Spicy Stew -108041 : Suspicious Mushroom Pizza -108042 : Mushroom Pizza -108043 : Delicious Mushroom Pizza -108044 : Invigorating Pizza -108045 : Suspicious Mondstadt Hash Brown -108046 : Mondstadt Hash Brown -108047 : Delicious Mondstadt Hash Brown -108048 : Puppy-Paw Hash Brown -108049 : Suspicious Calla Lily Seafood Soup -108050 : Calla Lily Seafood Soup -108051 : Delicious Calla Lily Seafood Soup -108052 : Suspicious Sautéed Matsutake -108053 : Sautéed Matsutake -108054 : Delicious Sautéed Matsutake -108055 : Suspicious "Pile 'Em Up" -108056 : "Pile 'Em Up" -108057 : Delicious "Pile 'Em Up" -108058 : "Once Upon a Time in Mondstadt" -108059 : Suspicious Cold Cut Platter -108060 : Cold Cut Platter -108061 : Delicious Cold Cut Platter -108062 : Suspicious Sticky Honey Roast -108063 : Sticky Honey Roast -108064 : Delicious Sticky Honey Roast -108065 : Suspicious Crab, Ham & Veggie Bake -108066 : Crab, Ham & Veggie Bake -108067 : Delicious Crab, Ham & Veggie Bake -108068 : Suspicious Jade Parcels -108069 : Jade Parcels -108070 : Delicious Jade Parcels -108071 : Suspicious Zhongyuan Chop Suey -108072 : Zhongyuan Chop Suey -108073 : Delicious Zhongyuan Chop Suey -108074 : Suspicious Black-Back Perch Stew -108075 : Black-Back Perch Stew -108076 : Delicious Black-Back Perch Stew -108077 : Suspicious Squirrel Fish -108078 : Squirrel Fish -108079 : Delicious Squirrel Fish -108080 : Suspicious Almond Tofu -108081 : Almond Tofu -108082 : Delicious Almond Tofu -108083 : Suspicious Jueyun Chili Chicken -108084 : Jueyun Chili Chicken -108085 : Delicious Jueyun Chili Chicken -108086 : Suspicious Jewelry Soup -108087 : Jewelry Soup -108088 : Delicious Jewelry Soup -108089 : Suspicious Matsutake Meat Rolls -108090 : Matsutake Meat Rolls -108091 : Delicious Matsutake Meat Rolls -108092 : Suspicious Mora Meat -108093 : Mora Meat -108094 : Delicious Mora Meat -108095 : Suspicious Mondstadt Grilled Fish -108096 : Mondstadt Grilled Fish -108097 : Delicious Mondstadt Grilled Fish -108098 : Suspicious Stir-Fried Filet -108099 : Stir-Fried Filet -108100 : Delicious Stir-Fried Filet -108101 : Suspicious Golden Crab -108102 : Golden Crab -108103 : Delicious Golden Crab -108104 : Suspicious Crystal Shrimp -108105 : Crystal Shrimp -108106 : Delicious Crystal Shrimp -108107 : Suspicious Grilled Tiger Fish -108108 : Grilled Tiger Fish -108109 : Delicious Grilled Tiger Fish -108110 : Suspicious Barbatos Ratatouille -108111 : Barbatos Ratatouille -108112 : Delicious Barbatos Ratatouille -108113 : A Buoyant Breeze -108114 : Der Weisheit Letzter Schluss (Life) -108115 : Fish-Flavored Toast -108116 : Teyvat Charred Egg -108117 : Die Heilige Sinfonie -108118 : Lighter-Than-Air Pancake -108119 : Suspicious Lotus Seed and Bird Egg Soup -108120 : Lotus Seed and Bird Egg Soup -108121 : Delicious Lotus Seed and Bird Egg Soup -108122 : Suspicious Adeptus' Temptation -108123 : Adeptus' Temptation -108124 : Delicious Adeptus' Temptation -108125 : Suspicious Golden Shrimp Balls -108126 : Golden Shrimp Balls -108127 : Delicious Golden Shrimp Balls -108128 : Suspicious Qingce Stir Fry -108129 : Qingce Stir Fry -108130 : Delicious Qingce Stir Fry -108131 : Suspicious Come and Get It -108132 : Come and Get It -108133 : Delicious Come and Get It -108134 : Definitely Not Bar Food! -108135 : Wanmin Restaurant's Boiled Fish -108136 : All-Delicacy Parcels -108137 : "Sweet Dream" -108138 : Flash-Fried Filet -108139 : Qiankun Mora Meat -108140 : No Tomorrow -108141 : Suspicious Noodles with Mountain Delicacies -108142 : Noodles with Mountain Delicacies -108143 : Delicious Noodles with Mountain Delicacies -108144 : Cold Noodles with Mountain Delicacies -108145 : Survival Grilled Fish -108146 : Nutritious Meal (V.593) -108147 : Holy Water -108148 : Pop's Teas -108149 : Wolfhook Juice -108150 : Berry & Mint Burst -108151 : Apple Cider -108152 : Suspicious Bamboo Shoot Soup -108153 : Bamboo Shoot Soup -108154 : Delicious Bamboo Shoot Soup -108155 : Suspicious Triple-Layered Consommé -108156 : Triple-Layered Consommé -108157 : Delicious Triple-Layered Consommé -108158 : Suspicious Tianshu Meat -108159 : Tianshu Meat -108160 : Delicious Tianshu Meat -108161 : Suspicious Lotus Flower Crisp -108162 : Lotus Flower Crisp -108163 : Delicious Lotus Flower Crisp -108164 : Suspicious Moon Pie -108165 : Moon Pie -108166 : Delicious Moon Pie -108167 : Suspicious Adventurer's Breakfast Sandwich -108168 : Adventurer's Breakfast Sandwich -108169 : Delicious Adventurer's Breakfast Sandwich -108170 : Suspicious Northern Apple Stew -108171 : Northern Apple Stew -108172 : Delicious Northern Apple Stew -108173 : Slow-Cooked Bamboo Shoot Soup -108174 : Rockin' Riffin' Chicken! -108175 : A Prize Catch -108176 : Suspicious Crab Roe Tofu -108177 : Crab Roe Tofu -108178 : Delicious Crab Roe Tofu -108179 : Suspicious Fullmoon Egg -108180 : Fullmoon Egg -108181 : Delicious Fullmoon Egg -108182 : Suspicious Cured Pork Dry Hotpot -108183 : Cured Pork Dry Hotpot -108184 : Delicious Cured Pork Dry Hotpot -108185 : Suspicious Stir-Fried Fish Noodles -108186 : Stir-Fried Fish Noodles -108187 : Delicious Stir-Fried Fish Noodles -108188 : Suspicious Vegetarian Abalone -108189 : Vegetarian Abalone -108190 : Delicious Vegetarian Abalone -108191 : Suspicious Stone Harbor Delicacies -108192 : Stone Harbor Delicacies -108193 : Delicious Stone Harbor Delicacies -108194 : Suspicious Stir-Fried Shrimp -108195 : Stir-Fried Shrimp -108196 : Delicious Stir-Fried Shrimp -108197 : Suspicious Rice Buns -108198 : Rice Buns -108199 : Delicious Rice Buns -108200 : Ghostly March -108201 : Suspicious Universal Peace -108202 : Universal Peace -108203 : Delicious Universal Peace -108204 : Suspicious Goulash -108205 : Goulash -108206 : Delicious Goulash -108207 : Suspicious Sunshine Sprat -108208 : Sunshine Sprat -108209 : Delicious Sunshine Sprat -108210 : Suspicious Jueyun Guoba -108211 : Jueyun Guoba -108212 : Delicious Jueyun Guoba -108213 : Prosperous Peace -108214 : Woodland Dream -108215 : Lantern Rite Special Grilled Tiger Fish -108216 : Lantern Rite Special Fried Radish Balls -108217 : Lantern Rite Special Lotus Seed and Bird Egg Soup -108218 : Lantern Rite Special Jewelry Soup -108219 : Lantern Rite Special Noodles with Mountain Delicacies -108220 : Lantern Rite Special Come and Get It -108221 : Lantern Rite Special Triple-Layered Consommé -108222 : Suspicious Crispy Potato Shrimp Platter -108223 : Crispy Potato Shrimp Platter -108224 : Delicious Crispy Potato Shrimp Platter -108225 : Suspicious Mint Jelly -108226 : Mint Jelly -108227 : Delicious Mint Jelly -108228 : Suspicious Mint Salad -108229 : Mint Salad -108230 : Delicious Mint Salad -108231 : Suspicious Minty Meat Rolls -108232 : Minty Meat Rolls -108233 : Delicious Minty Meat Rolls -108234 : Dinner of Judgment -108235 : Suspicious Golden Fried Chicken -108236 : Golden Fried Chicken -108237 : Delicious Golden Fried Chicken -108238 : Suspicious Golden Chicken Burger -108239 : Golden Chicken Burger -108240 : Delicious Golden Chicken Burger -108241 : Suspicious Fragrant Mashed Potatoes -108242 : Fragrant Mashed Potatoes -108243 : Delicious Fragrant Mashed Potatoes -108244 : "My Way" -108245 : Stormcrest Pie -108246 : Suspicious Chicken Tofu Pudding -108247 : Chicken Tofu Pudding -108248 : Delicious Chicken Tofu Pudding -108249 : Suspicious Tuna Sushi -108250 : Tuna Sushi -108251 : Delicious Tuna Sushi -108252 : Suspicious Tricolor Dango -108253 : Tricolor Dango -108254 : Delicious Tricolor Dango -108255 : Suspicious Onigiri -108256 : Onigiri -108257 : Delicious Onigiri -108258 : Suspicious Sashimi Platter -108259 : Sashimi Platter -108260 : Delicious Sashimi Platter -108261 : Suspicious Tonkotsu Ramen -108262 : Tonkotsu Ramen -108263 : Delicious Tonkotsu Ramen -108264 : Suspicious Egg Roll -108265 : Egg Roll -108266 : Delicious Egg Roll -108267 : Suspicious Dry-Braised Salted Fish -108268 : Dry-Braised Salted Fish -108269 : Delicious Dry-Braised Salted Fish -108270 : Suspicious Butter Crab -108271 : Butter Crab -108272 : Delicious Butter Crab -108273 : Suspicious Tri-Flavored Skewer -108274 : Tri-Flavored Skewer -108275 : Delicious Tri-Flavored Skewer -108276 : Suspicious Miso Soup -108277 : Miso Soup -108278 : Delicious Miso Soup -108279 : Suspicious Imported Poultry -108280 : Imported Poultry -108281 : Delicious Imported Poultry -108282 : Suspicious Sakura Mochi -108283 : Sakura Mochi -108284 : Delicious Sakura Mochi -108285 : Suspicious Konda Cuisine -108286 : Konda Cuisine -108287 : Delicious Konda Cuisine -108288 : Suspicious Rice Cake Soup -108289 : Rice Cake Soup -108290 : Delicious Rice Cake Soup -108291 : Suspicious Mixed Yakisoba -108292 : Mixed Yakisoba -108293 : Delicious Mixed Yakisoba -108294 : Suspicious Crab Roe Kourayaki -108295 : Crab Roe Kourayaki -108296 : Delicious Crab Roe Kourayaki -108297 : Suspicious Sakura Tempura -108298 : Sakura Tempura -108299 : Delicious Sakura Tempura -108300 : "Snow on the Hearth" -108301 : All-Weather Beauty -108302 : Summer Festival Fish -108303 : Dizziness-Be-Gone no Jutsu Version 2.0 -108304 : Special Mushroom Pizza -108305 : Dango Milk -108306 : Suspicious Rice Pudding -108307 : Rice Pudding -108308 : Delicious Rice Pudding -108309 : Suspicious Braised Meat -108310 : Braised Meat -108311 : Delicious Braised Meat -108312 : Suspicious Oncidium Tofu -108313 : Oncidium Tofu -108314 : Delicious Oncidium Tofu -108315 : Suspicious Chili-Mince Cornbread Buns -108316 : Chili-Mince Cornbread Buns -108317 : Delicious Chili-Mince Cornbread Buns -108318 : Suspicious Invigorating Kitty Meal -108319 : Invigorating Kitty Meal -108320 : Delicious Invigorating Kitty Meal -108321 : Suspicious Sweet Shrimp Sushi -108322 : Sweet Shrimp Sushi -108323 : Delicious Sweet Shrimp Sushi -108324 : Suspicious Bird Egg Sushi -108325 : Bird Egg Sushi -108326 : Delicious Bird Egg Sushi -108327 : Suspicious Omelette Rice -108328 : Omelette Rice -108329 : Delicious Omelette Rice -108330 : Suspicious Taiyaki -108331 : Taiyaki -108332 : Delicious Taiyaki -108333 : Suspicious More-and-More -108334 : More-and-More -108335 : Delicious More-and-More -108336 : Suspicious Grilled Unagi Fillet -108337 : Grilled Unagi Fillet -108338 : Delicious Grilled Unagi Fillet -108339 : Satiety Gel -108340 : A Stunning Stratagem -108341 : Faith Eternal -108342 : Suspicious Radish and Fish Stew -108343 : Radish and Fish Stew -108344 : Delicious Radish and Fish Stew -108345 : Suspicious Wakatakeni -108346 : Wakatakeni -108347 : Delicious Wakatakeni -108348 : Suspicious Berry Mizu Manjuu -108349 : Berry Mizu Manjuu -108350 : Delicious Berry Mizu Manjuu -108351 : Suspicious Soba Noodles -108352 : Soba Noodles -108353 : Delicious Soba Noodles -108354 : "Warmth" -108355 : Suspicious Unagi Chazuke -108356 : Unagi Chazuke -108357 : Delicious Unagi Chazuke -108358 : Suspicious Five Pickled Treasures -108359 : Five Pickled Treasures -108360 : Delicious Five Pickled Treasures -108361 : Suspicious Sakura Shrimp Crackers -108362 : Sakura Shrimp Crackers -108363 : Delicious Sakura Shrimp Crackers -108364 : Way of the Strong -108365 : Victorious Legend -108366 : Suspicious Bountiful Year -108367 : Bountiful Year -108368 : Delicious Bountiful Year -108369 : Suspicious Dragon Beard Noodles -108370 : Dragon Beard Noodles -108371 : Delicious Dragon Beard Noodles -108372 : Heartstring Noodles -108373 : Cloud-Shrouded Jade -108374 : Suspicious Sangayaki -108375 : Sangayaki -108376 : Delicious Sangayaki -108377 : Suspicious Udon Noodles -108378 : Udon Noodles -108379 : Delicious Udon Noodles -108380 : Fukuuchi Udon -108381 : Suspicious Katsu Sandwich -108382 : Katsu Sandwich -108383 : Delicious Katsu Sandwich -108384 : Suspicious Rainbow Aster -108385 : Rainbow Aster -108386 : Delicious Rainbow Aster -108387 : Quiet Elegance -109000 : Recipe Item -109101 : Recipe: Chicken-Mushroom Skewer -109102 : Recipe: Fisherman's Toast -109103 : Recipe: Flaming Red Bolognese -109104 : Recipe: Sweet Madame -109106 : Recipe: Calla Lily Seafood Soup -109107 : Recipe: Sautéed Matsutake -109201 : Recipe: Teyvat Fried Egg -109202 : Recipe: Northern Smoked Chicken -109203 : Recipe: Cream Stew -109204 : Recipe: Cold Cut Platter -109205 : Recipe: Sticky Honey Roast -109206 : Recipe: Crab, Ham & Veggie Bake -109207 : Recipe: Mushroom Pizza -109301 : Recipe: Steak -109302 : Recipe: Radish Veggie Soup -109303 : Recipe: Mondstadt Hash Brown -109304 : Recipe: "Pile 'Em Up" -109401 : Recipe: Tea Break Pancake -109402 : Recipe: Fried Radish Balls -109403 : Recipe: Satisfying Salad -109404 : Recipe: Jade Parcels -109405 : Recipe: Mondstadt Grilled Fish -109406 : Recipe: Mora Meat -109407 : Recipe: Stir-Fried Filet -109408 : Recipe: Almond Tofu -109409 : Recipe: Jueyun Chili Chicken -109410 : Recipe: Jewelry Soup -109411 : Recipe: Matsutake Meat Rolls -109412 : Recipe: Zhongyuan Chop Suey -109413 : Recipe: Black-Back Perch Stew -109414 : Recipe: Squirrel Fish -109415 : Recipe: Golden Crab -109416 : Recipe: Crystal Shrimp -109417 : Recipe: Grilled Tiger Fish -109418 : Recipe: Barbatos Ratatouille -109419 : Recipe: Lotus Seed and Bird Egg Soup -109420 : Recipe: Adeptus' Temptation -109421 : Recipe: Golden Shrimp Balls -109422 : Recipe: Qingce Stir Fry -109423 : Recipe: Come and Get It -109424 : Recipe: Noodles with Mountain Delicacies -109425 : Recipe: Bamboo Shoot Soup -109426 : Recipe: Triple-Layered Consommé -109427 : Recipe: Tianshu Meat -109428 : Recipe: Lotus Flower Crisp -109429 : Recipe: Moon Pie -109430 : Recipe: Adventurer's Breakfast Sandwich -109431 : Recipe: Northern Apple Stew -109432 : Recipe: Crab Roe Tofu -109433 : Recipe: Fullmoon Egg -109434 : Recipe: Cured Pork Dry Hotpot -109435 : Recipe: Stir-Fried Fish Noodles -109436 : Recipe:Vegetarian Abalone -109437 : Recipe: Stone Harbor Delicacies -109438 : Recipe: Stir-Fried Shrimp -109439 : Recipe: Rice Buns -109440 : Recipe: Goulash -109441 : Recipe: Sunshine Sprat -109442 : Recipe: Universal Peace -109443 : Recipe: Jueyun Guoba -109444 : Recipe: Crispy Potato Shrimp Platter -109445 : Recipe: Mint Jelly -109446 : Recipe: Mint Salad -109447 : Recipe: Minty Meat Rolls -109448 : Recipe: Golden Fried Chicken -109449 : Recipe: Golden Chicken Burger -109450 : Recipe: Fragrant Mashed Potatoes -109451 : Recipe: Chicken Tofu Pudding -109452 : Recipe: Tuna Sushi -109453 : Recipe: Tricolor Dango -109454 : Recipe: Onigiri -109455 : Recipe: Sashimi Platter -109456 : Recipe: Tonkotsu Ramen -109457 : Recipe: Egg Roll -109458 : Recipe: Dry-Braised Salted Fish -109459 : Recipe: Butter Crab -109460 : Recipe: Tri-Flavored Skewer -109461 : Recipe: Miso Soup -109462 : Recipe: Imported Poultry -109463 : Recipe: Sakura Mochi -109464 : Recipe: Konda Cuisine -109465 : Recipe: Rice Cake Soup -109466 : Recipe: Mixed Yakisoba -109467 : Recipe: Crab Roe Kourayaki -109468 : Recipe: Sakura Tempura -109469 : Recipe: Rice Pudding -109470 : Recipe: Braised Meat -109471 : Recipe: Oncidium Tofu -109472 : Recipe: Chili-Mince Cornbread Buns -109473 : Recipe: Invigorating Kitty Meal -109474 : Recipe: Sweet Shrimp Sushi -109475 : Recipe: Bird Egg Sushi -109476 : Recipe: Omelette Rice -109477 : Recipe: Taiyaki -109478 : Recipe: More-and-More -109479 : Recipe: Grilled Unagi Fillet -109480 : Recipe: Radish and Fish Stew -109481 : Recipe: Wakatakeni -109482 : Recipe: Berry Mizu Manjuu -109483 : Recipe: Soba Noodles -109484 : Recipe: Unagi Chazuke -109485 : Recipe: Five Pickled Treasures -109486 : Recipe: Sakura Shrimp Crackers -109487 : Recipe: Bountiful Year -109488 : Recipe: Dragon Beard Noodles -109489 : Recipe: Sangayaki -109490 : Recipe: Udon Noodles -109491 : Recipe: Katsu Sandwich -109492 : Recipe: Rainbow Aster -110000 : Crafted Items -110001 : Flour -110002 : Cream -110003 : Smoked Fowl -110004 : Butter -110005 : Ham -110006 : Sugar -110008 : Jam -110009 : Cheese -110010 : Bacon -110011 : Sausage -110012 : Smoked Fish -110013 : Dried Fish -111006 : Heatshield Potion -111007 : Desiccant Potion -111008 : Frostshield Potion -111009 : Windbarrier Potion -111010 : Insulation Potion -111011 : Dustproof Potion -111012 : Dendrocide Potion -111013 : Flaming Essential Oil -111014 : Streaming Essential Oil -111015 : Frosting Essential Oil -111016 : Gushing Essential Oil -111017 : Shocking Essential Oil -111018 : Unmoving Essential Oil -111019 : Forest Essential Oil -111020 : Small Pretty Crystal -111021 : Medium Pretty Crystal -111022 : Big Pretty Crystal -111023 : Fruit Paste Bait -111024 : Redrot Bait -111025 : False Worm Bait -111026 : Fake Fly Bait -111027 : Glowgrass Bait -112001 : Primordial Essence -112002 : Slime Condensate -112003 : Slime Secretions -112004 : Slime Concentrate -112005 : Damaged Mask -112006 : Stained Mask -112007 : Ominous Mask -112008 : Divining Scroll -112009 : Sealed Scroll -112010 : Forbidden Curse Scroll -112011 : Firm Arrowhead -112012 : Sharp Arrowhead -112013 : Weathered Arrowhead -112014 : Heavy Horn -112015 : Black Bronze Horn -112016 : Black Crystal Horn -112017 : Gloomy Statuette -112018 : Dark Statuette -112019 : Deathly Statuette -112020 : Dead Ley Line Branch -112021 : Dead Ley Line Leaves -112022 : Ley Line Sprout -112023 : Chaos Device -112024 : Chaos Circuit -112025 : Chaos Core -112026 : Mist Grass Pollen -112027 : Mist Grass -112028 : Mist Grass Wick -112029 : Hunter's Sacrificial Knife -112030 : Agent's Sacrificial Knife -112031 : Inspector's Sacrificial Knife -112032 : Recruit's Insignia -112033 : Sergeant's Insignia -112034 : Lieutenant's Insignia -112035 : Treasure Hoarder Insignia -112036 : Silver Raven Insignia -112037 : Golden Raven Insignia -112038 : Whopperflower Nectar -112039 : Shimmering Nectar -112040 : Energy Nectar -112041 : Fragile Bone Shard -112042 : Sturdy Bone Shard -112043 : Fossilized Bone Shard -112044 : Old Handguard -112045 : Kageuchi Handguard -112046 : Famed Handguard -112047 : Chaos Gear -112048 : Chaos Axis -112049 : Chaos Oculus -112050 : Dismal Prism -112051 : Crystal Prism -112052 : Polarizing Prism -112053 : Spectral Husk -112054 : Spectral Heart -112055 : Spectral Nucleus -112056 : Concealed Claw -112057 : Concealed Unguis -112058 : Concealed Talon -112059 : Fungal Spores -112060 : Luminescent Pollen -112061 : Crystalline Cyst Dust -113001 : Hurricane Seed -113002 : Lightning Prism -113003 : Dvalin's Plume -113004 : Dvalin's Claw -113005 : Dvalin's Sigh -113006 : Tail of Boreas -113007 : Ring of Boreas -113008 : Spirit Locket of Boreas -113009 : Basalt Pillar -113010 : Hoarfrost Core -113011 : Everflame Seed -113012 : Cleansing Heart -113013 : Tusk of Monoceros Caeli -113014 : Shard of a Foul Legacy -113015 : Shadow of the Warrior -113016 : Juvenile Jade -113017 : Dragon Lord's Crown -113018 : Bloodjade Branch -113019 : Gilded Scale -113020 : Crystalline Bloom -113021 : Dream Solvent -113022 : Marionette Core -113023 : Perpetual Heart -113024 : Smoldering Pearl -113025 : Molten Moment -113026 : Hellfire Butterfly -113027 : Ashen Heart -113028 : Dew of Repudiation -113029 : Storm Beads -113030 : Riftborn Regalia -113031 : Dragonheir's False Fin -113032 : Mudra of the Malefic General -113033 : Tears of the Calamitous God -113034 : The Meaning of Aeons -113035 : Runic Fang -114001 : Tile of Decarabian's Tower -114002 : Debris of Decarabian's City -114003 : Fragment of Decarabian's Epic -114004 : Scattered Piece of Decarabian's Dream -114005 : Boreal Wolf's Milk Tooth -114006 : Boreal Wolf's Cracked Tooth -114007 : Boreal Wolf's Broken Fang -114008 : Boreal Wolf's Nostalgia -114009 : Fetters of the Dandelion Gladiator -114010 : Chains of the Dandelion Gladiator -114011 : Shackles of the Dandelion Gladiator -114012 : Dream of the Dandelion Gladiator -114013 : Luminous Sands from Guyun -114014 : Lustrous Stone from Guyun -114015 : Relic from Guyun -114016 : Divine Body from Guyun -114017 : Mist Veiled Lead Elixir -114018 : Mist Veiled Mercury Elixir -114019 : Mist Veiled Gold Elixir -114020 : Mist Veiled Primo Elixir -114021 : Grain of Aerosiderite -114022 : Piece of Aerosiderite -114023 : Bit of Aerosiderite -114024 : Chunk of Aerosiderite -114025 : Coral Branch of a Distant Sea -114026 : Jeweled Branch of a Distant Sea -114027 : Jade Branch of a Distant Sea -114028 : Golden Branch of a Distant Sea -114029 : Narukami's Wisdom -114030 : Narukami's Joy -114031 : Narukami's Affection -114032 : Narukami's Valor -114033 : Mask of the Wicked Lieutenant -114034 : Mask of the Tiger's Bite -114035 : Mask of the One-Horned -114036 : Mask of the Kijin -115001 : -115002 : -115003 : -115004 : -115005 : -115006 : -115007 : -115008 : -115009 : -115010 : Starter Supply Bundle -115011 : Wayfarer's Supply Bundle -115012 : Traveler's Supply Bundle -115013 : Exotic Share Bundle -115014 : Character Ascension Bundle (High) -115015 : Character Ascension Bundle (Very High) -115016 : Talent Materials Bundle (Low) -115017 : Virtuous Share Bundle -115018 : Talent Materials Bundle (High) -115019 : Adventurer's Supply Bundle -115020 : Adventurer's Ore Bundle -115021 : Adventurer's Special Bundle -115022 : Adventurer's Instructional Bundle -115023 : Adventurer's Tempering Bundle -115024 : Material Share Bundle -115025 : Eminent Share Bundle -115026 : Weapon Ascension Bundle (High) -115027 : Weapon Ascension Bundle (Very High) -115028 : Recipe Collection: Exotic Gourmet -115029 : Adventurer's Jumbo Ore Bundle -115030 : Adventurer's Special Supply Bundle -115031 : Northlander Billet Trove -115032 : Adventurer's Share Bundle -115034 : Adventurer's Seasonal Special Bundle -115035 : Sakuya's Special Gardening Package -115037 : Yashiro Commission Gift -115038 : Exquisite Gift (Furnishing) -115039 : Amazing Gift (Furnishing) -116001 : BEP -116002 : BP Bounty -116003 : BP Pick 1 of 3 Test Bundle -116004 : Guidance of the Land of Wind -116005 : Philosophies of the Land of Wind -116006 : Guidance of the Land of Geo -116007 : Philosophies of the Land of Geo -116008 : -116009 : -116010 : Guidance of the Land of Thunder -116011 : Philosophies of the Land of Thunder -117001 : Domain Reliquary: Tier III -117002 : Domain Reliquary: Tier II -117003 : Domain Reliquary: Tier I -117004 : Reliquary: Wanderer's Troupe and Gladiator -117005 : Grand Reliquary: Wanderer's Troupe and Gladiator -117006 : Domain Reliquary: Tier II -117007 : Domain Reliquary: Tier I -118001 : Cake for Traveler -118002 : Cake for Traveler -118003 : Cake for Traveler -118004 : Cake for Traveler -130001 : Silk Flower Seed -130002 : Sweet Flower Seed -130003 : Cecilia Seed -130004 : Glaze Lily Seed -130005 : Windwheel Aster Seed -130006 : Qingxin Seed -130007 : Violetgrass Seed -130008 : Valberry Seed -130009 : Small Lamp Grass Seed -130010 : Jueyun Chili Seed -130011 : Carrot Seed -130012 : Radish Seed -130013 : Mint Seed -130014 : Mushroom Spore -130015 : Naku Weed Seed -130016 : Horsetail Seed -130017 : Snapdragon Seed -130018 : Lotus Seed -130019 : Calla Lily Seed -130020 : Seagrass Seed -130021 : Sea Ganoderma Cutting -130022 : Dreambloom: Star Hibiscus Seed -130023 : Dreambloom: Pearbell Seed -130024 : Dreambloom: Silkpod Seed -131000 : Medaka -131001 : Glaze Medaka -131002 : Sweet-Flower Medaka -131003 : Aizen Medaka -131004 : Dawncatcher -131005 : Crystalfish -131006 : Lunged Stickleback -131007 : Betta -131008 : Venomspine Fish -131009 : Akai Maou -131010 : Snowstrider -131011 : Golden Koi -131012 : Rusty Koi -131013 : Brown Shirakodai -131014 : Purple Shirakodai -131015 : Tea-Colored Shirakodai -131016 : Abiding Angelfish -131017 : Raimei Angelfish -131019 : Pufferfish -131020 : Bitter Pufferfish -131021 : Divda Ray -131022 : Formalo Ray -140001 : Wings of First Flight -140002 : Wings of Companionship -140003 : Wings of Descension -140004 : Wings of Azure Wind -140005 : Wings of Golden Flight -140006 : Wings of Concealing Snow -140007 : Wings of Feasting -140008 : Wings of the Stormstrider -140009 : Wings of Shimmering Galaxy -141001 : Radiant Spincrystal 1 -141002 : Radiant Spincrystal 2 -141003 : Radiant Spincrystal 3 -141004 : Radiant Spincrystal 4 -141005 : Radiant Spincrystal 5 -141006 : Radiant Spincrystal 6 -141007 : Radiant Spincrystal 7 -141008 : Radiant Spincrystal 8 -141009 : Radiant Spincrystal 9 -141010 : Radiant Spincrystal 10 -141011 : Radiant Spincrystal 11 -141012 : Radiant Spincrystal 12 -141013 : Radiant Spincrystal 13 -141014 : Radiant Spincrystal 14 -141015 : Radiant Spincrystal 15 -141016 : Radiant Spincrystal 16 -141017 : Radiant Spincrystal 17 -141018 : Radiant Spincrystal 18 -141019 : Radiant Spincrystal 19 -141020 : Radiant Spincrystal 20 -141021 : Radiant Spincrystal 21 -141022 : Radiant Spincrystal 22 -141023 : Radiant Spincrystal 23 -141024 : Radiant Spincrystal 24 -141025 : Radiant Spincrystal 25 -141026 : Radiant Spincrystal 26 -141027 : Radiant Spincrystal 27 -141028 : Radiant Spincrystal 28 -141029 : Radiant Spincrystal 29 -141030 : Radiant Spincrystal 30 -141031 : Radiant Spincrystal 31 -141032 : Radiant Spincrystal 32 -141033 : Radiant Spincrystal 33 -141034 : Radiant Spincrystal 34 -141035 : Radiant Spincrystal 35 -141036 : Radiant Spincrystal 36 -141037 : Radiant Spincrystal 37 -141038 : Radiant Spincrystal 38 -141039 : Radiant Spincrystal 39 -141040 : Radiant Spincrystal 40 -141041 : Radiant Spincrystal 41 -141042 : Radiant Spincrystal 42 -141043 : Radiant Spincrystal 43 -141044 : Radiant Spincrystal 44 -141045 : Radiant Spincrystal 45 -141046 : Radiant Spincrystal 46 -141047 : Radiant Spincrystal 47 -141048 : Radiant Spincrystal 48 -141049 : Radiant Spincrystal 49 -141050 : Radiant Spincrystal 50 -141051 : Radiant Spincrystal 51 -141052 : Radiant Spincrystal 52 -141053 : Radiant Spincrystal 53 -141054 : Radiant Spincrystal 54 -141055 : Radiant Spincrystal 55 -141056 : Radiant Spincrystal 56 -141057 : Radiant Spincrystal 57 -141058 : Radiant Spincrystal 58 -141059 : Radiant Spincrystal 59 -141060 : Radiant Spincrystal 60 -141061 : Radiant Spincrystal 61 -141062 : Radiant Spincrystal 62 -141063 : Radiant Spincrystal 63 -141064 : Radiant Spincrystal 64 -141065 : Radiant Spincrystal 65 -141066 : Radiant Spincrystal 66 -141067 : Radiant Spincrystal 67 -141068 : Radiant Spincrystal 68 -141069 : Radiant Spincrystal 69 -141070 : Radiant Spincrystal 70 -141071 : Radiant Spincrystal 71 -141072 : Radiant Spincrystal 72 -200001 : Lantern Fiber -200002 : Wick Material -200003 : Plaustrite Shard -200004 : Xiao Lantern -200101 : Rime-Worn Fragment -200102 : Rime-Worn Crystal -200103 : Festering Dragon Marrow -200104 : "The Visible Winds" -200105 : "Fragments of Innocence" -200106 : Emperor's Balsam -200107 : Ako's Sake Vessel -200108 : Alkahest -200109 : Ointment of Sight -200201 : Falcon's Dance -200202 : Steelwing -200203 : Galespring -200204 : Crushing Blow -200205 : Hunter's Romp -200206 : Ironbow -200207 : Whirlpool -200208 : Fierce Strike -200209 : Featherweight -200210 : Blade Dance -200211 : Courageous -200212 : Emboldened -200213 : Song of Steel -200214 : Intertwined Steps -200215 : Ritual -200216 : War Breeds War -200217 : Burst Damage -200218 : Endless Waltz -200219 : Refined Burst -200220 : Charge Up -200221 : Overcharge -200222 : Thundering Dance -200223 : Timely Rain -200224 : Overmastered -200225 : Scattersleet Dance -200226 : Frostbite -200227 : Keen Edge -200228 : Starcrystal Dance -200229 : Refraction Crystals -200230 : Focusing Crystals -200231 : Iron Wall -200232 : Duelist's Dance -200233 : Coalesced Defenses -200234 : Enhanced Healing -200235 : Execution -200236 : Judgment -200237 : Challenger -200238 : Fractured Fruit Bit -200239 : Fractured Fruit Fragment -200240 : Fractured Fruit Shard -200241 : Duelist's Dance -200242 : Blade Dance -200243 : Starcrystal Dance -200244 : Intertwined Steps -200245 : Endless Waltz -200246 : Refraction Crystals -200247 : Emboldened -200248 : Courageous -200249 : Whirlpool -200250 : Challenger -200251 : Execution -200252 : Focusing Crystals -200253 : Refined Burst -200254 : Judgment -200255 : Keen Edge -200256 : Burst Damage -200257 : Overmastered -200258 : Iron Wall -200259 : Song of Steel -200260 : Fierce Strike -200261 : Dance of Abundance -200262 : Conductivity -200900 : Wilderness Rod -200901 : Windtangler -200902 : Wishmaker -200903 : Narukawa Ukai -200904 : Moonstringer -210001 : Genshin Impact: A New World -210002 : Travel Notes: Catch the Wind -210003 : Amber: Bunny -210004 : Klee: Explosive -210005 : Diluc: Flames -210006 : Razor: Wolvensprint -210007 : Venti: Azure Sky -210008 : Jean: The Winds' Course -210009 : Barbara: Flow -210010 : Kaeya: Pavo Ocellus -210011 : Lisa: Tempus Fugit -210012 : Sucrose: Bio-Alchemy -210013 : Fischl: Night Raven -210014 : Noelle: Protector -210015 : Mona: Starry Sky -210016 : Bennett: Recognition -210017 : Xiangling: Fresh from the Pan -210018 : Xingqiu: Rainbow -210019 : Qiqi: Cold Storage -210020 : Keqing: Lightning Stiletto -210021 : Achievement: Explorer -210022 : Achievement: Virtuoso -210023 : Achievement: Hero -210024 : Mondstadt: Whistling Wind -210025 : Liyue: Stillness of Stone -210026 : Achievement: Colors of the Rainbow -210027 : Achievement: Bowmaster -210028 : Achievement: Challenger -210029 : Achievement: Deep & Dark -210030 : Achievement: Hill Dwellers -210031 : Achievement: Snowy Land -210032 : Achievement: Cliffhanger -210033 : Achievement: Reunion -210038 : Ningguang: Phoenix -210039 : Beidou: Weighing Anchor -210040 : Chongyun: Spirit Blade -210041 : Achievement: Challenger II -210042 : Travel Notes: Fading Star -210043 : Diona: Meow! -210044 : Zhongli: Planet Befall -210045 : Xinyan: Song's End -210046 : Childe: Foul Legacy -210047 : Mondstadt: Hero's Fame -210048 : Mondstadt: Blessing -210049 : Liyue: A Thousand Ships -210050 : Liyue: In the Clouds -210051 : Achievement: Challenger III -210052 : Achievement: Snowy Summit -210053 : Ganyu: Qilin -210054 : Albedo: Sun Blossom -210055 : Travel Notes: Chalk -210056 : Frostbearing: Ancient Tree -210057 : Celebration: Hypostasis -210058 : Xiao: Mask -210059 : Hu Tao: Spirit Soother -210060 : Travel Notes: Mingxiao -210061 : Celebration: Lantern-Light -210062 : Celebration: Mechanicus -210063 : Rosaria: Indenture -210064 : Travel Notes: Windblume -210065 : Celebration: Feast -210066 : Celebration: Shining Scale -210067 : Celebration: Fruit of Wisdom -210068 : Celebration: Peekaboo! -210069 : Yanfei: Impartial -210070 : Eula: Ice-Sealed -210071 : Travel Notes: Sub-Space Recreation -210072 : Achievement: Tea Time -210073 : Kaedehara Kazuha: Autumn Maple-Viewing -210074 : Travel Notes: Midsummer -210075 : Achievement: Vacation Home -210076 : Celebration: Vastness -210077 : Celebration: Kaboomball -210078 : Celebration: Battlesong -210079 : Inazuma: Sacred Sakura -210080 : Travel Notes: Grand Narukami Shrine -210081 : Kamisato Ayaka: Folding Fan -210082 : Yoimiya: Auratus Spark -210083 : Sayu: Muji-Muji Daruma -210084 : Inazuma: Raiden Emblem -210085 : Inazuma: Kamisato Crest -210086 : Achievement: Gate -210087 : Achievement: Traversal -210088 : Achievement: Stone Dragon -210089 : Achievement: Full Bloom -210090 : Inazuma: Kujou Insignia -210091 : Celebration: Wondrous Calculation -210092 : Raiden Shogun: Enlightenment -210093 : Sangonomiya Kokomi: The Deep -210094 : Kujou Sara: Tengu -210095 : Aloy: Dawn -210096 : Travel Notes: Moonchaser -210097 : Inazuma: Sangonomiya Crest -210098 : Achievement: Nails -210099 : Celebration: Tuneful Delight -210100 : Celebration: Ikki -210101 : Thoma: Blazing Guard -210102 : Travel Notes: Heavenly General -210103 : Inazuma: Eagleplume -210104 : Gorou: Leisurely Hound -210105 : Itto: Oni Face -210106 : Travel Notes: Lyratum -210107 : Shenhe: Comb -210108 : Yun Jin: Rhyme -210109 : Inazuma: Tokoyo -210110 : Travel Notes: Flowing Hues -210111 : Celebration: Binge Vessel -210112 : Yae Miko: Kitsune Dreaming -210113 : Travel Notes: Awakening -210114 : Kamisato Ayato: Ripple -210115 : Lumens: Stone of Light -210116 : Achievement: Thunderclap -210117 : Achievement: Chasm -210118 : Travel Notes: Irodori -220001 : Anemoculus Resonance Stone -220002 : Geoculus Resonance Stone -220003 : Geo Treasure Compass -220004 : Wind Catcher -220005 : Portable Waypoint -220006 : Adepti Seeker's Stove -220007 : Condensed Resin -220008 : NRE (Menu 30) -220009 : Anemo Treasure Compass -220013 : Treasure-Seeking Seelie -220014 : Mini Seelie: Dayflower -220015 : Mini Seelie: Rosé -220016 : Mini Seelie: Curcuma -220017 : Warming Bottle -220018 : Kamera -220019 : Kurious Kamera -220020 : Special Kamera -220021 : Parametric Transformer -220022 : Inquisitive Endora -220023 : Endora -220024 : Windblume Festival Commemorative Balloon -220025 : Windsong Lyre -220026 : Serenitea Pot -220027 : Wind-Blessed Harpastum -220028 : Waverider Repair Toolbox -220029 : Straight Shooter -220030 : Floaty Splody -220031 : Hot Pod -220032 : Electroculus Resonance Stone -220033 : Seed Dispensary -220034 : Electro Treasure Compass -220035 : Red Feather Fan -220036 : Memento Lens -220037 : Treasure-Seeking Seelie -220038 : Mini Seelie: Viola -220039 : Peculiar Pinion -220040 : Peculiar Pinion -220041 : ??? -220042 : Ayesha's Chaos Prospector -220043 : Omni-Ubiquity Net -220044 : Floral Zither -220045 : Shiki Koshou -220046 : Ubiquity Net -220047 : Launch Tube -220048 : Lumenstone Adjuvant -220049 : Bokuso Box -220050 : -221001 : Instructions: Anemoculus Resonance Stone -221002 : Instructions: Geoculus Resonance Stone -221003 : Diagram: Geo Treasure Compass -221004 : Diagram: Wind Catcher -221005 : Instructions: Portable Waypoint -221006 : Diagram: Adepti Seeker's Stove -221007 : Instructions: Condensed Resin -221008 : Diagram: NRE (Menu 30) -221009 : Diagram: Anemo Treasure Compass -221010 : Memory of the Entombed City -221011 : Memory of the Frostbearing Tree -221012 : Diagram: Dragonspine Spear -221013 : Saimon Heirloom Blade Diagram -221014 : Diagram: Katsuragikiri Nagamasa -221015 : Diagram: Kitain Cross Spear -221016 : Diagram: Hamayumi -221017 : Diagram: Warming Bottle -221018 : Mask of Memories -221032 : Instructions: Electroculus Resonance Stone -221034 : Diagram: Electro Treasure Compass -221035 : Formula: Fruit Paste Bait -221036 : Formula: Redrot Bait -221037 : Formula: False Worm Bait -221038 : Formula: Fake Fly Bait -222001 : Silken Print -223001 : The Mountain Clouds Let Down Golden Rain -223002 : The Silver Night is Full of Stars -223003 : The Gloom Paints the Cold Blooms -223004 : Fireworks Dance Amidst a Snowy Sky -223005 : Golden Calendula Swirl -223006 : Kindled Trees by the Moonlit Window -223007 : Mischievous Villosas -223008 : Sparkly Shiny Dodoco! -223009 : Fame and Fortune For a Season -223010 : Unyielding Spirit -223011 : Festival Spotlight -223012 : Wanmin Feast -340000 : Summertime Sparkle -340001 : Sea Breeze Dandelion -340002 : Orchid's Evening Gown -340003 : Opulent Splendor -340006 : Gunnhildr's Legacy -340007 : 100% Outrider -340008 : Pact of Stars and Moon -340009 : To the Church's Free Spirit -350001 : Adventurer Camp -350002 : Frontier Life -350003 : Rocks & Plants -350004 : Plain Liyue Bedroom -350005 : Corner of the Teahouse -350006 : Suburbia Lighting -350007 : Table & Chairs -350008 : Busy Kitchen -350009 : Tea Talk -350010 : Book Lover's Study -350011 : Fully Furnished Mondstadt Bedroom -350012 : Meeting Room of the "Strategic Six" -350013 : Wine o' Clock -350014 : Merchant's Working Lunch -350015 : Parlor Cordiality -350016 : Well-Equipped Study -350017 : Hermit's Hut -350018 : Hamlet House -350019 : Harvest Season Stall -350020 : Fruit & Veg Market -350021 : Training Ground -350022 : Arms Factory -350023 : Cargo Transfer Station -350024 : Festival Market -350025 : Thoroughfare Entrance: Evil Banisher -350026 : Ever-Popular Eatery -350027 : Rural Water Source -350028 : Lone and Cautious Adventurer -350029 : Climate Crossover -350030 : Dialogue Twixt Ancient Tree and Rock -350033 : Amidst Poetic Pondering -350034 : Amidst Whispering Winds -350035 : Feiyun Study Room -350036 : Cloudy Haze Dream-Court -350037 : Secret Research Lab -350038 : Cottage Kitchen -350039 : Weapon Forging Station -350040 : Idyllic Town -350041 : Bird and Blossom Park -350042 : Gathering of Gourmets -350043 : Glittering Street -350044 : Qingce Cloud Residence -350045 : Of Hunting and Dancing -350046 : Iter Ad Astra Abyssosque -350047 : Dawn Orchard -350048 : Court of the Upright -350049 : Wakeful Spring -350050 : Rural Concealment -350051 : Ancient Branch Shrine -350052 : Military Exercise Grounds -350053 : Jade Wilds -350054 : Summer Night's Recollection -350055 : Sakura-Hued Street -350056 : Eternal Domain of Fleeting Dreams -350057 : A Thousand Swings -350058 : Scholarly Trove -350059 : Of Maple and Tea Scents Entwined -380101 : Timber Wall With Jade Eaves -380102 : Dark Wood Arch Wall -380103 : Maple Wood Vaulted Wall -380201 : Traditional Cedar Flooring -380202 : Colorful Checkered Tile -380203 : Brown Maple Flooring -380301 : Checkered Cedar Ceiling -380302 : Dark Checkered Ceiling -380303 : Maple Wood Square Ceiling -380401 : Two-Tier Candle Chandelier -380402 : Eight-Sided Lantern: Lucky Day -380403 : Six-Sided Lantern: Harmony in Friendship -380404 : "Night of the Party Pumpkins" -380405 : Embroidered Lantern: Lofty Grandeur -380406 : Tasseled Lantern: Deck the Streets -380407 : Teahouse Candlestand: Scentless Flame -380408 : Teahouse Lamp: Light Concealed -380409 : Maple Wood Lamp: Light Fragrance -380410 : Maple Wood Floor Lamp: Clarity -380411 : Court Lantern: Lingering Majesty -380412 : Court Lantern: Red Moon of Yore -380413 : Court Lantern: Thundering Heart -380414 : Maple Wood Chandelier: Illume -380415 : Blooming Candle: Pure as a Lotus -380416 : Rainbow Lights: At Dawn We Celebrate -381101 : Northern Birch Folding Counter -381102 : Open-Top Fir Shelf -381103 : Fir Case Shelf Combination -381104 : Classic Fir Cabinet -381105 : Large Birch Wardrobe -381106 : Gold-Lined Sandbearer Wardrobe -381201 : Two-Tier Library Bookshelf -381202 : Exquisite Cuihua Bookshelf -381203 : Economy Cuihua Bookshelf -381204 : "Lost Between the Pages of a Book" -381205 : "Archivist's Treasure Trove" -381206 : Red Cedar Scroll Shelf -381207 : Red Cedar Curio Stand -381208 : Shopkeeper's Cedar Shelf -381209 : Maple Wood Bookcase: Inkheart -381210 : Maple Wood Bookcase: Trove of a Thousand Tomes -381301 : Sturdy Library Table -381302 : Favonius Office Table -381303 : Favonius Conference Table -381304 : Wide Stone Stove -381305 : Portable Stove -381306 : Long Table With Tablecloth -381307 : Multi-Seat Round Pine Table -381308 : Intricately Carved Calligraphy Table -381309 : Square Pine Tea Table -381310 : Red Cedar Round Table -381311 : Sturdy Birch Vanity -381313 : Common Cast Iron Stove -381314 : Yumemiru "Cold and Warmth" Kotatsu -381315 : "Sekijou" Aralia Tea Table -381316 : Teahouse Long Table: Seamless Seating -381401 : Breeze-Blessed Bed -381402 : Cloudy Haze Bed -381403 : Yumemiru "Sakura's Rest" Bed -381501 : Pine Reception Counter -381502 : Teahouse Counter: "Toshimaru" -382101 : Soft Lounge Sofa -382102 : "Clear Blue Afternoon" -382103 : "Unwavering Determination" -382104 : Pine Dining Chair -382105 : Pine-Backed Tea Chair -382106 : Red Pine Wood Round Stool -382108 : Teahouse Round Stool: Pain Point Reduction -382201 : Northern Stone Hearth -382202 : Pine Folding Screen: Billowing Sails -382203 : Hardwood Screen: Morning Mist in Jueyun -382204 : Birch Double Drawer Nightstand -382205 : Gold-Lined Sandbearer Nightstand -382206 : Silk Curtains: Fetching the Sanguine Sky -382207 : Floral Screen: Jade and Gold -382208 : Thundering Heavens Drum -382209 : Lantern-Lit Stage: Crescendo -382210 : Teahouse Cushion: Night-Woven -382211 : Maple Wood Ritual Drum: Festive Music -382212 : Maple Wood Ritual Drum: A Great Din -382213 : Teahouse Folding Screen: Hidden Heart of Gold -382214 : Ancestral Sword Rack: Four Core Principles -382215 : Hatamoto Armor: Eijin Genkou -382216 : Yumemiru "Jukaku" Folding Screen -382218 : Festive Fragrance: Goods Piled High -382219 : Festive Fragrance: Of Gold and Jade -382301 : Mondstadt Rug: Crimson Ardor -382302 : Mondstadt Rug: Tireless Search -382303 : Tavern Rug: Home Away From Home -382304 : Entrance Rug: A Warm Welcome -383101 : Trusty Portable Lamp -383102 : Liuli Pavilion Sandbearer Floor Lamp -383103 : Tianyuan Lantern: Fragrant Brilliance -383104 : Seashell Table Lamp -383201 : Flower Arrangement: Baby Blue Tranquility -383202 : Potted Plant: Crystalline Breeze -383203 : Flower Arrangement: Sprawling Daybreak -383204 : Potted Flower: Fragrant Facade -383205 : Potted Plant: Petite Perrenial -383206 : Cast in Clay -383207 : The Essential Vase -383208 : A Favor Returned -383301 : Classical Lyre: Tenor of the Wind -383302 : Neat Stack of Books -383303 : "Scholar's Weariness" -383304 : "Etiquette of Correspondence" -383305 : Exquisite Hourglass Ornament -383306 : Alchemic Device: Between Fire and Water -383307 : Alchemic Component: Burden of Dust -383308 : Calligraphy Set: Assiduous Calligraphy -383309 : Golden Triple-Arm Candelabrum -383310 : Glazed Porcelain Tea Set: "Embracing Truth" -383312 : "Tea Wisp-Clouded White Couch" -383313 : Teahouse Vessel: Scent-Sealer -383314 : Calligraphy Set: Proper Penmanship -383315 : Evil-Slaying Bows -383316 : Spiritchaser Screen -383317 : "Divine Nose:" Kitsu-Kitsu Daruma -383318 : "True Cookery": Nuki-Nuki Daruma -384101 : Landscape Painting: Country Home -384102 : Landscape Painting: Distant Clouds -384103 : Landscape Painting: Nameless Precipice -384104 : Fine Brushwork: Peaks of Minlin -384105 : Fine Brushwork: Bowl of Blossoms -384106 : Fine Brushwork: Mountains Rising From the Mist -384107 : Painted Vision: Of Mountains and Skies Distant -384108 : Painted Vision: Stunning Waters -384109 : Replica Mural: Lone Peak in a Sea of Fog -384110 : Replica Mural: Ancient Ritual in a Sea of Fog -384201 : Wooden Restaurant Signboard -384202 : Bright Vase-Shaped Sconce -384203 : Well-Worn Buckler -384204 : Well-Worn Shield -384205 : Well-Worn Sword -384206 : Rally Banner -384207 : Pure Spirit Banner -384208 : Favonius Coat of Arms -384209 : Mounted Record Board -384210 : Mounted Noticeboard -384211 : Embroidered Curtains -384501 : Lingering Moment -390101 : Straw Hut -390102 : Straw Depot -390103 : Liyue House: Solitary Retreat -390104 : Liyue House: Of Timber and Stone -390105 : Liyue Pitstop: Tea Fragrance on the Old Road -390106 : Liyue House: Moon-Crested Eaves -390107 : Liyue House: Amity Abounds -390108 : Liyue Shop: Citywide Favorite -390109 : Wing House: Dawn & Dusk -390110 : Pavilion: Stargazer's Shelter -390111 : "Hyoutei" Stacked Aralia Wood Boxes -390112 : Aralia "Bangaku" Shelf -390113 : Aralia "Fusen" Cupboard -390114 : Yumemiru "Dewcover" Wardrobe -390115 : Yumemiru "Decorum" Kimono Rack -390201 : Multi-Arched Mondstadt Building -390202 : Mondstadt House With Overhanging Attic -390203 : Warm and Dry Mondstadt Apartment -390204 : Old Wind-Resistant Mondstadt House -390205 : Country Home With Tall Attic -390206 : Classic Country Home -390207 : Pocket-Sized Pine Cabin -390208 : Liyue House: Time Waits for No One -390301 : Bustling Sundry Stand -390302 : Profitable Fruit Stand -390303 : Real Deal Fruit Stand -390304 : Open-Air Workshop -390305 : Bountiful Harvest Fruit Cart -390306 : "Traveling Merchant North of the Stone Gate" -390307 : Roll-Roofed Fruit and Vegetable Cart -390308 : "Four-Quadrant Cooking Cauldron" -390309 : Fruit and Veggie Stall: Harvest Bounties -390310 : Otogi Wood Ramen Stand -390401 : Hilichurl Outpost Hut -390402 : Hilichurl Chieftain Hall -390501 : "Clouds East of Bishui" -390502 : Straw Shed -390503 : Lightning Protective Tent -390504 : Simple Single-Person Tent -390505 : Otogi Wood Rice Cake Soup Stand -390507 : Otogi Wood Granary Cart -390508 : Umbrella Shop: Drapes of Differing Dreams -390509 : Fruit and Veggie Stall: Good Honest Flavor -390510 : Festival "Teiban" Store -390511 : Festival "Kiban" Store -390512 : "Kouki" Aralia Mask Rack -390513 : Fine Stall: Splash of Color -390514 : Rainbow Stall: Ultramarine -390515 : Rainbow Stall: Ruby Red -390516 : Festival Booth - "Strange Wonders" -390517 : Festival Booth - "Literary Talent" -390601 : Ritual Shrine -390602 : Cleansing Shrine -390603 : Inazuman Mansion: As One -390604 : Inazuman Store: Numberless Gems -390605 : Inazuman Home: The Work of Generations -390606 : Inazuman Home: Easy Adaptation -390607 : Inazuman Workshop: Exhaustive Regularity -390608 : Inazuman Home: Routine Dimensions -390609 : Inazuman Bamboo-Roofed Home: The Long Peace -390610 : Inazuman Bamboo-Roofed Home: Wild Heart -390611 : Inazuman Workshop: Multipurpose -390612 : Inazuman Home: Clanking Metal -390613 : Inazuman Workshop: Sweetness Sought -390614 : Inazuman Home: Irreplaceable Foresight -390615 : Inazuman Official Residence: Forcefulness -390616 : Inazuman Official Residence: Strict Adherence -390617 : Official Residence Corridor: Power's Reach -390618 : Camp Watchtower: Viewport -390619 : Camp Tent: Timely Tactics -390620 : Camp Dwelling: Shoring Up -390621 : Camp Gate: Fealty -390623 : Fortune Slip Stand: Omen-Reader -390624 : Shrine Hall: Gentle Wishes -390625 : Shrine Annex: Pleased to Serve -390626 : Estate Reception: Prim and Proper -390627 : Estate Storehouse: We Have Reserves -390628 : Inazuman Home: Watatsumi Reminiscence -390629 : Inazuman Home: House of Coral -390630 : Inazuman Home: Stormhouse -391101 : Bird and Blossom Design Fountain -391102 : Hilichurl Spiral Watchtower -391103 : Hilichurl Straw Hut -391104 : "Ballad-Spinning Windwheel" -391107 : Temporary Work Quarters -391109 : "Pure Gorgeous Summer" -391110 : Scarlet Torii Gate: Door of Silence -391112 : Scarlet Torii Gate: Way of Restoration -391113 : Estate Gate: Windy Doors -391114 : Estate Corridor: Onward With Ease -391115 : Estate Courtyard Corner: Measured Harmony -391116 : Whitestone Hot Spring: Diffusing Warmth -391117 : Of Fields Green: Clear Spring Fountain -391118 : Sub-Space Cabochon: In Soaring Flight -391201 : Adeptus Gate -391202 : Birch Main Courtyard Gate -391203 : Carved Courtyard Fence Ending -391204 : Carved Courtyard Fence -391205 : Scenic Corridor: Sylvan Stroll -391206 : Courtyard Wall: Spring and Autumn Splendor -391207 : Wall Corner: Fragrant Nook -391208 : Courtyard Wall: All in a Row -391209 : Courtyard Wall: Peace Across -391210 : Main Entrance: Gateway to the Clouds -391211 : Perimeter Wall: Scenic Archway -391212 : Veranda Corner: Pavilion's Watch -391213 : Key Gateway: Beneath the Clouds -391214 : Key Fence: Self-Restraint -391215 : Fence Corner: Long Watch -391216 : Otogi "Kintake" Courtyard Gate -391217 : Otogi "Kintake" Fence -391218 : Encampment Fence: Jagged Teeth -391219 : Encampment Fence: Decisive Judgment -391220 : Encampment Fence: Honing Goad -391221 : Shrine Corridor: Sakura-Dusted Path -391222 : Shrine Corridor: Vermilion Gaze -391223 : Estate Courtyard Wall: Stoneguard -391224 : Estate Courtyard Wall: Harmonious Corner -391225 : Estate Courtyard Wall: Hidden Boundary -391226 : Estate Wall Corner: Old City Palisade -391227 : Hot Spring Folding Screen: Moderation -391228 : Hot Spring Outer Wall: No Vaulting -391229 : Hot Spring Wall: Well-Grounded -391230 : Hot Spring Foyer: Shelter from the Cold -392107 : Foundations of Stone: Fortunate Times -393101 : Messy Pile of Fir Crates -393102 : Neat Stack of Fir Kegs -393103 : Heavy Hay Bale -393104 : Wine Jar With Bamboo Casing: Spirits Awaiting Moonrise -393105 : Toy Stand: Dazzling Delights -393106 : Umbrella Shop: Kaleidoscope of Parasol Colors -393107 : Storage Sack: Buzz-Off Bag -393108 : Fruit Seller's Caution -393109 : Fruit Seller's Toil -393110 : Hardened Glazed Vase -393111 : Hilichurl Archery Target -393112 : Hilichurl Horned Pot -393113 : Deadwood Road Sign -393114 : "The Adventurer's Burdens" -393115 : Sturdy Wooden Barrel -393116 : Tall Wooden Pole -393117 : Wood Bundle -393118 : Rainproof Fir Cargo Container -393119 : Stone Cup-Shaped Pool -393120 : "Feather-Light Praise" -393121 : "A Bloatty Floatty's Dream of the Sky" -393122 : "A Guide in the Summer Woods" -393123 : Training Ground Support Stakes -393124 : "A Messenger in the Summer Woods" -393125 : "Courtyard Cleansing Pool" -393126 : Headquarters Alarm: Sound of Thunder -393127 : War Drum: Line-Breaking Reverb -393128 : Simple Otogi Workshop -393129 : Otogi "Rikuyou" Wooden Barrel -393130 : Otogi "Tanin" Wood Barrel -393131 : "Kokutan" Thick-Walled Clay Water Tank -393132 : Replica Ancient Otogi Keg -393133 : Replica Ancient Otogi Crate -393134 : Mountain of Festive Gifts -393137 : Heavy-Duty Restaurant Stove -393138 : Serene Flames -393201 : Potted Plant: Verdant Vastness -393202 : Water-Retaining Flower Beds -393203 : Soil-Carrying Wooden Barrel -393204 : "Pines Awaiting the Twilight" -393301 : Fir Shelves -393302 : Fir Weapon Rack -393303 : Hardwood Weapon Rack -393304 : Simple Cargo Cart -393305 : Sturdy Stone Well -393306 : Farmer's Scarecrow -393307 : Old Well -393308 : Roofed Well: For Purity -393309 : Stone Lion Statue: The Warding -393310 : Stone Lion Statue: The Knowing -393311 : Countryside Tea Stand -393312 : "The Adventurer's Treasures" -393313 : "Witch's Chorus" -393315 : Yumemiru "Saikyo" Fortune Slip Hanger -393316 : Narukami's Banner -393317 : Camp Bow-Rack: Fletching -393318 : Camp Spear-Rack: Point Break -393319 : Camp Bonfire: Glorious Clarity -393320 : Camp Barricade: Taking Sides -393321 : Sky Kitsune Statue: Hakushin's Legacy -393322 : High-Flying Fish Flag -393323 : Maple Wood Tanuki -393324 : Maple Wood White Kitsune -393325 : Red-Iron Coral -393326 : Glowstone Parasol -393327 : Shrine Statue: "Seirai Ward" -393328 : Village Well: Underground Spring -393329 : Yumemiru "Seiken" Offering Box -393330 : Ancestral Sword Rack: Iron Sharpens Iron -393331 : The Bamboo's Call -393332 : "Henji" Aralia Noticeboard -393333 : Village Well: Subterranean Secrets -393337 : Rainbow Lights: Lovely Night View -393338 : Rainbow Cloud Flying Satin Pole -393339 : Gold-Inscribed Evil-Cleansing Banner -393343 : Tanuki Hugs Photo Board -393344 : "Kitsune Guuji" Exclusive Painted Flag Banner -393401 : Wrought Iron Carved Street Light -393402 : Pine Street Light -393403 : Evil-Repelling Lantern: All-Around Lighting -393404 : Four Corners Lantern: Amity From Afar -393405 : Shadow Lamp: Painted Shadow -393406 : Stone Lantern: Fudoumyou's Light -393407 : "Three Reaches Bright" -393408 : Whitestone "Meichuu" Standing Lamp -393409 : Otogi "Meichuu" Standing Lamp -393410 : Five-Lantern Festival Gate -393411 : Yumemiru "Kuukai" Street Lamp -393412 : Yumemiru "Juunen" Street Lamp -393413 : White Fish Tallow Candle: Evenlight -393414 : Otogi Countryside Street Lamp -393415 : Simple Otogi Street Lamp -393416 : Aralia "Renzou" Street Lamp -393601 : Pool of Sapphire Grace -394101 : Weathered Bamboo Fence -394102 : Sturdy Pine Fence -394103 : Wooden Hilichurl Fence -394104 : Hilichurl Totem Fence -394105 : Lush Grapevine -394106 : Newly Grown Grapevines -394107 : Simple Wooden Fence -394108 : Half-Constructed Fence -394109 : The Fruit Farmer's Thrift -394110 : "Kyuukou" Otogi Flower Terrace -394111 : "Sanzai" Otogi Flower Terrace -394201 : Smooth Wooden Bench -394202 : Smooth Stone Bench -394203 : Googol Chair -394204 : Square Yumemiru Stool -394205 : Otogi "Rakushi" Square Stool -394301 : Two-Story Hilichurl Sentry Tower -394302 : Doorless Pine Cupboard -394303 : Heavy Fir Forging Table -394304 : Long Pine Table -394305 : Large Stone Mill -394306 : Alchemist's Crafting Bench -394307 : Two-Tier Vendor's Booth: Rising Fortunes -394308 : Bamboo Outdoor Tea Table -394309 : Wooden Outdoor Tea Table -394310 : "Summer Forest Banquet" -394311 : Googol Table -394312 : Long Yumemiru Table -394313 : Otogi "Rakushi" Square Table -394401 : Wine Shop Display Counter: To Your Heart's Content -394402 : Crude Double-Decker Pallet -394403 : "Cradle of Flowers" -394404 : "The Blue Ocean's Treasure" -394501 : Foundations of Stone: Path of Cultivation -394502 : Foundations of Stone: Timely Arrival -394503 : Foundations of Stone: Double-Time -394504 : Of Fields Green: Cookie Road - -// Monsters -20010101 : Dendro Slime -20010201 : Large Dendro Slime -20010202 : -20010301 : Anemo Slime -20010302 : Anemo Slime (Mechanicus) -20010401 : Large Anemo Slime -20010402 : Large Anemo Slime (Mechanicus) -20010403 : -20010501 : Electro Slime -20010502 : Electro Slime (Mechanicus) -20010601 : Large Electro Slime -20010602 : Large Electro Slime (Mechanicus) -20010604 : -20010701 : Mutant Electro Slime -20010702 : -20010703 : Mutant Electro Slime (Mechanicus) -20010801 : Cryo Slime -20010802 : Cryo Slime - Dragonspine Event -20010803 : Cryo Slime (Mechanicus) -20010901 : Large Cryo Slime -20010902 : Large Cryo Slime - Snowy Mountain Event -20010903 : Large Cryo Slime (Mechanicus) -20010904 : -20011001 : Hydro Slime -20011002 : Hydro Slime (Mechanicus) -20011101 : Large Hydro Slime -20011102 : Large Hydro Slime (Mechanicus) -20011103 : -20011201 : Pyro Slime -20011202 : Pyro Slime -20011203 : Pyro Slime (Mechanicus) -20011301 : Large Pyro Slime -20011302 : Large Pyro Slime (Mechanicus) -20011304 : -20011401 : Geo Slime -20011402 : Geo Slime (Mechanicus) -20011501 : Large Geo Slime -20011502 : -20011503 : Large Geo Slime (Mechanicus) -20011601 : Hydro Hypostasis Summon: Split (L) -20011701 : Hydro Hypostasis Summon: Split (S) -20011801 : Hydro Hypostasis Summon: Self-Destruct -20011901 : Hydro Hypostasis Summon: Heal -20020101 : Eye of the Storm -20040101 : Electro Hypostasis - Aleph -20040102 : (Event) Electro Hypostasis - Aleph -20040201 : Anemo Hypostasis - Beth -20040202 : (Event) Anemo Hypostasis - Beth -20040301 : Geo Hypostasis: Gimel -20040302 : (Event) Geo Hypostasis - Gimel -20040401 : Hydro Hypostasis -20040501 : Cryo Hypostasis - Daleth -20040601 : Pyro Hypostasis: Ayin -20050101 : Oceanid -20050102 : Oceanid (Main Body) -20050201 : Oceanid Boar -20050202 : Oceanid Boar (Enhanced) -20050203 : -20050301 : Oceanid Crane -20050302 : -20050401 : Oceanid Crab -20050402 : Oceanid Crab (Enhanced) -20050403 : -20050501 : Oceanid Finch -20050502 : -20050601 : Oceanid Mallard -20050602 : Oceanid Mallard (Landwalker Version) -20050603 : -20050701 : Oceanid Ferret -20050702 : Oceanid Ferret (Enhanced) -20050703 : -20050801 : Oceanid Frog -20050802 : -20050901 : Oceanid Raptor -20060101 : Hydro Specter -20060201 : Geo Specter -20060301 : Anemo Specter -20060401 : null -20060501 : null -20060601 : null -20070101 : Thunder Manifestation -21010101 : Hilichurl -21010102 : Hilichurl (Mechanicus) -21010201 : Hilichurl Fighter -21010301 : Wooden Shield Hilichurl Guard -21010302 : Wooden Shield Hilichurl Guard (Mechanicus) -21010401 : Hilichurl Shooter -21010402 : Test_Varied Hilichurl Shooter -21010501 : Pyro Hilichurl Shooter -21010502 : Test_Varied Pyro Hilichurl Shooter -21010601 : Hilichurl Grenadier -21010603 : -21010701 : Hilichurl Berserker -21010702 : Hilichurl Berserker (Mechanicus) -21010901 : Cryo Hilichurl Shooter -21010902 : Test_Varied Cryo Hilichurl Shooter -21011001 : Electro Hilichurl Shooter -21011002 : Test_Varied Electro Hilichurl Shooter -21011201 : Rock Shield Hilichurl Guard -21011202 : Rock Shield Hilichurl Guard (Mechanicus) -21011301 : Cryo Hilichurl Grenadier -21011302 : Cryo Hilichurl Grenadier - Enhanced Attack -21011401 : Ice Shield Hilichurl Guard -21011402 : Ice Shield Hilichurl Guard (Mechanicus) -21011403 : Ice Shield Hilichurl Guard: Dragonspine Event -21011501 : Unusual Unarmed Hilichurl -21011601 : Electro Hilichurl Grenadier -21011602 : Electro Hilichurl Grenadier - Enhanced Attack -21020101 : Wooden Shieldwall Mitachurl -21020102 : Wooden Shieldwall Mitachurl (Mechanicus) -21020201 : Blazing Axe Mitachurl -21020202 : -21020203 : Blazing Axe Mitachurl (Mechanicus) -21020301 : Rock Shieldwall Mitachurl -21020302 : Rock Shieldwall Mitachurl (Mechanicus) -21020401 : Frostarm Lawachurl -21020402 : Frostarm Lawachurl (Mechanicus) -21020501 : Stonehide Lawachurl -21020502 : Stonehide Lawachurl (Mechanicus) -21020601 : Ice Shieldwall Mitachurl -21020602 : Ice Shieldwall Mitachurl (Mechanicus) -21020701 : Crackling Axe Mitachurl -21020702 : Crackling Axe Mitachurl (Mechanicus) -21020703 : Crackling Axe Mitachurl - Enhanced Attack -21020801 : Thunderhelm Lawachurl -21020802 : Thunderhelm Lawachurl (Mechanicus) -21030101 : Hydro Samachurl -21030102 : Hydro Samachurl (Mechanicus) -21030103 : Test_Movement Healing Hydro Samachurl -21030201 : Dendro Samachurl -21030202 : Dendro Samachurl (Mechanicus) -21030203 : -21030301 : Anemo Samachurl -21030302 : Anemo Samachurl (Mechanicus) -21030303 : Test_Wind Current Enhanced Anemo Samachurl -21030304 : -21030401 : Geo Samachurl -21030402 : -21030403 : Geo Samachurl (Mechanicus) -21030501 : Cryo Samachurl -21030502 : Cryo Samachurl (Mechanicus) -21030601 : Electro Samachurl -21030602 : Electro Samachurl (Mechanicus) -21030603 : Electro Samachurl - Enhanced Support -22010101 : Pyro Abyss Mage -22010102 : Test_Shield-Enhanced Pyro Abyss Mage -22010103 : Test_Teleport-Enhanced Pyro Abyss Mage -22010104 : Test_Attacking-Enhanced Pyro Abyss Mage -22010105 : Pyro Abyss Mage (Mechanicus) -22010201 : Cryo Abyss Mage -22010202 : Test_Shield-Enhanced Cryo Abyss Mage -22010203 : Test_Teleport-Enhanced Cryo Abyss Mage -22010204 : Test_Attacking-Enhanced Cryo Abyss Mage -22010205 : Cryo Abyss Mage (Mechanicus) -22010301 : Hydro Abyss Mage -22010302 : Test_Shield-Enhanced Hydro Abyss Mage -22010303 : Test_Teleport-Enhanced Hydro Abyss Mage -22010304 : Test_Attacking-Enhanced Hydro Abyss Mage -22010305 : Hydro Abyss Mage (Mechanicus) -22010401 : Electro Abyss Mage -22010402 : Electro Abyss Mage (Mechanicus) -22010403 : Electro Abyss Mage - Enhanced Shield -22010404 : Electro Abyss Mage - Enhanced Attack -22020101 : Abyss Herald: Wicked Torrents (Disappearing) -22020102 : Abyss Herald: Wicked Torrents (Permanent) -22030101 : Abyss Lector: Violet Lightning (Disappearing) -22030102 : Abyss Lector: Violet Lightning (Permanent) -22030201 : null -22030202 : null -22040101 : Rockfond Rifthound Whelp -22040201 : Thundercraven Rifthound Whelp -22050101 : Rockfond Rifthound -22050201 : Thundercraven Rifthound -22060101 : Golden Wolflord -22070101 : null -22070102 : null -22070201 : null -22070202 : null -22070301 : null -22070302 : null -22080101 : null -23010101 : -23010201 : -23010301 : -23010401 : -23010501 : -23010601 : -23020101 : Fatui Agent -23020102 : -23030101 : Fatui Electro Cicin Mage -23030102 : -23040101 : Fatui Cryo Cicin Mage -23040102 : Fatui Cryo Cicin Mage - Enhanced Attack -23050101 : Fatui Mirror Maiden -24010101 : Ruin Guard -24010102 : Ruin Guard (Mechanicus) -24010108 : -24010109 : -24010201 : Ruin Hunter -24010202 : Ruin Hunter (Mechanicus) -24010301 : Ruin Grader -24010302 : Ruin Grader (Mechanicus) -24010303 : Ruin Grader (Mining Version) -24010401 : null -24020101 : Ruin Cruiser -24020102 : Ruin Cruiser (Weakened) -24020103 : Ruin Cruiser (Enhanced) -24020201 : Ruin Destroyer -24020202 : Ruin Destroyer (Weakened) -24020203 : Ruin Destroyer (Enhanced) -24020301 : Ruin Defender -24020302 : Ruin Defender (Weakened) -24020303 : Ruin Defender (Enhanced) -24020401 : Ruin Scout -24020402 : Ruin Scout (Weakened) -24020403 : Ruin Scout (Enhanced) -24021101 : Perpetual Mechanical Array -24021102 : Perpetual Mechanical Array (Inazuma Event-Only) -25010101 : Liuliu -25010102 : Mystery Man -25010103 : -25010104 : -25010105 : null -25010106 : null -25010201 : Treasure Hoarder Scout -25010203 : -25010204 : -25010205 : -25010206 : -25010207 : -25010208 : -25010301 : -25010302 : -25010401 : -25010501 : -25010601 : -25010701 : -25020101 : Raptor -25020102 : -25020201 : Treasure Hoarder Marksman -25020204 : -25030101 : Carmen -25030102 : null -25030103 : null -25030201 : Treasure Hoarder Gravedigger -25030301 : Treasure Hoarder Oarsman -25040101 : Boss -25040102 : null -25040103 : null -25050101 : Millelith Soldier -25050201 : Millelith Sergeant -25050301 : Shogunate Infantry -25050401 : Shogunate Infantry Captain -25050402 : -25050501 : Sangonomiya Cohort -25050502 : -25060101 : -25060102 : -25070101 : -25070201 : null -25070202 : null -25080101 : Ronin -25080201 : Ronin: Sanzoku -25080202 : null -25080301 : Ronin: Anbu -25080401 : Shogunate Samurai -25080402 : null -25090101 : Marionette General -25090102 : Marionette General: Wind Bunshin -25090103 : Marionette General: Ice Bunshin -25090104 : Marionette General: Masked Bunshin -25090201 : Marionette General: Wind Bunshin (With Icon) -25090301 : Marionette General: Ice Bunshin (With Icon) -25090401 : Marionette General: Masked Bunshin (With Icon) -25100101 : Electro Kairagi -25100102 : null -25100201 : Pyro Kairagi -25100301 : Thunderwraith Kairagi -25100302 : null -25100401 : Flameghoul Kairagi -26010101 : Cryo Whopperflower -26010102 : Cryo Whopperflower (Dragonspine Event) -26010103 : Giant Cryo Whopperflower (2.3 Dragonspine Event) -26010104 : -26010201 : Pyro Whopperflower -26010301 : Electro Whopperflower -26020101 : Cryo Regisvine -26020102 : Cryo Regisvine (Dragonspine Event) -26020201 : Pyro Regisvine -26030101 : Geovishap Hatchling -26040101 : Geovishap: Hydro -26040102 : Geovishap: Pyro -26040103 : Geovishap: Cryo -26040104 : Geovishap: Electro -26040105 : Geovishap: Hydro (Mechanicus) -26050101 : Primo Geovishap: Hydro -26050201 : Primo Geovishap: Pyro -26050301 : Primo Geovishap: Cryo -26050401 : Primo Geovishap: Electro -26050501 : Primo Geovishap (Event) -26050601 : null -26050701 : null -26050702 : null -26050801 : null -26050802 : null -26050901 : null -26051001 : null -26051101 : null -26060101 : Electro Cicin -26060201 : Hydro Cicin -26060301 : Cryo Cicin -26080101 : null -26090101 : null -28010101 : Golden Crab -28010102 : Sun Crab -28010103 : Ocean Crab -28010104 : General Crab -28010105 : Pale Red Crab -28010106 : Crab -28010201 : Blue Horned Lizard -28010202 : Red Horned Lizard -28010203 : Green Horned Lizard -28010204 : Sunset Loach -28010205 : Golden Loach -28010206 : Sunny Loach -28010207 : Pith Lizard -28010301 : Frog -28010302 : Mud Frog -28010303 : Blue Frog -28010401 : -28010402 : null -28010403 : -28020101 : Snow Fox -28020102 : Crimson Fox -28020103 : Gifting Snow Fox -28020104 : Super-Gifting Snow Fox -28020105 : null -28020106 : null -28020201 : Squirrel -28020301 : Forest Boar -28020302 : Forest Piglet -28020303 : Snowboar -28020304 : Great Snowboar King -28020305 : Frozen Snowboar -28020306 : null -28020307 : null -28020308 : null -28020309 : null -28020401 : Northland Hound -28020402 : Forest-Patrol Hound -28020403 : Shiba -28020404 : Black-Back Hound -28020405 : Shiba -28020406 : Northland Hound (Dog Event Special, Extended LoS Range) -28020407 : null -28020408 : null -28020409 : null -28020410 : null -28020501 : Sapphire -28020502 : Jade-Eyed Cat -28020503 : Gray Snow Cat -28020504 : Northland Cat -28020505 : Tiger-Striped Cat -28020506 : Sheriff Cat -28020507 : Black Cat -28020508 : Sapphire -28020509 : Gray Snow Cat (Dog Event Special, Extended LoS Range) -28020510 : null -28020511 : null -28020512 : null -28020513 : null -28020601 : Snow Weasel -28020602 : Red-Tailed Weasel -28020603 : Boot Weasel -28020604 : Masked Weasel -28020605 : null -28020701 : Kitsune -28020702 : Kitsune (Dog Event Special, Extended LoS Range) -28020801 : Bake-Danuki -28020802 : null -28020803 : null -28020901 : Samurai Dog (Patrol) -28020902 : Samurai Dog (Combat) -28020903 : null -28030101 : Azure Crane -28030102 : Violet Ibis -28030201 : Brownwing Falcon -28030202 : Umbertail Falcon -28030203 : Lapis Glede -28030204 : Silkwhite Falcon -28030301 : White Pigeon -28030302 : Brightcrown Pigeon -28030303 : Graywing Pigeon -28030304 : Crimsonflank Pigeon -28030305 : Black King Pigeon -28030306 : Duck -28030307 : White Pigeon -28030308 : Brightcrown Pigeon -28030309 : Graywing Pigeon -28030310 : Crimsonflank Pigeon -28030311 : Black King Pigeon -28030401 : Crimson Finch -28030402 : Golden Finch -28030403 : Snow Finch -28030404 : Emerald Finch -28030405 : null -28030406 : null -28030407 : null -28030408 : null -28030409 : null -28030501 : Scarletbeak Duck -28030502 : Emerald Duck -28030503 : Golden Duck -28030504 : null -28040101 : Black-Back Bass -28040102 : Blue-Fin Bass -28040103 : Golden Bass -28040104 : Black-Back Bass -28040105 : Black-Back Bass -28040106 : Blue-Fin Bass -28040107 : Golden Bass -28040108 : null -28040201 : Medaka -28040202 : Glaze Medaka -28040203 : Sweet-Flower Medaka -28040204 : Aizen Medaka -28040205 : Dawncatcher -28040206 : Crystalfish -28040301 : Lunged Stickleback -28040302 : Betta -28040303 : Venomspine Fish -28040304 : Akai Maou -28040305 : Snowstrider -28040401 : Golden Koi -28040402 : Rusty Koi -28040501 : Brown Shirakodai -28040502 : Purple Shirakodai -28040503 : Tea-Colored Shirakodai -28040504 : Abiding Angelfish -28040505 : Raimei Angelfish -28040506 : Moonfin -28040601 : Pufferfish -28040602 : Bitter Pufferfish -28040701 : null -28040702 : null -28040703 : null -28050101 : Anemo Crystalfly -28050102 : Geo Crystalfly -28050103 : Cryo Crystalfly -28050104 : Electro Crystalfly -28050105 : null -28050201 : Amateur Weasel Thief -28050202 : Hoarder Weasel Thief -28050203 : Golden Weasel Thief -28050204 : null -28050211 : Amateur Weasel Thief -28050212 : Hoarder Weasel Thief -28050213 : Golden Weasel Thief -28050221 : null -28050222 : null -28050223 : null -28050301 : null -28210101 : Domestic Golden Crab -28210102 : Domestic Sun Crab -28210103 : Domestic Ocean Crab -28210104 : Domestic General Crab -28210105 : Domestic Pale Red Crab -28210201 : Domestic Blue Horned Lizard -28210202 : Domestic Red Horned Lizard -28210203 : Domestic Green Horned Lizard -28210204 : Domestic Sunset Loach -28210205 : Domestic Golden Loach -28210206 : Domestic Sunny Loach -28210207 : Domestic Marrow Lizard -28210301 : Domestic Frog -28210302 : Domestic Mud Frog -28210303 : Domestic Blue Frog -28210401 : Domestic Adorned Unagi -28210402 : null -28210403 : Domestic Red-Finned Unagi -28220101 : Domestic Snow Fox -28220102 : Domestic Crimson Fox -28220201 : Domestic Squirrel -28220301 : Domestic Forest Boar -28220303 : Domestic Snowboar -28220401 : Domestic Northland Hound -28220402 : Domestic Forest-Patrol Hound -28220403 : Domestic Shiba -28220404 : Domestic Black-Back Hound -28220501 : Domestic Sapphire -28220502 : Domestic Jade-Eyed Cat -28220503 : Domestic Gray Snow Cat -28220504 : Domestic Northland Cat -28220505 : Domestic Tiger-Striped Cat -28220506 : Domestic Sheriff Cat -28220601 : Domestic Snow Weasel -28220602 : Domestic Red-Tailed Weasel -28220603 : Domestic Boot Weasel -28220605 : null -28220701 : Domestic Kitsune -28220901 : Domestic Samurai Dog -28230101 : Domestic Azure Crane -28230102 : Domestic Violet Ibis -28230301 : Domestic White Pigeon -28230302 : Domestic Brightcrown Pigeon -28230303 : Domestic Graywing Pigeon -28230304 : Domestic Crimsonflank Pigeon -28230305 : Domestic Black King Pigeon -28230306 : Domestic Crow -28230401 : Domestic Crimson Finch -28230402 : Domestic Golden Finch -28230403 : Domestic Snow Finch -28230404 : Domestic Emerald Finch -28240201 : Domestic Medaka -28240202 : Domestic Glaze Medaka -28240203 : Domestic Sweet-Flower Medaka -28240204 : Domestic Aizen Medaka -28240205 : Domestic Dawncatcher -28240206 : Domestic Crystalfish -28240301 : Domestic Lunged Stickleback -28240302 : Domestic Betta -28240303 : Domestic Venomspine Fish -28240304 : Domestic Akai Maou -28240305 : Domestic Snowstrider -28240401 : Domestic Golden Koi -28240402 : Domestic Rusty Koi -28240501 : Domestic Brown Shirakodai -28240502 : Domestic Purple Shirakodai -28240503 : Domestic Tea-Colored Shirakodai -28240504 : Domestic Abiding Angelfish -28240505 : Domestic Raimei Angelfish -28240506 : Domestic Moonfin -28240601 : Domestic Pufferfish -28240602 : Domestic Bitter Pufferfish -28240701 : null -28240702 : null -28250101 : Domestic Anemo Crystalfly -28250102 : Domestic Geo Crystalfly -28250103 : Domestic Cryo Crystalfly -28250104 : Domestic Electro Crystalfly -28250105 : null -28250301 : null -29010101 : Stormterror -29010102 : Stormterror -29010103 : Stormterror -29010104 : Stormterror -29020101 : Boreas, Great Wolf King of the North -29020102 : Andrius, Dominator of Wolves -29030101 : Eleventh of the Fatui Harbingers - Tartaglia -29030102 : Delusion Unleashed - Childe -29030103 : Childe -29030104 : Eleventh of the Fatui Harbingers - Tartaglia -29030105 : Delusion Unleashed - Childe -29030106 : Childe -29040101 : Azhdaha -29040102 : Azhdaha -29040103 : Azhdaha -29040104 : Azhdaha -29040111 : Azhdaha -29050101 : Signora -29050102 : Crimson Witch of Embers -29050103 : Signora -29050104 : Crimson Witch of Embers -29060101 : Raiden Shogun -29060102 : Raiden Ei -29060201 : null -29060202 : null -29060203 : null From 98bb7e9bc4ec25407392dc75fc5a5e03af6ea7c0 Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon <benjamin7006@gmail.com> Date: Wed, 27 Apr 2022 08:36:13 +0800 Subject: [PATCH 26/40] Removed debug messages, readded protos, fixed gradle --- build.gradle | 4 + proto/ChangeMailStarNotify.proto | 8 + proto/DelMailReq.proto | 7 + proto/DelMailRsp.proto | 8 + proto/EquipParam.proto | 10 + proto/GetAllMailReq.proto | 7 + proto/GetAllMailRsp.proto | 11 + proto/GetMailItemReq.proto | 7 + proto/GetMailItemRsp.proto | 11 + proto/MailChangeNotify.proto | 10 + proto/MailData.proto | 20 + proto/MailItem.proto | 11 + proto/MailTextContent.proto | 9 + proto/ReadMailNotify.proto | 7 + .../emu/grasscutter/game/GenshinPlayer.java | 1 - .../proto/ChangeMailStarNotifyOuterClass.java | 737 ------- .../net/proto/DelMailReqOuterClass.java | 665 ------ .../net/proto/DelMailRspOuterClass.java | 735 ------- .../net/proto/EquipParamOuterClass.java | 749 ------- .../net/proto/FetterStateOuterClass.java | 163 -- .../net/proto/GetAllMailReqOuterClass.java | 539 ----- .../net/proto/GetAllMailRspOuterClass.java | 987 --------- .../net/proto/GetMailItemReqOuterClass.java | 665 ------ .../net/proto/GetMailItemRspOuterClass.java | 1111 ---------- .../net/proto/MailChangeNotifyOuterClass.java | 1040 ---------- .../net/proto/MailDataOuterClass.java | 1835 ----------------- .../net/proto/MailItemOuterClass.java | 880 -------- .../net/proto/MailTextContentOuterClass.java | 919 --------- .../net/proto/ReadMailNotifyOuterClass.java | 665 ------ .../packet/send/PacketGetAllMailRsp.java | 3 - 30 files changed, 130 insertions(+), 11694 deletions(-) create mode 100644 proto/ChangeMailStarNotify.proto create mode 100644 proto/DelMailReq.proto create mode 100644 proto/DelMailRsp.proto create mode 100644 proto/EquipParam.proto create mode 100644 proto/GetAllMailReq.proto create mode 100644 proto/GetAllMailRsp.proto create mode 100644 proto/GetMailItemReq.proto create mode 100644 proto/GetMailItemRsp.proto create mode 100644 proto/MailChangeNotify.proto create mode 100644 proto/MailData.proto create mode 100644 proto/MailItem.proto create mode 100644 proto/MailTextContent.proto create mode 100644 proto/ReadMailNotify.proto delete mode 100644 src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java diff --git a/build.gradle b/build.gradle index d9f616ca9..972b1cf38 100644 --- a/build.gradle +++ b/build.gradle @@ -194,4 +194,8 @@ javadoc { if(JavaVersion.current().isJava9Compatible()) { options.addBooleanOption('html5', true) } +} + +processResources { + dependsOn "generateProto" } \ No newline at end of file diff --git a/proto/ChangeMailStarNotify.proto b/proto/ChangeMailStarNotify.proto new file mode 100644 index 000000000..e5347c86b --- /dev/null +++ b/proto/ChangeMailStarNotify.proto @@ -0,0 +1,8 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +message ChangeMailStarNotify { + repeated uint32 mail_id_list = 1; + bool is_star = 2; +} diff --git a/proto/DelMailReq.proto b/proto/DelMailReq.proto new file mode 100644 index 000000000..ac72fce2b --- /dev/null +++ b/proto/DelMailReq.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +message DelMailReq { + repeated uint32 mail_id_list = 1; +} diff --git a/proto/DelMailRsp.proto b/proto/DelMailRsp.proto new file mode 100644 index 000000000..cd20e6fa9 --- /dev/null +++ b/proto/DelMailRsp.proto @@ -0,0 +1,8 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +message DelMailRsp { + int32 retcode = 1; + repeated uint32 mail_id_list = 2; +} diff --git a/proto/EquipParam.proto b/proto/EquipParam.proto new file mode 100644 index 000000000..52d24943e --- /dev/null +++ b/proto/EquipParam.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +message EquipParam { + uint32 item_id = 1; + uint32 item_num = 2; + uint32 item_level = 3; + uint32 promote_level = 4; +} diff --git a/proto/GetAllMailReq.proto b/proto/GetAllMailReq.proto new file mode 100644 index 000000000..8c6bce100 --- /dev/null +++ b/proto/GetAllMailReq.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +message GetAllMailReq { + bool is_gift_mail = 1; +} diff --git a/proto/GetAllMailRsp.proto b/proto/GetAllMailRsp.proto new file mode 100644 index 000000000..0613899cb --- /dev/null +++ b/proto/GetAllMailRsp.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +import "MailData.proto"; + +message GetAllMailRsp { + int32 retcode = 1; + repeated MailData mail_list = 2; + bool is_truncated = 3; +} diff --git a/proto/GetMailItemReq.proto b/proto/GetMailItemReq.proto new file mode 100644 index 000000000..259c8ba5c --- /dev/null +++ b/proto/GetMailItemReq.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +message GetMailItemReq { + repeated uint32 mail_id_list = 1; +} diff --git a/proto/GetMailItemRsp.proto b/proto/GetMailItemRsp.proto new file mode 100644 index 000000000..e14bd54c8 --- /dev/null +++ b/proto/GetMailItemRsp.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +import "EquipParam.proto"; + +message GetMailItemRsp { + int32 retcode = 1; + repeated uint32 mail_id_list = 2; + repeated EquipParam item_list = 3; +} diff --git a/proto/MailChangeNotify.proto b/proto/MailChangeNotify.proto new file mode 100644 index 000000000..1e362f6ff --- /dev/null +++ b/proto/MailChangeNotify.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +import "MailData.proto"; + +message MailChangeNotify { + repeated MailData mail_list = 1; + repeated uint32 del_mail_id_list = 2; +} diff --git a/proto/MailData.proto b/proto/MailData.proto new file mode 100644 index 000000000..ba606c2e6 --- /dev/null +++ b/proto/MailData.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +import "MailTextContent.proto"; +import "MailItem.proto"; + +message MailData { + uint32 mail_id = 1; + MailTextContent mail_text_content = 4; + repeated MailItem item_list = 7; + uint32 send_time = 8; + uint32 expire_time = 9; + uint32 importance = 10; + bool is_read = 11; + bool is_attachment_got = 12; + uint32 config_id = 13; + repeated string argument_list = 14; + uint32 state_value = 15; +} diff --git a/proto/MailItem.proto b/proto/MailItem.proto new file mode 100644 index 000000000..da657815e --- /dev/null +++ b/proto/MailItem.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +import "ItemParam.proto"; +import "MaterialDeleteInfo.proto"; + +message MailItem { + ItemParam item_param = 1; + MaterialDeleteInfo delete_info = 2; +} diff --git a/proto/MailTextContent.proto b/proto/MailTextContent.proto new file mode 100644 index 000000000..097710f87 --- /dev/null +++ b/proto/MailTextContent.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +message MailTextContent { + string title = 1; + string content = 2; + string sender = 3; +} diff --git a/proto/ReadMailNotify.proto b/proto/ReadMailNotify.proto new file mode 100644 index 000000000..f485c8a6c --- /dev/null +++ b/proto/ReadMailNotify.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +option java_package = "emu.grasscutter.net.proto"; + +message ReadMailNotify { + repeated uint32 mail_id_list = 1; +} diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index 161ee9b2f..7fdd7cb3b 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -609,7 +609,6 @@ public class GenshinPlayer { this.save(); Grasscutter.getLogger().info("Mail sent to user [" + this.getUid() + ":" + this.getNickname() + "]!"); if(this.isOnline()) { - Grasscutter.getLogger().info("user online."); this.sendPacket(new PacketMailChangeNotify(this, message)); } // TODO: setup a way for the mail notification to show up when someone receives mail when they were offline } diff --git a/src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java b/src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java deleted file mode 100644 index d238a3ecd..000000000 --- a/src/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java +++ /dev/null @@ -1,737 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: ChangeMailStarNotify.proto - -package emu.grasscutter.net.proto; - -public final class ChangeMailStarNotifyOuterClass { - private ChangeMailStarNotifyOuterClass() {} - 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 ChangeMailStarNotifyOrBuilder extends - // @@protoc_insertion_point(interface_extends:ChangeMailStarNotify) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - java.util.List<java.lang.Integer> getMailIdListList(); - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - int getMailIdListCount(); - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - int getMailIdList(int index); - - /** - * <code>bool isStar = 2;</code> - * @return The isStar. - */ - boolean getIsStar(); - } - /** - * Protobuf type {@code ChangeMailStarNotify} - */ - public static final class ChangeMailStarNotify extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:ChangeMailStarNotify) - ChangeMailStarNotifyOrBuilder { - private static final long serialVersionUID = 0L; - // Use ChangeMailStarNotify.newBuilder() to construct. - private ChangeMailStarNotify(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private ChangeMailStarNotify() { - mailIdList_ = emptyIntList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new ChangeMailStarNotify(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ChangeMailStarNotify( - 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 8: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - mailIdList_.addInt(input.readUInt32()); - break; - } - case 10: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - while (input.getBytesUntilLimit() > 0) { - mailIdList_.addInt(input.readUInt32()); - } - input.popLimit(limit); - break; - } - case 16: { - - isStar_ = input.readBool(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); // C - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.class, emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.Builder.class); - } - - public static final int MAILIDLIST_FIELD_NUMBER = 1; - private com.google.protobuf.Internal.IntList mailIdList_; - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - @java.lang.Override - public java.util.List<java.lang.Integer> - getMailIdListList() { - return mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - private int mailIdListMemoizedSerializedSize = -1; - - public static final int ISSTAR_FIELD_NUMBER = 2; - private boolean isStar_; - /** - * <code>bool isStar = 2;</code> - * @return The isStar. - */ - @java.lang.Override - public boolean getIsStar() { - return isStar_; - } - - 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 (getMailIdListList().size() > 0) { - output.writeUInt32NoTag(10); - output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); - } - for (int i = 0; i < mailIdList_.size(); i++) { - output.writeUInt32NoTag(mailIdList_.getInt(i)); - } - if (isStar_ != false) { - output.writeBool(2, isStar_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - { - int dataSize = 0; - for (int i = 0; i < mailIdList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt32SizeNoTag(mailIdList_.getInt(i)); - } - size += dataSize; - if (!getMailIdListList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - mailIdListMemoizedSerializedSize = dataSize; - } - if (isStar_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, isStar_); - } - 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify other = (emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify) obj; - - if (!getMailIdListList() - .equals(other.getMailIdListList())) return false; - if (getIsStar() - != other.getIsStar()) 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(); - if (getMailIdListCount() > 0) { - hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; - hash = (53 * hash) + getMailIdListList().hashCode(); - } - hash = (37 * hash) + ISSTAR_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsStar()); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code ChangeMailStarNotify} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:ChangeMailStarNotify) - emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotifyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.class, emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.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(); - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - isStar_ = false; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.internal_static_ChangeMailStarNotify_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify getDefaultInstanceForType() { - return emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify build() { - emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify buildPartial() { - emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify result = new emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify(this); - int from_bitField0_ = bitField0_; - if (((bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.mailIdList_ = mailIdList_; - result.isStar_ = isStar_; - 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify) { - return mergeFrom((emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify other) { - if (other == emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify.getDefaultInstance()) return this; - if (!other.mailIdList_.isEmpty()) { - if (mailIdList_.isEmpty()) { - mailIdList_ = other.mailIdList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureMailIdListIsMutable(); - mailIdList_.addAll(other.mailIdList_); - } - onChanged(); - } - if (other.getIsStar() != false) { - setIsStar(other.getIsStar()); - } - 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.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); - private void ensureMailIdListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - mailIdList_ = mutableCopy(mailIdList_); - bitField0_ |= 0x00000001; - } - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - public java.util.List<java.lang.Integer> - getMailIdListList() { - return ((bitField0_ & 0x00000001) != 0) ? - java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index to set the value at. - * @param value The mailIdList to set. - * @return This builder for chaining. - */ - public Builder setMailIdList( - int index, int value) { - ensureMailIdListIsMutable(); - mailIdList_.setInt(index, value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param value The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addMailIdList(int value) { - ensureMailIdListIsMutable(); - mailIdList_.addInt(value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param values The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addAllMailIdList( - java.lang.Iterable<? extends java.lang.Integer> values) { - ensureMailIdListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, mailIdList_); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return This builder for chaining. - */ - public Builder clearMailIdList() { - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - - private boolean isStar_ ; - /** - * <code>bool isStar = 2;</code> - * @return The isStar. - */ - @java.lang.Override - public boolean getIsStar() { - return isStar_; - } - /** - * <code>bool isStar = 2;</code> - * @param value The isStar to set. - * @return This builder for chaining. - */ - public Builder setIsStar(boolean value) { - - isStar_ = value; - onChanged(); - return this; - } - /** - * <code>bool isStar = 2;</code> - * @return This builder for chaining. - */ - public Builder clearIsStar() { - - isStar_ = false; - 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:ChangeMailStarNotify) - } - - // @@protoc_insertion_point(class_scope:ChangeMailStarNotify) - private static final emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify(); - } - - public static emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<ChangeMailStarNotify> - PARSER = new com.google.protobuf.AbstractParser<ChangeMailStarNotify>() { - @java.lang.Override - public ChangeMailStarNotify parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ChangeMailStarNotify(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<ChangeMailStarNotify> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<ChangeMailStarNotify> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.ChangeMailStarNotifyOuterClass.ChangeMailStarNotify getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_ChangeMailStarNotify_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_ChangeMailStarNotify_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\032ChangeMailStarNotify.proto\":\n\024ChangeMa" + - "ilStarNotify\022\022\n\nmailIdList\030\001 \003(\r\022\016\n\006isSt" + - "ar\030\002 \001(\010B\033\n\031emu.grasscutter.net.protob\006p" + - "roto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_ChangeMailStarNotify_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_ChangeMailStarNotify_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_ChangeMailStarNotify_descriptor, - new java.lang.String[] { "MailIdList", "IsStar", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java deleted file mode 100644 index 1355d5457..000000000 --- a/src/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java +++ /dev/null @@ -1,665 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: DelMailReq.proto - -package emu.grasscutter.net.proto; - -public final class DelMailReqOuterClass { - private DelMailReqOuterClass() {} - 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 DelMailReqOrBuilder extends - // @@protoc_insertion_point(interface_extends:DelMailReq) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - java.util.List<java.lang.Integer> getMailIdListList(); - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - int getMailIdListCount(); - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - int getMailIdList(int index); - } - /** - * Protobuf type {@code DelMailReq} - */ - public static final class DelMailReq extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:DelMailReq) - DelMailReqOrBuilder { - private static final long serialVersionUID = 0L; - // Use DelMailReq.newBuilder() to construct. - private DelMailReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private DelMailReq() { - mailIdList_ = emptyIntList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new DelMailReq(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private DelMailReq( - 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 8: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - mailIdList_.addInt(input.readUInt32()); - break; - } - case 10: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - while (input.getBytesUntilLimit() > 0) { - mailIdList_.addInt(input.readUInt32()); - } - input.popLimit(limit); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); // C - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.class, emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.Builder.class); - } - - public static final int MAILIDLIST_FIELD_NUMBER = 1; - private com.google.protobuf.Internal.IntList mailIdList_; - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - @java.lang.Override - public java.util.List<java.lang.Integer> - getMailIdListList() { - return mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - private int mailIdListMemoizedSerializedSize = -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 (getMailIdListList().size() > 0) { - output.writeUInt32NoTag(10); - output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); - } - for (int i = 0; i < mailIdList_.size(); i++) { - output.writeUInt32NoTag(mailIdList_.getInt(i)); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - { - int dataSize = 0; - for (int i = 0; i < mailIdList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt32SizeNoTag(mailIdList_.getInt(i)); - } - size += dataSize; - if (!getMailIdListList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - mailIdListMemoizedSerializedSize = dataSize; - } - 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.DelMailReqOuterClass.DelMailReq)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq other = (emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq) obj; - - if (!getMailIdListList() - .equals(other.getMailIdListList())) 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(); - if (getMailIdListCount() > 0) { - hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; - hash = (53 * hash) + getMailIdListList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq 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.DelMailReqOuterClass.DelMailReq prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code DelMailReq} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:DelMailReq) - emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReqOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.class, emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.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(); - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.DelMailReqOuterClass.internal_static_DelMailReq_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq getDefaultInstanceForType() { - return emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq build() { - emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq buildPartial() { - emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq result = new emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq(this); - int from_bitField0_ = bitField0_; - if (((bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.mailIdList_ = mailIdList_; - 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.DelMailReqOuterClass.DelMailReq) { - return mergeFrom((emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq other) { - if (other == emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq.getDefaultInstance()) return this; - if (!other.mailIdList_.isEmpty()) { - if (mailIdList_.isEmpty()) { - mailIdList_ = other.mailIdList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureMailIdListIsMutable(); - mailIdList_.addAll(other.mailIdList_); - } - 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.DelMailReqOuterClass.DelMailReq parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); - private void ensureMailIdListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - mailIdList_ = mutableCopy(mailIdList_); - bitField0_ |= 0x00000001; - } - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - public java.util.List<java.lang.Integer> - getMailIdListList() { - return ((bitField0_ & 0x00000001) != 0) ? - java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index to set the value at. - * @param value The mailIdList to set. - * @return This builder for chaining. - */ - public Builder setMailIdList( - int index, int value) { - ensureMailIdListIsMutable(); - mailIdList_.setInt(index, value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param value The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addMailIdList(int value) { - ensureMailIdListIsMutable(); - mailIdList_.addInt(value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param values The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addAllMailIdList( - java.lang.Iterable<? extends java.lang.Integer> values) { - ensureMailIdListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, mailIdList_); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return This builder for chaining. - */ - public Builder clearMailIdList() { - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - 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:DelMailReq) - } - - // @@protoc_insertion_point(class_scope:DelMailReq) - private static final emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq(); - } - - public static emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<DelMailReq> - PARSER = new com.google.protobuf.AbstractParser<DelMailReq>() { - @java.lang.Override - public DelMailReq parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new DelMailReq(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<DelMailReq> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<DelMailReq> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.DelMailReqOuterClass.DelMailReq getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_DelMailReq_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_DelMailReq_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\020DelMailReq.proto\" \n\nDelMailReq\022\022\n\nmail" + - "IdList\030\001 \003(\rB\033\n\031emu.grasscutter.net.prot" + - "ob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_DelMailReq_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_DelMailReq_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_DelMailReq_descriptor, - new java.lang.String[] { "MailIdList", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java deleted file mode 100644 index a9f3c03de..000000000 --- a/src/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java +++ /dev/null @@ -1,735 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: DelMailRsp.proto - -package emu.grasscutter.net.proto; - -public final class DelMailRspOuterClass { - private DelMailRspOuterClass() {} - 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 DelMailRspOrBuilder extends - // @@protoc_insertion_point(interface_extends:DelMailRsp) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - int getRetcode(); - - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return A list containing the mailIdList. - */ - java.util.List<java.lang.Integer> getMailIdListList(); - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return The count of mailIdList. - */ - int getMailIdListCount(); - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - int getMailIdList(int index); - } - /** - * Protobuf type {@code DelMailRsp} - */ - public static final class DelMailRsp extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:DelMailRsp) - DelMailRspOrBuilder { - private static final long serialVersionUID = 0L; - // Use DelMailRsp.newBuilder() to construct. - private DelMailRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private DelMailRsp() { - mailIdList_ = emptyIntList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new DelMailRsp(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private DelMailRsp( - 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 8: { - - retcode_ = input.readInt32(); - break; - } - case 16: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - mailIdList_.addInt(input.readUInt32()); - break; - } - case 18: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - while (input.getBytesUntilLimit() > 0) { - mailIdList_.addInt(input.readUInt32()); - } - input.popLimit(limit); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); // C - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.class, emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.Builder.class); - } - - public static final int RETCODE_FIELD_NUMBER = 1; - private int retcode_; - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - @java.lang.Override - public int getRetcode() { - return retcode_; - } - - public static final int MAILIDLIST_FIELD_NUMBER = 2; - private com.google.protobuf.Internal.IntList mailIdList_; - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return A list containing the mailIdList. - */ - @java.lang.Override - public java.util.List<java.lang.Integer> - getMailIdListList() { - return mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - private int mailIdListMemoizedSerializedSize = -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 (retcode_ != 0) { - output.writeInt32(1, retcode_); - } - if (getMailIdListList().size() > 0) { - output.writeUInt32NoTag(18); - output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); - } - for (int i = 0; i < mailIdList_.size(); i++) { - output.writeUInt32NoTag(mailIdList_.getInt(i)); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (retcode_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, retcode_); - } - { - int dataSize = 0; - for (int i = 0; i < mailIdList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt32SizeNoTag(mailIdList_.getInt(i)); - } - size += dataSize; - if (!getMailIdListList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - mailIdListMemoizedSerializedSize = dataSize; - } - 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.DelMailRspOuterClass.DelMailRsp)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp other = (emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp) obj; - - if (getRetcode() - != other.getRetcode()) return false; - if (!getMailIdListList() - .equals(other.getMailIdListList())) 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(); - if (getMailIdListCount() > 0) { - hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; - hash = (53 * hash) + getMailIdListList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp 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.DelMailRspOuterClass.DelMailRsp prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code DelMailRsp} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:DelMailRsp) - emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRspOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.class, emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.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; - - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.DelMailRspOuterClass.internal_static_DelMailRsp_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp getDefaultInstanceForType() { - return emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp build() { - emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp buildPartial() { - emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp result = new emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp(this); - int from_bitField0_ = bitField0_; - result.retcode_ = retcode_; - if (((bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.mailIdList_ = mailIdList_; - 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.DelMailRspOuterClass.DelMailRsp) { - return mergeFrom((emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp other) { - if (other == emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp.getDefaultInstance()) return this; - if (other.getRetcode() != 0) { - setRetcode(other.getRetcode()); - } - if (!other.mailIdList_.isEmpty()) { - if (mailIdList_.isEmpty()) { - mailIdList_ = other.mailIdList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureMailIdListIsMutable(); - mailIdList_.addAll(other.mailIdList_); - } - 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.DelMailRspOuterClass.DelMailRsp parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private int retcode_ ; - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - @java.lang.Override - public int getRetcode() { - return retcode_; - } - /** - * <code>int32 retcode = 1;</code> - * @param value The retcode to set. - * @return This builder for chaining. - */ - public Builder setRetcode(int value) { - - retcode_ = value; - onChanged(); - return this; - } - /** - * <code>int32 retcode = 1;</code> - * @return This builder for chaining. - */ - public Builder clearRetcode() { - - retcode_ = 0; - onChanged(); - return this; - } - - private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); - private void ensureMailIdListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - mailIdList_ = mutableCopy(mailIdList_); - bitField0_ |= 0x00000001; - } - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return A list containing the mailIdList. - */ - public java.util.List<java.lang.Integer> - getMailIdListList() { - return ((bitField0_ & 0x00000001) != 0) ? - java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param index The index to set the value at. - * @param value The mailIdList to set. - * @return This builder for chaining. - */ - public Builder setMailIdList( - int index, int value) { - ensureMailIdListIsMutable(); - mailIdList_.setInt(index, value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param value The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addMailIdList(int value) { - ensureMailIdListIsMutable(); - mailIdList_.addInt(value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param values The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addAllMailIdList( - java.lang.Iterable<? extends java.lang.Integer> values) { - ensureMailIdListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, mailIdList_); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return This builder for chaining. - */ - public Builder clearMailIdList() { - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - 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:DelMailRsp) - } - - // @@protoc_insertion_point(class_scope:DelMailRsp) - private static final emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp(); - } - - public static emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<DelMailRsp> - PARSER = new com.google.protobuf.AbstractParser<DelMailRsp>() { - @java.lang.Override - public DelMailRsp parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new DelMailRsp(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<DelMailRsp> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<DelMailRsp> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_DelMailRsp_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_DelMailRsp_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\020DelMailRsp.proto\"1\n\nDelMailRsp\022\017\n\007retc" + - "ode\030\001 \001(\005\022\022\n\nmailIdList\030\002 \003(\rB\033\n\031emu.gra" + - "sscutter.net.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_DelMailRsp_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_DelMailRsp_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_DelMailRsp_descriptor, - new java.lang.String[] { "Retcode", "MailIdList", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java b/src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java deleted file mode 100644 index f583bf608..000000000 --- a/src/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java +++ /dev/null @@ -1,749 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: EquipParam.proto - -package emu.grasscutter.net.proto; - -public final class EquipParamOuterClass { - private EquipParamOuterClass() {} - 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 EquipParamOrBuilder extends - // @@protoc_insertion_point(interface_extends:EquipParam) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>uint32 itemId = 1;</code> - * @return The itemId. - */ - int getItemId(); - - /** - * <code>uint32 itemNum = 2;</code> - * @return The itemNum. - */ - int getItemNum(); - - /** - * <code>uint32 itemLevel = 3;</code> - * @return The itemLevel. - */ - int getItemLevel(); - - /** - * <code>uint32 PromoteLevel = 4;</code> - * @return The promoteLevel. - */ - int getPromoteLevel(); - } - /** - * Protobuf type {@code EquipParam} - */ - public static final class EquipParam extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:EquipParam) - EquipParamOrBuilder { - private static final long serialVersionUID = 0L; - // Use EquipParam.newBuilder() to construct. - private EquipParam(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private EquipParam() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new EquipParam(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private EquipParam( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - - itemId_ = input.readUInt32(); - break; - } - case 16: { - - itemNum_ = input.readUInt32(); - break; - } - case 24: { - - itemLevel_ = input.readUInt32(); - break; - } - case 32: { - - promoteLevel_ = input.readUInt32(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().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.EquipParamOuterClass.internal_static_EquipParam_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.class, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder.class); - } - - public static final int ITEMID_FIELD_NUMBER = 1; - private int itemId_; - /** - * <code>uint32 itemId = 1;</code> - * @return The itemId. - */ - @java.lang.Override - public int getItemId() { - return itemId_; - } - - public static final int ITEMNUM_FIELD_NUMBER = 2; - private int itemNum_; - /** - * <code>uint32 itemNum = 2;</code> - * @return The itemNum. - */ - @java.lang.Override - public int getItemNum() { - return itemNum_; - } - - public static final int ITEMLEVEL_FIELD_NUMBER = 3; - private int itemLevel_; - /** - * <code>uint32 itemLevel = 3;</code> - * @return The itemLevel. - */ - @java.lang.Override - public int getItemLevel() { - return itemLevel_; - } - - public static final int PROMOTELEVEL_FIELD_NUMBER = 4; - private int promoteLevel_; - /** - * <code>uint32 PromoteLevel = 4;</code> - * @return The promoteLevel. - */ - @java.lang.Override - public int getPromoteLevel() { - return promoteLevel_; - } - - 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 (itemId_ != 0) { - output.writeUInt32(1, itemId_); - } - if (itemNum_ != 0) { - output.writeUInt32(2, itemNum_); - } - if (itemLevel_ != 0) { - output.writeUInt32(3, itemLevel_); - } - if (promoteLevel_ != 0) { - output.writeUInt32(4, promoteLevel_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (itemId_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, itemId_); - } - if (itemNum_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, itemNum_); - } - if (itemLevel_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, itemLevel_); - } - if (promoteLevel_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, promoteLevel_); - } - 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.EquipParamOuterClass.EquipParam)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam other = (emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam) obj; - - if (getItemId() - != other.getItemId()) return false; - if (getItemNum() - != other.getItemNum()) return false; - if (getItemLevel() - != other.getItemLevel()) return false; - if (getPromoteLevel() - != other.getPromoteLevel()) 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) + ITEMID_FIELD_NUMBER; - hash = (53 * hash) + getItemId(); - hash = (37 * hash) + ITEMNUM_FIELD_NUMBER; - hash = (53 * hash) + getItemNum(); - hash = (37 * hash) + ITEMLEVEL_FIELD_NUMBER; - hash = (53 * hash) + getItemLevel(); - hash = (37 * hash) + PROMOTELEVEL_FIELD_NUMBER; - hash = (53 * hash) + getPromoteLevel(); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam 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.EquipParamOuterClass.EquipParam prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code EquipParam} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:EquipParam) - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.class, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.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(); - itemId_ = 0; - - itemNum_ = 0; - - itemLevel_ = 0; - - promoteLevel_ = 0; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.EquipParamOuterClass.internal_static_EquipParam_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getDefaultInstanceForType() { - return emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam build() { - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam buildPartial() { - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam result = new emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam(this); - result.itemId_ = itemId_; - result.itemNum_ = itemNum_; - result.itemLevel_ = itemLevel_; - result.promoteLevel_ = promoteLevel_; - 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.EquipParamOuterClass.EquipParam) { - return mergeFrom((emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam other) { - if (other == emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance()) return this; - if (other.getItemId() != 0) { - setItemId(other.getItemId()); - } - if (other.getItemNum() != 0) { - setItemNum(other.getItemNum()); - } - if (other.getItemLevel() != 0) { - setItemLevel(other.getItemLevel()); - } - if (other.getPromoteLevel() != 0) { - setPromoteLevel(other.getPromoteLevel()); - } - 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.EquipParamOuterClass.EquipParam parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private int itemId_ ; - /** - * <code>uint32 itemId = 1;</code> - * @return The itemId. - */ - @java.lang.Override - public int getItemId() { - return itemId_; - } - /** - * <code>uint32 itemId = 1;</code> - * @param value The itemId to set. - * @return This builder for chaining. - */ - public Builder setItemId(int value) { - - itemId_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 itemId = 1;</code> - * @return This builder for chaining. - */ - public Builder clearItemId() { - - itemId_ = 0; - onChanged(); - return this; - } - - private int itemNum_ ; - /** - * <code>uint32 itemNum = 2;</code> - * @return The itemNum. - */ - @java.lang.Override - public int getItemNum() { - return itemNum_; - } - /** - * <code>uint32 itemNum = 2;</code> - * @param value The itemNum to set. - * @return This builder for chaining. - */ - public Builder setItemNum(int value) { - - itemNum_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 itemNum = 2;</code> - * @return This builder for chaining. - */ - public Builder clearItemNum() { - - itemNum_ = 0; - onChanged(); - return this; - } - - private int itemLevel_ ; - /** - * <code>uint32 itemLevel = 3;</code> - * @return The itemLevel. - */ - @java.lang.Override - public int getItemLevel() { - return itemLevel_; - } - /** - * <code>uint32 itemLevel = 3;</code> - * @param value The itemLevel to set. - * @return This builder for chaining. - */ - public Builder setItemLevel(int value) { - - itemLevel_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 itemLevel = 3;</code> - * @return This builder for chaining. - */ - public Builder clearItemLevel() { - - itemLevel_ = 0; - onChanged(); - return this; - } - - private int promoteLevel_ ; - /** - * <code>uint32 PromoteLevel = 4;</code> - * @return The promoteLevel. - */ - @java.lang.Override - public int getPromoteLevel() { - return promoteLevel_; - } - /** - * <code>uint32 PromoteLevel = 4;</code> - * @param value The promoteLevel to set. - * @return This builder for chaining. - */ - public Builder setPromoteLevel(int value) { - - promoteLevel_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 PromoteLevel = 4;</code> - * @return This builder for chaining. - */ - public Builder clearPromoteLevel() { - - promoteLevel_ = 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:EquipParam) - } - - // @@protoc_insertion_point(class_scope:EquipParam) - private static final emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam(); - } - - public static emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<EquipParam> - PARSER = new com.google.protobuf.AbstractParser<EquipParam>() { - @java.lang.Override - public EquipParam parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new EquipParam(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<EquipParam> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<EquipParam> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_EquipParam_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_EquipParam_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\020EquipParam.proto\"V\n\nEquipParam\022\016\n\006item" + - "Id\030\001 \001(\r\022\017\n\007itemNum\030\002 \001(\r\022\021\n\titemLevel\030\003" + - " \001(\r\022\024\n\014PromoteLevel\030\004 \001(\rB\033\n\031emu.grassc" + - "utter.net.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_EquipParam_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_EquipParam_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_EquipParam_descriptor, - new java.lang.String[] { "ItemId", "ItemNum", "ItemLevel", "PromoteLevel", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java b/src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java deleted file mode 100644 index c7306c5cc..000000000 --- a/src/main/java/emu/grasscutter/net/proto/FetterStateOuterClass.java +++ /dev/null @@ -1,163 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: FetterState.proto - -package emu.grasscutter.net.proto; - -public final class FetterStateOuterClass { - private FetterStateOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code FetterState} - */ - public enum FetterState - implements com.google.protobuf.ProtocolMessageEnum { - /** - * <code>NONE = 0;</code> - */ - NONE(0), - /** - * <code>NOT_OPEN = 1;</code> - */ - NOT_OPEN(1), - /** - * <code>OPEN = 2;</code> - */ - OPEN(2), - /** - * <code>FINISH = 3;</code> - */ - FINISH(3), - UNRECOGNIZED(-1), - ; - - /** - * <code>NONE = 0;</code> - */ - public static final int NONE_VALUE = 0; - /** - * <code>NOT_OPEN = 1;</code> - */ - public static final int NOT_OPEN_VALUE = 1; - /** - * <code>OPEN = 2;</code> - */ - public static final int OPEN_VALUE = 2; - /** - * <code>FINISH = 3;</code> - */ - public static final int FINISH_VALUE = 3; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static FetterState valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static FetterState forNumber(int value) { - switch (value) { - case 0: return NONE; - case 1: return NOT_OPEN; - case 2: return OPEN; - case 3: return FINISH; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap<FetterState> - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - FetterState> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap<FetterState>() { - public FetterState findValueByNumber(int number) { - return FetterState.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return emu.grasscutter.net.proto.FetterStateOuterClass.getDescriptor().getEnumTypes().get(0); - } - - private static final FetterState[] VALUES = values(); - - public static FetterState valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private FetterState(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:FetterState) - } - - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\021FetterState.proto*;\n\013FetterState\022\010\n\004NO" + - "NE\020\000\022\014\n\010NOT_OPEN\020\001\022\010\n\004OPEN\020\002\022\n\n\006FINISH\020\003" + - "B\033\n\031emu.grasscutter.net.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java deleted file mode 100644 index 7be5e757e..000000000 --- a/src/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java +++ /dev/null @@ -1,539 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: GetAllMailReq.proto - -package emu.grasscutter.net.proto; - -public final class GetAllMailReqOuterClass { - private GetAllMailReqOuterClass() {} - 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 GetAllMailReqOrBuilder extends - // @@protoc_insertion_point(interface_extends:GetAllMailReq) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>bool isGiftMail = 1;</code> - * @return The isGiftMail. - */ - boolean getIsGiftMail(); - } - /** - * Protobuf type {@code GetAllMailReq} - */ - public static final class GetAllMailReq extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:GetAllMailReq) - GetAllMailReqOrBuilder { - private static final long serialVersionUID = 0L; - // Use GetAllMailReq.newBuilder() to construct. - private GetAllMailReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private GetAllMailReq() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new GetAllMailReq(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private GetAllMailReq( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - - isGiftMail_ = input.readBool(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().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.GetAllMailReqOuterClass.internal_static_GetAllMailReq_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.class, emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.Builder.class); - } - - public static final int ISGIFTMAIL_FIELD_NUMBER = 1; - private boolean isGiftMail_; - /** - * <code>bool isGiftMail = 1;</code> - * @return The isGiftMail. - */ - @java.lang.Override - public boolean getIsGiftMail() { - return isGiftMail_; - } - - 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 (isGiftMail_ != false) { - output.writeBool(1, isGiftMail_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (isGiftMail_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1, isGiftMail_); - } - 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.GetAllMailReqOuterClass.GetAllMailReq)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq other = (emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq) obj; - - if (getIsGiftMail() - != other.getIsGiftMail()) 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) + ISGIFTMAIL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsGiftMail()); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq 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.GetAllMailReqOuterClass.GetAllMailReq prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code GetAllMailReq} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:GetAllMailReq) - emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReqOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.class, emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.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(); - isGiftMail_ = false; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.GetAllMailReqOuterClass.internal_static_GetAllMailReq_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq getDefaultInstanceForType() { - return emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq build() { - emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq buildPartial() { - emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq result = new emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq(this); - result.isGiftMail_ = isGiftMail_; - 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.GetAllMailReqOuterClass.GetAllMailReq) { - return mergeFrom((emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq other) { - if (other == emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq.getDefaultInstance()) return this; - if (other.getIsGiftMail() != false) { - setIsGiftMail(other.getIsGiftMail()); - } - 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.GetAllMailReqOuterClass.GetAllMailReq parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private boolean isGiftMail_ ; - /** - * <code>bool isGiftMail = 1;</code> - * @return The isGiftMail. - */ - @java.lang.Override - public boolean getIsGiftMail() { - return isGiftMail_; - } - /** - * <code>bool isGiftMail = 1;</code> - * @param value The isGiftMail to set. - * @return This builder for chaining. - */ - public Builder setIsGiftMail(boolean value) { - - isGiftMail_ = value; - onChanged(); - return this; - } - /** - * <code>bool isGiftMail = 1;</code> - * @return This builder for chaining. - */ - public Builder clearIsGiftMail() { - - isGiftMail_ = false; - 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:GetAllMailReq) - } - - // @@protoc_insertion_point(class_scope:GetAllMailReq) - private static final emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq(); - } - - public static emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<GetAllMailReq> - PARSER = new com.google.protobuf.AbstractParser<GetAllMailReq>() { - @java.lang.Override - public GetAllMailReq parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new GetAllMailReq(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<GetAllMailReq> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<GetAllMailReq> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetAllMailReqOuterClass.GetAllMailReq getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_GetAllMailReq_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_GetAllMailReq_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\023GetAllMailReq.proto\"#\n\rGetAllMailReq\022\022" + - "\n\nisGiftMail\030\001 \001(\010B\033\n\031emu.grasscutter.ne" + - "t.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_GetAllMailReq_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_GetAllMailReq_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_GetAllMailReq_descriptor, - new java.lang.String[] { "IsGiftMail", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java deleted file mode 100644 index 244235538..000000000 --- a/src/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java +++ /dev/null @@ -1,987 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: GetAllMailRsp.proto - -package emu.grasscutter.net.proto; - -public final class GetAllMailRspOuterClass { - private GetAllMailRspOuterClass() {} - 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 GetAllMailRspOrBuilder extends - // @@protoc_insertion_point(interface_extends:GetAllMailRsp) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - int getRetcode(); - - /** - * <code>repeated .MailData mailList = 2;</code> - */ - java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData> - getMailListList(); - /** - * <code>repeated .MailData mailList = 2;</code> - */ - emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index); - /** - * <code>repeated .MailData mailList = 2;</code> - */ - int getMailListCount(); - /** - * <code>repeated .MailData mailList = 2;</code> - */ - java.util.List<? extends emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> - getMailListOrBuilderList(); - /** - * <code>repeated .MailData mailList = 2;</code> - */ - emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( - int index); - - /** - * <code>bool isTruncated = 3;</code> - * @return The isTruncated. - */ - boolean getIsTruncated(); - } - /** - * Protobuf type {@code GetAllMailRsp} - */ - public static final class GetAllMailRsp extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:GetAllMailRsp) - GetAllMailRspOrBuilder { - private static final long serialVersionUID = 0L; - // Use GetAllMailRsp.newBuilder() to construct. - private GetAllMailRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private GetAllMailRsp() { - mailList_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new GetAllMailRsp(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private GetAllMailRsp( - 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 8: { - - retcode_ = input.readInt32(); - break; - } - case 18: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - mailList_ = new java.util.ArrayList<emu.grasscutter.net.proto.MailDataOuterClass.MailData>(); - mutable_bitField0_ |= 0x00000001; - } - mailList_.add( - input.readMessage(emu.grasscutter.net.proto.MailDataOuterClass.MailData.parser(), extensionRegistry)); - break; - } - case 24: { - - isTruncated_ = input.readBool(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - mailList_ = java.util.Collections.unmodifiableList(mailList_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.class, emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.Builder.class); - } - - public static final int RETCODE_FIELD_NUMBER = 1; - private int retcode_; - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - @java.lang.Override - public int getRetcode() { - return retcode_; - } - - public static final int MAILLIST_FIELD_NUMBER = 2; - private java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData> mailList_; - /** - * <code>repeated .MailData mailList = 2;</code> - */ - @java.lang.Override - public java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData> getMailListList() { - return mailList_; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - @java.lang.Override - public java.util.List<? extends emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> - getMailListOrBuilderList() { - return mailList_; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - @java.lang.Override - public int getMailListCount() { - return mailList_.size(); - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { - return mailList_.get(index); - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( - int index) { - return mailList_.get(index); - } - - public static final int ISTRUNCATED_FIELD_NUMBER = 3; - private boolean isTruncated_; - /** - * <code>bool isTruncated = 3;</code> - * @return The isTruncated. - */ - @java.lang.Override - public boolean getIsTruncated() { - return isTruncated_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (retcode_ != 0) { - output.writeInt32(1, retcode_); - } - for (int i = 0; i < mailList_.size(); i++) { - output.writeMessage(2, mailList_.get(i)); - } - if (isTruncated_ != false) { - output.writeBool(3, isTruncated_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (retcode_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, retcode_); - } - for (int i = 0; i < mailList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, mailList_.get(i)); - } - if (isTruncated_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(3, isTruncated_); - } - 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.GetAllMailRspOuterClass.GetAllMailRsp)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp other = (emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp) obj; - - if (getRetcode() - != other.getRetcode()) return false; - if (!getMailListList() - .equals(other.getMailListList())) return false; - if (getIsTruncated() - != other.getIsTruncated()) 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(); - if (getMailListCount() > 0) { - hash = (37 * hash) + MAILLIST_FIELD_NUMBER; - hash = (53 * hash) + getMailListList().hashCode(); - } - hash = (37 * hash) + ISTRUNCATED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsTruncated()); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp 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.GetAllMailRspOuterClass.GetAllMailRsp prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code GetAllMailRsp} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:GetAllMailRsp) - emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRspOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.class, emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getMailListFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - retcode_ = 0; - - if (mailListBuilder_ == null) { - mailList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - mailListBuilder_.clear(); - } - isTruncated_ = false; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.GetAllMailRspOuterClass.internal_static_GetAllMailRsp_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp getDefaultInstanceForType() { - return emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp build() { - emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp buildPartial() { - emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp result = new emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp(this); - int from_bitField0_ = bitField0_; - result.retcode_ = retcode_; - if (mailListBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - mailList_ = java.util.Collections.unmodifiableList(mailList_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.mailList_ = mailList_; - } else { - result.mailList_ = mailListBuilder_.build(); - } - result.isTruncated_ = isTruncated_; - 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.GetAllMailRspOuterClass.GetAllMailRsp) { - return mergeFrom((emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp other) { - if (other == emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp.getDefaultInstance()) return this; - if (other.getRetcode() != 0) { - setRetcode(other.getRetcode()); - } - if (mailListBuilder_ == null) { - if (!other.mailList_.isEmpty()) { - if (mailList_.isEmpty()) { - mailList_ = other.mailList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureMailListIsMutable(); - mailList_.addAll(other.mailList_); - } - onChanged(); - } - } else { - if (!other.mailList_.isEmpty()) { - if (mailListBuilder_.isEmpty()) { - mailListBuilder_.dispose(); - mailListBuilder_ = null; - mailList_ = other.mailList_; - bitField0_ = (bitField0_ & ~0x00000001); - mailListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getMailListFieldBuilder() : null; - } else { - mailListBuilder_.addAllMessages(other.mailList_); - } - } - } - if (other.getIsTruncated() != false) { - setIsTruncated(other.getIsTruncated()); - } - 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.GetAllMailRspOuterClass.GetAllMailRsp parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private int retcode_ ; - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - @java.lang.Override - public int getRetcode() { - return retcode_; - } - /** - * <code>int32 retcode = 1;</code> - * @param value The retcode to set. - * @return This builder for chaining. - */ - public Builder setRetcode(int value) { - - retcode_ = value; - onChanged(); - return this; - } - /** - * <code>int32 retcode = 1;</code> - * @return This builder for chaining. - */ - public Builder clearRetcode() { - - retcode_ = 0; - onChanged(); - return this; - } - - private java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData> mailList_ = - java.util.Collections.emptyList(); - private void ensureMailListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - mailList_ = new java.util.ArrayList<emu.grasscutter.net.proto.MailDataOuterClass.MailData>(mailList_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> mailListBuilder_; - - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData> getMailListList() { - if (mailListBuilder_ == null) { - return java.util.Collections.unmodifiableList(mailList_); - } else { - return mailListBuilder_.getMessageList(); - } - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public int getMailListCount() { - if (mailListBuilder_ == null) { - return mailList_.size(); - } else { - return mailListBuilder_.getCount(); - } - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { - if (mailListBuilder_ == null) { - return mailList_.get(index); - } else { - return mailListBuilder_.getMessage(index); - } - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public Builder setMailList( - int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { - if (mailListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMailListIsMutable(); - mailList_.set(index, value); - onChanged(); - } else { - mailListBuilder_.setMessage(index, value); - } - return this; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public Builder setMailList( - int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { - if (mailListBuilder_ == null) { - ensureMailListIsMutable(); - mailList_.set(index, builderForValue.build()); - onChanged(); - } else { - mailListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public Builder addMailList(emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { - if (mailListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMailListIsMutable(); - mailList_.add(value); - onChanged(); - } else { - mailListBuilder_.addMessage(value); - } - return this; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public Builder addMailList( - int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { - if (mailListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMailListIsMutable(); - mailList_.add(index, value); - onChanged(); - } else { - mailListBuilder_.addMessage(index, value); - } - return this; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public Builder addMailList( - emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { - if (mailListBuilder_ == null) { - ensureMailListIsMutable(); - mailList_.add(builderForValue.build()); - onChanged(); - } else { - mailListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public Builder addMailList( - int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { - if (mailListBuilder_ == null) { - ensureMailListIsMutable(); - mailList_.add(index, builderForValue.build()); - onChanged(); - } else { - mailListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public Builder addAllMailList( - java.lang.Iterable<? extends emu.grasscutter.net.proto.MailDataOuterClass.MailData> values) { - if (mailListBuilder_ == null) { - ensureMailListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, mailList_); - onChanged(); - } else { - mailListBuilder_.addAllMessages(values); - } - return this; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public Builder clearMailList() { - if (mailListBuilder_ == null) { - mailList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - mailListBuilder_.clear(); - } - return this; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public Builder removeMailList(int index) { - if (mailListBuilder_ == null) { - ensureMailListIsMutable(); - mailList_.remove(index); - onChanged(); - } else { - mailListBuilder_.remove(index); - } - return this; - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder getMailListBuilder( - int index) { - return getMailListFieldBuilder().getBuilder(index); - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( - int index) { - if (mailListBuilder_ == null) { - return mailList_.get(index); } else { - return mailListBuilder_.getMessageOrBuilder(index); - } - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public java.util.List<? extends emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> - getMailListOrBuilderList() { - if (mailListBuilder_ != null) { - return mailListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(mailList_); - } - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder() { - return getMailListFieldBuilder().addBuilder( - emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder( - int index) { - return getMailListFieldBuilder().addBuilder( - index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); - } - /** - * <code>repeated .MailData mailList = 2;</code> - */ - public java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder> - getMailListBuilderList() { - return getMailListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> - getMailListFieldBuilder() { - if (mailListBuilder_ == null) { - mailListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder>( - mailList_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - mailList_ = null; - } - return mailListBuilder_; - } - - private boolean isTruncated_ ; - /** - * <code>bool isTruncated = 3;</code> - * @return The isTruncated. - */ - @java.lang.Override - public boolean getIsTruncated() { - return isTruncated_; - } - /** - * <code>bool isTruncated = 3;</code> - * @param value The isTruncated to set. - * @return This builder for chaining. - */ - public Builder setIsTruncated(boolean value) { - - isTruncated_ = value; - onChanged(); - return this; - } - /** - * <code>bool isTruncated = 3;</code> - * @return This builder for chaining. - */ - public Builder clearIsTruncated() { - - isTruncated_ = false; - 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:GetAllMailRsp) - } - - // @@protoc_insertion_point(class_scope:GetAllMailRsp) - private static final emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp(); - } - - public static emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<GetAllMailRsp> - PARSER = new com.google.protobuf.AbstractParser<GetAllMailRsp>() { - @java.lang.Override - public GetAllMailRsp parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new GetAllMailRsp(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<GetAllMailRsp> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<GetAllMailRsp> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_GetAllMailRsp_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_GetAllMailRsp_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\023GetAllMailRsp.proto\032\016MailData.proto\"R\n" + - "\rGetAllMailRsp\022\017\n\007retcode\030\001 \001(\005\022\033\n\010mailL" + - "ist\030\002 \003(\0132\t.MailData\022\023\n\013isTruncated\030\003 \001(" + - "\010B\033\n\031emu.grasscutter.net.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(), - }); - internal_static_GetAllMailRsp_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_GetAllMailRsp_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_GetAllMailRsp_descriptor, - new java.lang.String[] { "Retcode", "MailList", "IsTruncated", }); - emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java deleted file mode 100644 index 4610e8ba4..000000000 --- a/src/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java +++ /dev/null @@ -1,665 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: GetMailItemReq.proto - -package emu.grasscutter.net.proto; - -public final class GetMailItemReqOuterClass { - private GetMailItemReqOuterClass() {} - 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 GetMailItemReqOrBuilder extends - // @@protoc_insertion_point(interface_extends:GetMailItemReq) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - java.util.List<java.lang.Integer> getMailIdListList(); - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - int getMailIdListCount(); - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - int getMailIdList(int index); - } - /** - * Protobuf type {@code GetMailItemReq} - */ - public static final class GetMailItemReq extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:GetMailItemReq) - GetMailItemReqOrBuilder { - private static final long serialVersionUID = 0L; - // Use GetMailItemReq.newBuilder() to construct. - private GetMailItemReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private GetMailItemReq() { - mailIdList_ = emptyIntList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new GetMailItemReq(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private GetMailItemReq( - 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 8: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - mailIdList_.addInt(input.readUInt32()); - break; - } - case 10: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - while (input.getBytesUntilLimit() > 0) { - mailIdList_.addInt(input.readUInt32()); - } - input.popLimit(limit); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); // C - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.class, emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.Builder.class); - } - - public static final int MAILIDLIST_FIELD_NUMBER = 1; - private com.google.protobuf.Internal.IntList mailIdList_; - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - @java.lang.Override - public java.util.List<java.lang.Integer> - getMailIdListList() { - return mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - private int mailIdListMemoizedSerializedSize = -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 (getMailIdListList().size() > 0) { - output.writeUInt32NoTag(10); - output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); - } - for (int i = 0; i < mailIdList_.size(); i++) { - output.writeUInt32NoTag(mailIdList_.getInt(i)); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - { - int dataSize = 0; - for (int i = 0; i < mailIdList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt32SizeNoTag(mailIdList_.getInt(i)); - } - size += dataSize; - if (!getMailIdListList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - mailIdListMemoizedSerializedSize = dataSize; - } - 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.GetMailItemReqOuterClass.GetMailItemReq)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq other = (emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq) obj; - - if (!getMailIdListList() - .equals(other.getMailIdListList())) 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(); - if (getMailIdListCount() > 0) { - hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; - hash = (53 * hash) + getMailIdListList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq 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.GetMailItemReqOuterClass.GetMailItemReq prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code GetMailItemReq} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:GetMailItemReq) - emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReqOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.class, emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.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(); - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.GetMailItemReqOuterClass.internal_static_GetMailItemReq_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq getDefaultInstanceForType() { - return emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq build() { - emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq buildPartial() { - emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq result = new emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq(this); - int from_bitField0_ = bitField0_; - if (((bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.mailIdList_ = mailIdList_; - 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.GetMailItemReqOuterClass.GetMailItemReq) { - return mergeFrom((emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq other) { - if (other == emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq.getDefaultInstance()) return this; - if (!other.mailIdList_.isEmpty()) { - if (mailIdList_.isEmpty()) { - mailIdList_ = other.mailIdList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureMailIdListIsMutable(); - mailIdList_.addAll(other.mailIdList_); - } - 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.GetMailItemReqOuterClass.GetMailItemReq parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); - private void ensureMailIdListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - mailIdList_ = mutableCopy(mailIdList_); - bitField0_ |= 0x00000001; - } - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - public java.util.List<java.lang.Integer> - getMailIdListList() { - return ((bitField0_ & 0x00000001) != 0) ? - java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index to set the value at. - * @param value The mailIdList to set. - * @return This builder for chaining. - */ - public Builder setMailIdList( - int index, int value) { - ensureMailIdListIsMutable(); - mailIdList_.setInt(index, value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param value The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addMailIdList(int value) { - ensureMailIdListIsMutable(); - mailIdList_.addInt(value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param values The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addAllMailIdList( - java.lang.Iterable<? extends java.lang.Integer> values) { - ensureMailIdListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, mailIdList_); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return This builder for chaining. - */ - public Builder clearMailIdList() { - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - 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:GetMailItemReq) - } - - // @@protoc_insertion_point(class_scope:GetMailItemReq) - private static final emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq(); - } - - public static emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<GetMailItemReq> - PARSER = new com.google.protobuf.AbstractParser<GetMailItemReq>() { - @java.lang.Override - public GetMailItemReq parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new GetMailItemReq(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<GetMailItemReq> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<GetMailItemReq> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetMailItemReqOuterClass.GetMailItemReq getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_GetMailItemReq_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_GetMailItemReq_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\024GetMailItemReq.proto\"$\n\016GetMailItemReq" + - "\022\022\n\nmailIdList\030\001 \003(\rB\033\n\031emu.grasscutter." + - "net.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_GetMailItemReq_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_GetMailItemReq_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_GetMailItemReq_descriptor, - new java.lang.String[] { "MailIdList", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java deleted file mode 100644 index 83a29c529..000000000 --- a/src/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java +++ /dev/null @@ -1,1111 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: GetMailItemRsp.proto - -package emu.grasscutter.net.proto; - -public final class GetMailItemRspOuterClass { - private GetMailItemRspOuterClass() {} - 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 GetMailItemRspOrBuilder extends - // @@protoc_insertion_point(interface_extends:GetMailItemRsp) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - int getRetcode(); - - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return A list containing the mailIdList. - */ - java.util.List<java.lang.Integer> getMailIdListList(); - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return The count of mailIdList. - */ - int getMailIdListCount(); - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - int getMailIdList(int index); - - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - java.util.List<emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam> - getItemListList(); - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getItemList(int index); - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - int getItemListCount(); - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - java.util.List<? extends emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder> - getItemListOrBuilderList(); - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder getItemListOrBuilder( - int index); - } - /** - * Protobuf type {@code GetMailItemRsp} - */ - public static final class GetMailItemRsp extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:GetMailItemRsp) - GetMailItemRspOrBuilder { - private static final long serialVersionUID = 0L; - // Use GetMailItemRsp.newBuilder() to construct. - private GetMailItemRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private GetMailItemRsp() { - mailIdList_ = emptyIntList(); - itemList_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new GetMailItemRsp(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private GetMailItemRsp( - 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 8: { - - retcode_ = input.readInt32(); - break; - } - case 16: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - mailIdList_.addInt(input.readUInt32()); - break; - } - case 18: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - while (input.getBytesUntilLimit() > 0) { - mailIdList_.addInt(input.readUInt32()); - } - input.popLimit(limit); - break; - } - case 26: { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam>(); - mutable_bitField0_ |= 0x00000002; - } - itemList_.add( - input.readMessage(emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.parser(), extensionRegistry)); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); // C - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - itemList_ = java.util.Collections.unmodifiableList(itemList_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.class, emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.Builder.class); - } - - public static final int RETCODE_FIELD_NUMBER = 1; - private int retcode_; - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - @java.lang.Override - public int getRetcode() { - return retcode_; - } - - public static final int MAILIDLIST_FIELD_NUMBER = 2; - private com.google.protobuf.Internal.IntList mailIdList_; - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return A list containing the mailIdList. - */ - @java.lang.Override - public java.util.List<java.lang.Integer> - getMailIdListList() { - return mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - private int mailIdListMemoizedSerializedSize = -1; - - public static final int ITEMLIST_FIELD_NUMBER = 3; - private java.util.List<emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam> itemList_; - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - @java.lang.Override - public java.util.List<emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam> getItemListList() { - return itemList_; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - @java.lang.Override - public java.util.List<? extends emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder> - getItemListOrBuilderList() { - return itemList_; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - @java.lang.Override - public int getItemListCount() { - return itemList_.size(); - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getItemList(int index) { - return itemList_.get(index); - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder getItemListOrBuilder( - int index) { - return itemList_.get(index); - } - - 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 (retcode_ != 0) { - output.writeInt32(1, retcode_); - } - if (getMailIdListList().size() > 0) { - output.writeUInt32NoTag(18); - output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); - } - for (int i = 0; i < mailIdList_.size(); i++) { - output.writeUInt32NoTag(mailIdList_.getInt(i)); - } - for (int i = 0; i < itemList_.size(); i++) { - output.writeMessage(3, itemList_.get(i)); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (retcode_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, retcode_); - } - { - int dataSize = 0; - for (int i = 0; i < mailIdList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt32SizeNoTag(mailIdList_.getInt(i)); - } - size += dataSize; - if (!getMailIdListList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - mailIdListMemoizedSerializedSize = dataSize; - } - for (int i = 0; i < itemList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, itemList_.get(i)); - } - 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.GetMailItemRspOuterClass.GetMailItemRsp)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp other = (emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp) obj; - - if (getRetcode() - != other.getRetcode()) return false; - if (!getMailIdListList() - .equals(other.getMailIdListList())) return false; - if (!getItemListList() - .equals(other.getItemListList())) 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(); - if (getMailIdListCount() > 0) { - hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; - hash = (53 * hash) + getMailIdListList().hashCode(); - } - if (getItemListCount() > 0) { - hash = (37 * hash) + ITEMLIST_FIELD_NUMBER; - hash = (53 * hash) + getItemListList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp 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.GetMailItemRspOuterClass.GetMailItemRsp prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code GetMailItemRsp} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:GetMailItemRsp) - emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRspOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.class, emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getItemListFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - retcode_ = 0; - - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - if (itemListBuilder_ == null) { - itemList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - } else { - itemListBuilder_.clear(); - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.GetMailItemRspOuterClass.internal_static_GetMailItemRsp_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp getDefaultInstanceForType() { - return emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp build() { - emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp buildPartial() { - emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp result = new emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp(this); - int from_bitField0_ = bitField0_; - result.retcode_ = retcode_; - if (((bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.mailIdList_ = mailIdList_; - if (itemListBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { - itemList_ = java.util.Collections.unmodifiableList(itemList_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.itemList_ = itemList_; - } else { - result.itemList_ = itemListBuilder_.build(); - } - 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.GetMailItemRspOuterClass.GetMailItemRsp) { - return mergeFrom((emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp other) { - if (other == emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp.getDefaultInstance()) return this; - if (other.getRetcode() != 0) { - setRetcode(other.getRetcode()); - } - if (!other.mailIdList_.isEmpty()) { - if (mailIdList_.isEmpty()) { - mailIdList_ = other.mailIdList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureMailIdListIsMutable(); - mailIdList_.addAll(other.mailIdList_); - } - onChanged(); - } - if (itemListBuilder_ == null) { - if (!other.itemList_.isEmpty()) { - if (itemList_.isEmpty()) { - itemList_ = other.itemList_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureItemListIsMutable(); - itemList_.addAll(other.itemList_); - } - onChanged(); - } - } else { - if (!other.itemList_.isEmpty()) { - if (itemListBuilder_.isEmpty()) { - itemListBuilder_.dispose(); - itemListBuilder_ = null; - itemList_ = other.itemList_; - bitField0_ = (bitField0_ & ~0x00000002); - itemListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getItemListFieldBuilder() : null; - } else { - itemListBuilder_.addAllMessages(other.itemList_); - } - } - } - 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.GetMailItemRspOuterClass.GetMailItemRsp parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private int retcode_ ; - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - @java.lang.Override - public int getRetcode() { - return retcode_; - } - /** - * <code>int32 retcode = 1;</code> - * @param value The retcode to set. - * @return This builder for chaining. - */ - public Builder setRetcode(int value) { - - retcode_ = value; - onChanged(); - return this; - } - /** - * <code>int32 retcode = 1;</code> - * @return This builder for chaining. - */ - public Builder clearRetcode() { - - retcode_ = 0; - onChanged(); - return this; - } - - private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); - private void ensureMailIdListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - mailIdList_ = mutableCopy(mailIdList_); - bitField0_ |= 0x00000001; - } - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return A list containing the mailIdList. - */ - public java.util.List<java.lang.Integer> - getMailIdListList() { - return ((bitField0_ & 0x00000001) != 0) ? - java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param index The index to set the value at. - * @param value The mailIdList to set. - * @return This builder for chaining. - */ - public Builder setMailIdList( - int index, int value) { - ensureMailIdListIsMutable(); - mailIdList_.setInt(index, value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param value The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addMailIdList(int value) { - ensureMailIdListIsMutable(); - mailIdList_.addInt(value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @param values The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addAllMailIdList( - java.lang.Iterable<? extends java.lang.Integer> values) { - ensureMailIdListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, mailIdList_); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 2;</code> - * @return This builder for chaining. - */ - public Builder clearMailIdList() { - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - - private java.util.List<emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam> itemList_ = - java.util.Collections.emptyList(); - private void ensureItemListIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam>(itemList_); - bitField0_ |= 0x00000002; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder> itemListBuilder_; - - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public java.util.List<emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam> getItemListList() { - if (itemListBuilder_ == null) { - return java.util.Collections.unmodifiableList(itemList_); - } else { - return itemListBuilder_.getMessageList(); - } - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public int getItemListCount() { - if (itemListBuilder_ == null) { - return itemList_.size(); - } else { - return itemListBuilder_.getCount(); - } - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam getItemList(int index) { - if (itemListBuilder_ == null) { - return itemList_.get(index); - } else { - return itemListBuilder_.getMessage(index); - } - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public Builder setItemList( - int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam value) { - if (itemListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureItemListIsMutable(); - itemList_.set(index, value); - onChanged(); - } else { - itemListBuilder_.setMessage(index, value); - } - return this; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public Builder setItemList( - int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder builderForValue) { - if (itemListBuilder_ == null) { - ensureItemListIsMutable(); - itemList_.set(index, builderForValue.build()); - onChanged(); - } else { - itemListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public Builder addItemList(emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam value) { - if (itemListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureItemListIsMutable(); - itemList_.add(value); - onChanged(); - } else { - itemListBuilder_.addMessage(value); - } - return this; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public Builder addItemList( - int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam value) { - if (itemListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureItemListIsMutable(); - itemList_.add(index, value); - onChanged(); - } else { - itemListBuilder_.addMessage(index, value); - } - return this; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public Builder addItemList( - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder builderForValue) { - if (itemListBuilder_ == null) { - ensureItemListIsMutable(); - itemList_.add(builderForValue.build()); - onChanged(); - } else { - itemListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public Builder addItemList( - int index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder builderForValue) { - if (itemListBuilder_ == null) { - ensureItemListIsMutable(); - itemList_.add(index, builderForValue.build()); - onChanged(); - } else { - itemListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public Builder addAllItemList( - java.lang.Iterable<? extends emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam> values) { - if (itemListBuilder_ == null) { - ensureItemListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, itemList_); - onChanged(); - } else { - itemListBuilder_.addAllMessages(values); - } - return this; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public Builder clearItemList() { - if (itemListBuilder_ == null) { - itemList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - } else { - itemListBuilder_.clear(); - } - return this; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public Builder removeItemList(int index) { - if (itemListBuilder_ == null) { - ensureItemListIsMutable(); - itemList_.remove(index); - onChanged(); - } else { - itemListBuilder_.remove(index); - } - return this; - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder getItemListBuilder( - int index) { - return getItemListFieldBuilder().getBuilder(index); - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder getItemListOrBuilder( - int index) { - if (itemListBuilder_ == null) { - return itemList_.get(index); } else { - return itemListBuilder_.getMessageOrBuilder(index); - } - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public java.util.List<? extends emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder> - getItemListOrBuilderList() { - if (itemListBuilder_ != null) { - return itemListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(itemList_); - } - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder addItemListBuilder() { - return getItemListFieldBuilder().addBuilder( - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance()); - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder addItemListBuilder( - int index) { - return getItemListFieldBuilder().addBuilder( - index, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.getDefaultInstance()); - } - /** - * <code>repeated .EquipParam itemList = 3;</code> - */ - public java.util.List<emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder> - getItemListBuilderList() { - return getItemListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder> - getItemListFieldBuilder() { - if (itemListBuilder_ == null) { - itemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam.Builder, emu.grasscutter.net.proto.EquipParamOuterClass.EquipParamOrBuilder>( - itemList_, - ((bitField0_ & 0x00000002) != 0), - getParentForChildren(), - isClean()); - itemList_ = null; - } - return itemListBuilder_; - } - @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:GetMailItemRsp) - } - - // @@protoc_insertion_point(class_scope:GetMailItemRsp) - private static final emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp(); - } - - public static emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<GetMailItemRsp> - PARSER = new com.google.protobuf.AbstractParser<GetMailItemRsp>() { - @java.lang.Override - public GetMailItemRsp parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new GetMailItemRsp(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<GetMailItemRsp> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<GetMailItemRsp> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_GetMailItemRsp_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_GetMailItemRsp_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\024GetMailItemRsp.proto\032\020EquipParam.proto" + - "\"T\n\016GetMailItemRsp\022\017\n\007retcode\030\001 \001(\005\022\022\n\nm" + - "ailIdList\030\002 \003(\r\022\035\n\010itemList\030\003 \003(\0132\013.Equi" + - "pParamB\033\n\031emu.grasscutter.net.protob\006pro" + - "to3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - emu.grasscutter.net.proto.EquipParamOuterClass.getDescriptor(), - }); - internal_static_GetMailItemRsp_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_GetMailItemRsp_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_GetMailItemRsp_descriptor, - new java.lang.String[] { "Retcode", "MailIdList", "ItemList", }); - emu.grasscutter.net.proto.EquipParamOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java deleted file mode 100644 index 020cc0e7c..000000000 --- a/src/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java +++ /dev/null @@ -1,1040 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: MailChangeNotify.proto - -package emu.grasscutter.net.proto; - -public final class MailChangeNotifyOuterClass { - private MailChangeNotifyOuterClass() {} - 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 MailChangeNotifyOrBuilder extends - // @@protoc_insertion_point(interface_extends:MailChangeNotify) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>repeated .MailData mailList = 1;</code> - */ - java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData> - getMailListList(); - /** - * <code>repeated .MailData mailList = 1;</code> - */ - emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index); - /** - * <code>repeated .MailData mailList = 1;</code> - */ - int getMailListCount(); - /** - * <code>repeated .MailData mailList = 1;</code> - */ - java.util.List<? extends emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> - getMailListOrBuilderList(); - /** - * <code>repeated .MailData mailList = 1;</code> - */ - emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( - int index); - - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @return A list containing the delMailIdList. - */ - java.util.List<java.lang.Integer> getDelMailIdListList(); - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @return The count of delMailIdList. - */ - int getDelMailIdListCount(); - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @param index The index of the element to return. - * @return The delMailIdList at the given index. - */ - int getDelMailIdList(int index); - } - /** - * Protobuf type {@code MailChangeNotify} - */ - public static final class MailChangeNotify extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:MailChangeNotify) - MailChangeNotifyOrBuilder { - private static final long serialVersionUID = 0L; - // Use MailChangeNotify.newBuilder() to construct. - private MailChangeNotify(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private MailChangeNotify() { - mailList_ = java.util.Collections.emptyList(); - delMailIdList_ = emptyIntList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new MailChangeNotify(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private MailChangeNotify( - 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 10: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - mailList_ = new java.util.ArrayList<emu.grasscutter.net.proto.MailDataOuterClass.MailData>(); - mutable_bitField0_ |= 0x00000001; - } - mailList_.add( - input.readMessage(emu.grasscutter.net.proto.MailDataOuterClass.MailData.parser(), extensionRegistry)); - break; - } - case 16: { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - delMailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000002; - } - delMailIdList_.addInt(input.readUInt32()); - break; - } - case 18: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) { - delMailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000002; - } - while (input.getBytesUntilLimit() > 0) { - delMailIdList_.addInt(input.readUInt32()); - } - input.popLimit(limit); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - mailList_ = java.util.Collections.unmodifiableList(mailList_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - delMailIdList_.makeImmutable(); // C - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.class, emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.Builder.class); - } - - public static final int MAILLIST_FIELD_NUMBER = 1; - private java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData> mailList_; - /** - * <code>repeated .MailData mailList = 1;</code> - */ - @java.lang.Override - public java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData> getMailListList() { - return mailList_; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - @java.lang.Override - public java.util.List<? extends emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> - getMailListOrBuilderList() { - return mailList_; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - @java.lang.Override - public int getMailListCount() { - return mailList_.size(); - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { - return mailList_.get(index); - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( - int index) { - return mailList_.get(index); - } - - public static final int DELMAILIDLIST_FIELD_NUMBER = 2; - private com.google.protobuf.Internal.IntList delMailIdList_; - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @return A list containing the delMailIdList. - */ - @java.lang.Override - public java.util.List<java.lang.Integer> - getDelMailIdListList() { - return delMailIdList_; - } - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @return The count of delMailIdList. - */ - public int getDelMailIdListCount() { - return delMailIdList_.size(); - } - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @param index The index of the element to return. - * @return The delMailIdList at the given index. - */ - public int getDelMailIdList(int index) { - return delMailIdList_.getInt(index); - } - private int delMailIdListMemoizedSerializedSize = -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(); - for (int i = 0; i < mailList_.size(); i++) { - output.writeMessage(1, mailList_.get(i)); - } - if (getDelMailIdListList().size() > 0) { - output.writeUInt32NoTag(18); - output.writeUInt32NoTag(delMailIdListMemoizedSerializedSize); - } - for (int i = 0; i < delMailIdList_.size(); i++) { - output.writeUInt32NoTag(delMailIdList_.getInt(i)); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < mailList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, mailList_.get(i)); - } - { - int dataSize = 0; - for (int i = 0; i < delMailIdList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt32SizeNoTag(delMailIdList_.getInt(i)); - } - size += dataSize; - if (!getDelMailIdListList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - delMailIdListMemoizedSerializedSize = dataSize; - } - 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.MailChangeNotifyOuterClass.MailChangeNotify)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify other = (emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify) obj; - - if (!getMailListList() - .equals(other.getMailListList())) return false; - if (!getDelMailIdListList() - .equals(other.getDelMailIdListList())) 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(); - if (getMailListCount() > 0) { - hash = (37 * hash) + MAILLIST_FIELD_NUMBER; - hash = (53 * hash) + getMailListList().hashCode(); - } - if (getDelMailIdListCount() > 0) { - hash = (37 * hash) + DELMAILIDLIST_FIELD_NUMBER; - hash = (53 * hash) + getDelMailIdListList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify 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.MailChangeNotifyOuterClass.MailChangeNotify prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code MailChangeNotify} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:MailChangeNotify) - emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotifyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.class, emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getMailListFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (mailListBuilder_ == null) { - mailList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - mailListBuilder_.clear(); - } - delMailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.internal_static_MailChangeNotify_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify getDefaultInstanceForType() { - return emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify build() { - emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify buildPartial() { - emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify result = new emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify(this); - int from_bitField0_ = bitField0_; - if (mailListBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - mailList_ = java.util.Collections.unmodifiableList(mailList_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.mailList_ = mailList_; - } else { - result.mailList_ = mailListBuilder_.build(); - } - if (((bitField0_ & 0x00000002) != 0)) { - delMailIdList_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.delMailIdList_ = delMailIdList_; - 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.MailChangeNotifyOuterClass.MailChangeNotify) { - return mergeFrom((emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify other) { - if (other == emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify.getDefaultInstance()) return this; - if (mailListBuilder_ == null) { - if (!other.mailList_.isEmpty()) { - if (mailList_.isEmpty()) { - mailList_ = other.mailList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureMailListIsMutable(); - mailList_.addAll(other.mailList_); - } - onChanged(); - } - } else { - if (!other.mailList_.isEmpty()) { - if (mailListBuilder_.isEmpty()) { - mailListBuilder_.dispose(); - mailListBuilder_ = null; - mailList_ = other.mailList_; - bitField0_ = (bitField0_ & ~0x00000001); - mailListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getMailListFieldBuilder() : null; - } else { - mailListBuilder_.addAllMessages(other.mailList_); - } - } - } - if (!other.delMailIdList_.isEmpty()) { - if (delMailIdList_.isEmpty()) { - delMailIdList_ = other.delMailIdList_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureDelMailIdListIsMutable(); - delMailIdList_.addAll(other.delMailIdList_); - } - 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.MailChangeNotifyOuterClass.MailChangeNotify parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData> mailList_ = - java.util.Collections.emptyList(); - private void ensureMailListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - mailList_ = new java.util.ArrayList<emu.grasscutter.net.proto.MailDataOuterClass.MailData>(mailList_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> mailListBuilder_; - - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData> getMailListList() { - if (mailListBuilder_ == null) { - return java.util.Collections.unmodifiableList(mailList_); - } else { - return mailListBuilder_.getMessageList(); - } - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public int getMailListCount() { - if (mailListBuilder_ == null) { - return mailList_.size(); - } else { - return mailListBuilder_.getCount(); - } - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) { - if (mailListBuilder_ == null) { - return mailList_.get(index); - } else { - return mailListBuilder_.getMessage(index); - } - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public Builder setMailList( - int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { - if (mailListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMailListIsMutable(); - mailList_.set(index, value); - onChanged(); - } else { - mailListBuilder_.setMessage(index, value); - } - return this; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public Builder setMailList( - int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { - if (mailListBuilder_ == null) { - ensureMailListIsMutable(); - mailList_.set(index, builderForValue.build()); - onChanged(); - } else { - mailListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public Builder addMailList(emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { - if (mailListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMailListIsMutable(); - mailList_.add(value); - onChanged(); - } else { - mailListBuilder_.addMessage(value); - } - return this; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public Builder addMailList( - int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData value) { - if (mailListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMailListIsMutable(); - mailList_.add(index, value); - onChanged(); - } else { - mailListBuilder_.addMessage(index, value); - } - return this; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public Builder addMailList( - emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { - if (mailListBuilder_ == null) { - ensureMailListIsMutable(); - mailList_.add(builderForValue.build()); - onChanged(); - } else { - mailListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public Builder addMailList( - int index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder builderForValue) { - if (mailListBuilder_ == null) { - ensureMailListIsMutable(); - mailList_.add(index, builderForValue.build()); - onChanged(); - } else { - mailListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public Builder addAllMailList( - java.lang.Iterable<? extends emu.grasscutter.net.proto.MailDataOuterClass.MailData> values) { - if (mailListBuilder_ == null) { - ensureMailListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, mailList_); - onChanged(); - } else { - mailListBuilder_.addAllMessages(values); - } - return this; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public Builder clearMailList() { - if (mailListBuilder_ == null) { - mailList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - mailListBuilder_.clear(); - } - return this; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public Builder removeMailList(int index) { - if (mailListBuilder_ == null) { - ensureMailListIsMutable(); - mailList_.remove(index); - onChanged(); - } else { - mailListBuilder_.remove(index); - } - return this; - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder getMailListBuilder( - int index) { - return getMailListFieldBuilder().getBuilder(index); - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder( - int index) { - if (mailListBuilder_ == null) { - return mailList_.get(index); } else { - return mailListBuilder_.getMessageOrBuilder(index); - } - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public java.util.List<? extends emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> - getMailListOrBuilderList() { - if (mailListBuilder_ != null) { - return mailListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(mailList_); - } - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder() { - return getMailListFieldBuilder().addBuilder( - emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder( - int index) { - return getMailListFieldBuilder().addBuilder( - index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()); - } - /** - * <code>repeated .MailData mailList = 1;</code> - */ - public java.util.List<emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder> - getMailListBuilderList() { - return getMailListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder> - getMailListFieldBuilder() { - if (mailListBuilder_ == null) { - mailListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.MailDataOuterClass.MailData, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder, emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder>( - mailList_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - mailList_ = null; - } - return mailListBuilder_; - } - - private com.google.protobuf.Internal.IntList delMailIdList_ = emptyIntList(); - private void ensureDelMailIdListIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - delMailIdList_ = mutableCopy(delMailIdList_); - bitField0_ |= 0x00000002; - } - } - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @return A list containing the delMailIdList. - */ - public java.util.List<java.lang.Integer> - getDelMailIdListList() { - return ((bitField0_ & 0x00000002) != 0) ? - java.util.Collections.unmodifiableList(delMailIdList_) : delMailIdList_; - } - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @return The count of delMailIdList. - */ - public int getDelMailIdListCount() { - return delMailIdList_.size(); - } - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @param index The index of the element to return. - * @return The delMailIdList at the given index. - */ - public int getDelMailIdList(int index) { - return delMailIdList_.getInt(index); - } - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @param index The index to set the value at. - * @param value The delMailIdList to set. - * @return This builder for chaining. - */ - public Builder setDelMailIdList( - int index, int value) { - ensureDelMailIdListIsMutable(); - delMailIdList_.setInt(index, value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @param value The delMailIdList to add. - * @return This builder for chaining. - */ - public Builder addDelMailIdList(int value) { - ensureDelMailIdListIsMutable(); - delMailIdList_.addInt(value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @param values The delMailIdList to add. - * @return This builder for chaining. - */ - public Builder addAllDelMailIdList( - java.lang.Iterable<? extends java.lang.Integer> values) { - ensureDelMailIdListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, delMailIdList_); - onChanged(); - return this; - } - /** - * <code>repeated uint32 delMailIdList = 2;</code> - * @return This builder for chaining. - */ - public Builder clearDelMailIdList() { - delMailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000002); - 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:MailChangeNotify) - } - - // @@protoc_insertion_point(class_scope:MailChangeNotify) - private static final emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify(); - } - - public static emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<MailChangeNotify> - PARSER = new com.google.protobuf.AbstractParser<MailChangeNotify>() { - @java.lang.Override - public MailChangeNotify parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new MailChangeNotify(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<MailChangeNotify> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<MailChangeNotify> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_MailChangeNotify_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_MailChangeNotify_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\026MailChangeNotify.proto\032\016MailData.proto" + - "\"F\n\020MailChangeNotify\022\033\n\010mailList\030\001 \003(\0132\t" + - ".MailData\022\025\n\rdelMailIdList\030\002 \003(\rB\033\n\031emu." + - "grasscutter.net.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(), - }); - internal_static_MailChangeNotify_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_MailChangeNotify_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_MailChangeNotify_descriptor, - new java.lang.String[] { "MailList", "DelMailIdList", }); - emu.grasscutter.net.proto.MailDataOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java deleted file mode 100644 index 0bb1d7534..000000000 --- a/src/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java +++ /dev/null @@ -1,1835 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: MailData.proto - -package emu.grasscutter.net.proto; - -public final class MailDataOuterClass { - private MailDataOuterClass() {} - 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 MailDataOrBuilder extends - // @@protoc_insertion_point(interface_extends:MailData) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>uint32 mailId = 1;</code> - * @return The mailId. - */ - int getMailId(); - - /** - * <code>.MailTextContent mailTextContent = 4;</code> - * @return Whether the mailTextContent field is set. - */ - boolean hasMailTextContent(); - /** - * <code>.MailTextContent mailTextContent = 4;</code> - * @return The mailTextContent. - */ - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getMailTextContent(); - /** - * <code>.MailTextContent mailTextContent = 4;</code> - */ - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder getMailTextContentOrBuilder(); - - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - java.util.List<emu.grasscutter.net.proto.MailItemOuterClass.MailItem> - getItemListList(); - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - emu.grasscutter.net.proto.MailItemOuterClass.MailItem getItemList(int index); - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - int getItemListCount(); - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - java.util.List<? extends emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder> - getItemListOrBuilderList(); - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder getItemListOrBuilder( - int index); - - /** - * <code>uint32 sendTime = 8;</code> - * @return The sendTime. - */ - int getSendTime(); - - /** - * <code>uint32 expireTime = 9;</code> - * @return The expireTime. - */ - int getExpireTime(); - - /** - * <code>uint32 importance = 10;</code> - * @return The importance. - */ - int getImportance(); - - /** - * <code>bool isRead = 11;</code> - * @return The isRead. - */ - boolean getIsRead(); - - /** - * <code>bool isAttachmentGot = 12;</code> - * @return The isAttachmentGot. - */ - boolean getIsAttachmentGot(); - - /** - * <code>uint32 configId = 13;</code> - * @return The configId. - */ - int getConfigId(); - - /** - * <code>repeated string argumentList = 14;</code> - * @return A list containing the argumentList. - */ - java.util.List<java.lang.String> - getArgumentListList(); - /** - * <code>repeated string argumentList = 14;</code> - * @return The count of argumentList. - */ - int getArgumentListCount(); - /** - * <code>repeated string argumentList = 14;</code> - * @param index The index of the element to return. - * @return The argumentList at the given index. - */ - java.lang.String getArgumentList(int index); - /** - * <code>repeated string argumentList = 14;</code> - * @param index The index of the value to return. - * @return The bytes of the argumentList at the given index. - */ - com.google.protobuf.ByteString - getArgumentListBytes(int index); - - /** - * <code>uint32 stateValue = 15;</code> - * @return The stateValue. - */ - int getStateValue(); - } - /** - * Protobuf type {@code MailData} - */ - public static final class MailData extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:MailData) - MailDataOrBuilder { - private static final long serialVersionUID = 0L; - // Use MailData.newBuilder() to construct. - private MailData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private MailData() { - itemList_ = java.util.Collections.emptyList(); - argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new MailData(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private MailData( - 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 8: { - - mailId_ = input.readUInt32(); - break; - } - case 34: { - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder subBuilder = null; - if (mailTextContent_ != null) { - subBuilder = mailTextContent_.toBuilder(); - } - mailTextContent_ = input.readMessage(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(mailTextContent_); - mailTextContent_ = subBuilder.buildPartial(); - } - - break; - } - case 58: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.MailItemOuterClass.MailItem>(); - mutable_bitField0_ |= 0x00000001; - } - itemList_.add( - input.readMessage(emu.grasscutter.net.proto.MailItemOuterClass.MailItem.parser(), extensionRegistry)); - break; - } - case 64: { - - sendTime_ = input.readUInt32(); - break; - } - case 72: { - - expireTime_ = input.readUInt32(); - break; - } - case 80: { - - importance_ = input.readUInt32(); - break; - } - case 88: { - - isRead_ = input.readBool(); - break; - } - case 96: { - - isAttachmentGot_ = input.readBool(); - break; - } - case 104: { - - configId_ = input.readUInt32(); - break; - } - case 114: { - java.lang.String s = input.readStringRequireUtf8(); - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - argumentList_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000002; - } - argumentList_.add(s); - break; - } - case 120: { - - stateValue_ = input.readUInt32(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - itemList_ = java.util.Collections.unmodifiableList(itemList_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - argumentList_ = argumentList_.getUnmodifiableView(); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.MailDataOuterClass.MailData.class, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder.class); - } - - public static final int MAILID_FIELD_NUMBER = 1; - private int mailId_; - /** - * <code>uint32 mailId = 1;</code> - * @return The mailId. - */ - @java.lang.Override - public int getMailId() { - return mailId_; - } - - public static final int MAILTEXTCONTENT_FIELD_NUMBER = 4; - private emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent mailTextContent_; - /** - * <code>.MailTextContent mailTextContent = 4;</code> - * @return Whether the mailTextContent field is set. - */ - @java.lang.Override - public boolean hasMailTextContent() { - return mailTextContent_ != null; - } - /** - * <code>.MailTextContent mailTextContent = 4;</code> - * @return The mailTextContent. - */ - @java.lang.Override - public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getMailTextContent() { - return mailTextContent_ == null ? emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance() : mailTextContent_; - } - /** - * <code>.MailTextContent mailTextContent = 4;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder getMailTextContentOrBuilder() { - return getMailTextContent(); - } - - public static final int ITEMLIST_FIELD_NUMBER = 7; - private java.util.List<emu.grasscutter.net.proto.MailItemOuterClass.MailItem> itemList_; - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - @java.lang.Override - public java.util.List<emu.grasscutter.net.proto.MailItemOuterClass.MailItem> getItemListList() { - return itemList_; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - @java.lang.Override - public java.util.List<? extends emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder> - getItemListOrBuilderList() { - return itemList_; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - @java.lang.Override - public int getItemListCount() { - return itemList_.size(); - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.MailItemOuterClass.MailItem getItemList(int index) { - return itemList_.get(index); - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder getItemListOrBuilder( - int index) { - return itemList_.get(index); - } - - public static final int SENDTIME_FIELD_NUMBER = 8; - private int sendTime_; - /** - * <code>uint32 sendTime = 8;</code> - * @return The sendTime. - */ - @java.lang.Override - public int getSendTime() { - return sendTime_; - } - - public static final int EXPIRETIME_FIELD_NUMBER = 9; - private int expireTime_; - /** - * <code>uint32 expireTime = 9;</code> - * @return The expireTime. - */ - @java.lang.Override - public int getExpireTime() { - return expireTime_; - } - - public static final int IMPORTANCE_FIELD_NUMBER = 10; - private int importance_; - /** - * <code>uint32 importance = 10;</code> - * @return The importance. - */ - @java.lang.Override - public int getImportance() { - return importance_; - } - - public static final int ISREAD_FIELD_NUMBER = 11; - private boolean isRead_; - /** - * <code>bool isRead = 11;</code> - * @return The isRead. - */ - @java.lang.Override - public boolean getIsRead() { - return isRead_; - } - - public static final int ISATTACHMENTGOT_FIELD_NUMBER = 12; - private boolean isAttachmentGot_; - /** - * <code>bool isAttachmentGot = 12;</code> - * @return The isAttachmentGot. - */ - @java.lang.Override - public boolean getIsAttachmentGot() { - return isAttachmentGot_; - } - - public static final int CONFIGID_FIELD_NUMBER = 13; - private int configId_; - /** - * <code>uint32 configId = 13;</code> - * @return The configId. - */ - @java.lang.Override - public int getConfigId() { - return configId_; - } - - public static final int ARGUMENTLIST_FIELD_NUMBER = 14; - private com.google.protobuf.LazyStringList argumentList_; - /** - * <code>repeated string argumentList = 14;</code> - * @return A list containing the argumentList. - */ - public com.google.protobuf.ProtocolStringList - getArgumentListList() { - return argumentList_; - } - /** - * <code>repeated string argumentList = 14;</code> - * @return The count of argumentList. - */ - public int getArgumentListCount() { - return argumentList_.size(); - } - /** - * <code>repeated string argumentList = 14;</code> - * @param index The index of the element to return. - * @return The argumentList at the given index. - */ - public java.lang.String getArgumentList(int index) { - return argumentList_.get(index); - } - /** - * <code>repeated string argumentList = 14;</code> - * @param index The index of the value to return. - * @return The bytes of the argumentList at the given index. - */ - public com.google.protobuf.ByteString - getArgumentListBytes(int index) { - return argumentList_.getByteString(index); - } - - public static final int STATEVALUE_FIELD_NUMBER = 15; - private int stateValue_; - /** - * <code>uint32 stateValue = 15;</code> - * @return The stateValue. - */ - @java.lang.Override - public int getStateValue() { - return stateValue_; - } - - 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 (mailId_ != 0) { - output.writeUInt32(1, mailId_); - } - if (mailTextContent_ != null) { - output.writeMessage(4, getMailTextContent()); - } - for (int i = 0; i < itemList_.size(); i++) { - output.writeMessage(7, itemList_.get(i)); - } - if (sendTime_ != 0) { - output.writeUInt32(8, sendTime_); - } - if (expireTime_ != 0) { - output.writeUInt32(9, expireTime_); - } - if (importance_ != 0) { - output.writeUInt32(10, importance_); - } - if (isRead_ != false) { - output.writeBool(11, isRead_); - } - if (isAttachmentGot_ != false) { - output.writeBool(12, isAttachmentGot_); - } - if (configId_ != 0) { - output.writeUInt32(13, configId_); - } - for (int i = 0; i < argumentList_.size(); i++) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 14, argumentList_.getRaw(i)); - } - if (stateValue_ != 0) { - output.writeUInt32(15, stateValue_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (mailId_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, mailId_); - } - if (mailTextContent_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getMailTextContent()); - } - for (int i = 0; i < itemList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, itemList_.get(i)); - } - if (sendTime_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(8, sendTime_); - } - if (expireTime_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(9, expireTime_); - } - if (importance_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(10, importance_); - } - if (isRead_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(11, isRead_); - } - if (isAttachmentGot_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(12, isAttachmentGot_); - } - if (configId_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(13, configId_); - } - { - int dataSize = 0; - for (int i = 0; i < argumentList_.size(); i++) { - dataSize += computeStringSizeNoTag(argumentList_.getRaw(i)); - } - size += dataSize; - size += 1 * getArgumentListList().size(); - } - if (stateValue_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(15, stateValue_); - } - 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.MailDataOuterClass.MailData)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.MailDataOuterClass.MailData other = (emu.grasscutter.net.proto.MailDataOuterClass.MailData) obj; - - if (getMailId() - != other.getMailId()) return false; - if (hasMailTextContent() != other.hasMailTextContent()) return false; - if (hasMailTextContent()) { - if (!getMailTextContent() - .equals(other.getMailTextContent())) return false; - } - if (!getItemListList() - .equals(other.getItemListList())) return false; - if (getSendTime() - != other.getSendTime()) return false; - if (getExpireTime() - != other.getExpireTime()) return false; - if (getImportance() - != other.getImportance()) return false; - if (getIsRead() - != other.getIsRead()) return false; - if (getIsAttachmentGot() - != other.getIsAttachmentGot()) return false; - if (getConfigId() - != other.getConfigId()) return false; - if (!getArgumentListList() - .equals(other.getArgumentListList())) return false; - if (getStateValue() - != other.getStateValue()) 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) + MAILID_FIELD_NUMBER; - hash = (53 * hash) + getMailId(); - if (hasMailTextContent()) { - hash = (37 * hash) + MAILTEXTCONTENT_FIELD_NUMBER; - hash = (53 * hash) + getMailTextContent().hashCode(); - } - if (getItemListCount() > 0) { - hash = (37 * hash) + ITEMLIST_FIELD_NUMBER; - hash = (53 * hash) + getItemListList().hashCode(); - } - hash = (37 * hash) + SENDTIME_FIELD_NUMBER; - hash = (53 * hash) + getSendTime(); - hash = (37 * hash) + EXPIRETIME_FIELD_NUMBER; - hash = (53 * hash) + getExpireTime(); - hash = (37 * hash) + IMPORTANCE_FIELD_NUMBER; - hash = (53 * hash) + getImportance(); - hash = (37 * hash) + ISREAD_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsRead()); - hash = (37 * hash) + ISATTACHMENTGOT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsAttachmentGot()); - hash = (37 * hash) + CONFIGID_FIELD_NUMBER; - hash = (53 * hash) + getConfigId(); - if (getArgumentListCount() > 0) { - hash = (37 * hash) + ARGUMENTLIST_FIELD_NUMBER; - hash = (53 * hash) + getArgumentListList().hashCode(); - } - hash = (37 * hash) + STATEVALUE_FIELD_NUMBER; - hash = (53 * hash) + getStateValue(); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.MailDataOuterClass.MailData parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailDataOuterClass.MailData parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.MailDataOuterClass.MailData parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailDataOuterClass.MailData 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.MailDataOuterClass.MailData prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code MailData} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:MailData) - emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.MailDataOuterClass.MailData.class, emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.MailDataOuterClass.MailData.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getItemListFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - mailId_ = 0; - - if (mailTextContentBuilder_ == null) { - mailTextContent_ = null; - } else { - mailTextContent_ = null; - mailTextContentBuilder_ = null; - } - if (itemListBuilder_ == null) { - itemList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - itemListBuilder_.clear(); - } - sendTime_ = 0; - - expireTime_ = 0; - - importance_ = 0; - - isRead_ = false; - - isAttachmentGot_ = false; - - configId_ = 0; - - argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - stateValue_ = 0; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.MailDataOuterClass.internal_static_MailData_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailDataOuterClass.MailData getDefaultInstanceForType() { - return emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailDataOuterClass.MailData build() { - emu.grasscutter.net.proto.MailDataOuterClass.MailData result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailDataOuterClass.MailData buildPartial() { - emu.grasscutter.net.proto.MailDataOuterClass.MailData result = new emu.grasscutter.net.proto.MailDataOuterClass.MailData(this); - int from_bitField0_ = bitField0_; - result.mailId_ = mailId_; - if (mailTextContentBuilder_ == null) { - result.mailTextContent_ = mailTextContent_; - } else { - result.mailTextContent_ = mailTextContentBuilder_.build(); - } - if (itemListBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - itemList_ = java.util.Collections.unmodifiableList(itemList_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.itemList_ = itemList_; - } else { - result.itemList_ = itemListBuilder_.build(); - } - result.sendTime_ = sendTime_; - result.expireTime_ = expireTime_; - result.importance_ = importance_; - result.isRead_ = isRead_; - result.isAttachmentGot_ = isAttachmentGot_; - result.configId_ = configId_; - if (((bitField0_ & 0x00000002) != 0)) { - argumentList_ = argumentList_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.argumentList_ = argumentList_; - result.stateValue_ = stateValue_; - 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.MailDataOuterClass.MailData) { - return mergeFrom((emu.grasscutter.net.proto.MailDataOuterClass.MailData)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.MailDataOuterClass.MailData other) { - if (other == emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance()) return this; - if (other.getMailId() != 0) { - setMailId(other.getMailId()); - } - if (other.hasMailTextContent()) { - mergeMailTextContent(other.getMailTextContent()); - } - if (itemListBuilder_ == null) { - if (!other.itemList_.isEmpty()) { - if (itemList_.isEmpty()) { - itemList_ = other.itemList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureItemListIsMutable(); - itemList_.addAll(other.itemList_); - } - onChanged(); - } - } else { - if (!other.itemList_.isEmpty()) { - if (itemListBuilder_.isEmpty()) { - itemListBuilder_.dispose(); - itemListBuilder_ = null; - itemList_ = other.itemList_; - bitField0_ = (bitField0_ & ~0x00000001); - itemListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getItemListFieldBuilder() : null; - } else { - itemListBuilder_.addAllMessages(other.itemList_); - } - } - } - if (other.getSendTime() != 0) { - setSendTime(other.getSendTime()); - } - if (other.getExpireTime() != 0) { - setExpireTime(other.getExpireTime()); - } - if (other.getImportance() != 0) { - setImportance(other.getImportance()); - } - if (other.getIsRead() != false) { - setIsRead(other.getIsRead()); - } - if (other.getIsAttachmentGot() != false) { - setIsAttachmentGot(other.getIsAttachmentGot()); - } - if (other.getConfigId() != 0) { - setConfigId(other.getConfigId()); - } - if (!other.argumentList_.isEmpty()) { - if (argumentList_.isEmpty()) { - argumentList_ = other.argumentList_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureArgumentListIsMutable(); - argumentList_.addAll(other.argumentList_); - } - onChanged(); - } - if (other.getStateValue() != 0) { - setStateValue(other.getStateValue()); - } - 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.MailDataOuterClass.MailData parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.MailDataOuterClass.MailData) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private int mailId_ ; - /** - * <code>uint32 mailId = 1;</code> - * @return The mailId. - */ - @java.lang.Override - public int getMailId() { - return mailId_; - } - /** - * <code>uint32 mailId = 1;</code> - * @param value The mailId to set. - * @return This builder for chaining. - */ - public Builder setMailId(int value) { - - mailId_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 mailId = 1;</code> - * @return This builder for chaining. - */ - public Builder clearMailId() { - - mailId_ = 0; - onChanged(); - return this; - } - - private emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent mailTextContent_; - private com.google.protobuf.SingleFieldBuilderV3< - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder> mailTextContentBuilder_; - /** - * <code>.MailTextContent mailTextContent = 4;</code> - * @return Whether the mailTextContent field is set. - */ - public boolean hasMailTextContent() { - return mailTextContentBuilder_ != null || mailTextContent_ != null; - } - /** - * <code>.MailTextContent mailTextContent = 4;</code> - * @return The mailTextContent. - */ - public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getMailTextContent() { - if (mailTextContentBuilder_ == null) { - return mailTextContent_ == null ? emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance() : mailTextContent_; - } else { - return mailTextContentBuilder_.getMessage(); - } - } - /** - * <code>.MailTextContent mailTextContent = 4;</code> - */ - public Builder setMailTextContent(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent value) { - if (mailTextContentBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - mailTextContent_ = value; - onChanged(); - } else { - mailTextContentBuilder_.setMessage(value); - } - - return this; - } - /** - * <code>.MailTextContent mailTextContent = 4;</code> - */ - public Builder setMailTextContent( - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder builderForValue) { - if (mailTextContentBuilder_ == null) { - mailTextContent_ = builderForValue.build(); - onChanged(); - } else { - mailTextContentBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * <code>.MailTextContent mailTextContent = 4;</code> - */ - public Builder mergeMailTextContent(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent value) { - if (mailTextContentBuilder_ == null) { - if (mailTextContent_ != null) { - mailTextContent_ = - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.newBuilder(mailTextContent_).mergeFrom(value).buildPartial(); - } else { - mailTextContent_ = value; - } - onChanged(); - } else { - mailTextContentBuilder_.mergeFrom(value); - } - - return this; - } - /** - * <code>.MailTextContent mailTextContent = 4;</code> - */ - public Builder clearMailTextContent() { - if (mailTextContentBuilder_ == null) { - mailTextContent_ = null; - onChanged(); - } else { - mailTextContent_ = null; - mailTextContentBuilder_ = null; - } - - return this; - } - /** - * <code>.MailTextContent mailTextContent = 4;</code> - */ - public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder getMailTextContentBuilder() { - - onChanged(); - return getMailTextContentFieldBuilder().getBuilder(); - } - /** - * <code>.MailTextContent mailTextContent = 4;</code> - */ - public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder getMailTextContentOrBuilder() { - if (mailTextContentBuilder_ != null) { - return mailTextContentBuilder_.getMessageOrBuilder(); - } else { - return mailTextContent_ == null ? - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance() : mailTextContent_; - } - } - /** - * <code>.MailTextContent mailTextContent = 4;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3< - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder> - getMailTextContentFieldBuilder() { - if (mailTextContentBuilder_ == null) { - mailTextContentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder>( - getMailTextContent(), - getParentForChildren(), - isClean()); - mailTextContent_ = null; - } - return mailTextContentBuilder_; - } - - private java.util.List<emu.grasscutter.net.proto.MailItemOuterClass.MailItem> itemList_ = - java.util.Collections.emptyList(); - private void ensureItemListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.MailItemOuterClass.MailItem>(itemList_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.MailItemOuterClass.MailItem, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder, emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder> itemListBuilder_; - - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public java.util.List<emu.grasscutter.net.proto.MailItemOuterClass.MailItem> getItemListList() { - if (itemListBuilder_ == null) { - return java.util.Collections.unmodifiableList(itemList_); - } else { - return itemListBuilder_.getMessageList(); - } - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public int getItemListCount() { - if (itemListBuilder_ == null) { - return itemList_.size(); - } else { - return itemListBuilder_.getCount(); - } - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public emu.grasscutter.net.proto.MailItemOuterClass.MailItem getItemList(int index) { - if (itemListBuilder_ == null) { - return itemList_.get(index); - } else { - return itemListBuilder_.getMessage(index); - } - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public Builder setItemList( - int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem value) { - if (itemListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureItemListIsMutable(); - itemList_.set(index, value); - onChanged(); - } else { - itemListBuilder_.setMessage(index, value); - } - return this; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public Builder setItemList( - int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder builderForValue) { - if (itemListBuilder_ == null) { - ensureItemListIsMutable(); - itemList_.set(index, builderForValue.build()); - onChanged(); - } else { - itemListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public Builder addItemList(emu.grasscutter.net.proto.MailItemOuterClass.MailItem value) { - if (itemListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureItemListIsMutable(); - itemList_.add(value); - onChanged(); - } else { - itemListBuilder_.addMessage(value); - } - return this; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public Builder addItemList( - int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem value) { - if (itemListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureItemListIsMutable(); - itemList_.add(index, value); - onChanged(); - } else { - itemListBuilder_.addMessage(index, value); - } - return this; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public Builder addItemList( - emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder builderForValue) { - if (itemListBuilder_ == null) { - ensureItemListIsMutable(); - itemList_.add(builderForValue.build()); - onChanged(); - } else { - itemListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public Builder addItemList( - int index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder builderForValue) { - if (itemListBuilder_ == null) { - ensureItemListIsMutable(); - itemList_.add(index, builderForValue.build()); - onChanged(); - } else { - itemListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public Builder addAllItemList( - java.lang.Iterable<? extends emu.grasscutter.net.proto.MailItemOuterClass.MailItem> values) { - if (itemListBuilder_ == null) { - ensureItemListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, itemList_); - onChanged(); - } else { - itemListBuilder_.addAllMessages(values); - } - return this; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public Builder clearItemList() { - if (itemListBuilder_ == null) { - itemList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - itemListBuilder_.clear(); - } - return this; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public Builder removeItemList(int index) { - if (itemListBuilder_ == null) { - ensureItemListIsMutable(); - itemList_.remove(index); - onChanged(); - } else { - itemListBuilder_.remove(index); - } - return this; - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder getItemListBuilder( - int index) { - return getItemListFieldBuilder().getBuilder(index); - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder getItemListOrBuilder( - int index) { - if (itemListBuilder_ == null) { - return itemList_.get(index); } else { - return itemListBuilder_.getMessageOrBuilder(index); - } - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public java.util.List<? extends emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder> - getItemListOrBuilderList() { - if (itemListBuilder_ != null) { - return itemListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(itemList_); - } - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder addItemListBuilder() { - return getItemListFieldBuilder().addBuilder( - emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance()); - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder addItemListBuilder( - int index) { - return getItemListFieldBuilder().addBuilder( - index, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance()); - } - /** - * <code>repeated .MailItem itemList = 7;</code> - */ - public java.util.List<emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder> - getItemListBuilderList() { - return getItemListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.MailItemOuterClass.MailItem, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder, emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder> - getItemListFieldBuilder() { - if (itemListBuilder_ == null) { - itemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - emu.grasscutter.net.proto.MailItemOuterClass.MailItem, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder, emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder>( - itemList_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - itemList_ = null; - } - return itemListBuilder_; - } - - private int sendTime_ ; - /** - * <code>uint32 sendTime = 8;</code> - * @return The sendTime. - */ - @java.lang.Override - public int getSendTime() { - return sendTime_; - } - /** - * <code>uint32 sendTime = 8;</code> - * @param value The sendTime to set. - * @return This builder for chaining. - */ - public Builder setSendTime(int value) { - - sendTime_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 sendTime = 8;</code> - * @return This builder for chaining. - */ - public Builder clearSendTime() { - - sendTime_ = 0; - onChanged(); - return this; - } - - private int expireTime_ ; - /** - * <code>uint32 expireTime = 9;</code> - * @return The expireTime. - */ - @java.lang.Override - public int getExpireTime() { - return expireTime_; - } - /** - * <code>uint32 expireTime = 9;</code> - * @param value The expireTime to set. - * @return This builder for chaining. - */ - public Builder setExpireTime(int value) { - - expireTime_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 expireTime = 9;</code> - * @return This builder for chaining. - */ - public Builder clearExpireTime() { - - expireTime_ = 0; - onChanged(); - return this; - } - - private int importance_ ; - /** - * <code>uint32 importance = 10;</code> - * @return The importance. - */ - @java.lang.Override - public int getImportance() { - return importance_; - } - /** - * <code>uint32 importance = 10;</code> - * @param value The importance to set. - * @return This builder for chaining. - */ - public Builder setImportance(int value) { - - importance_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 importance = 10;</code> - * @return This builder for chaining. - */ - public Builder clearImportance() { - - importance_ = 0; - onChanged(); - return this; - } - - private boolean isRead_ ; - /** - * <code>bool isRead = 11;</code> - * @return The isRead. - */ - @java.lang.Override - public boolean getIsRead() { - return isRead_; - } - /** - * <code>bool isRead = 11;</code> - * @param value The isRead to set. - * @return This builder for chaining. - */ - public Builder setIsRead(boolean value) { - - isRead_ = value; - onChanged(); - return this; - } - /** - * <code>bool isRead = 11;</code> - * @return This builder for chaining. - */ - public Builder clearIsRead() { - - isRead_ = false; - onChanged(); - return this; - } - - private boolean isAttachmentGot_ ; - /** - * <code>bool isAttachmentGot = 12;</code> - * @return The isAttachmentGot. - */ - @java.lang.Override - public boolean getIsAttachmentGot() { - return isAttachmentGot_; - } - /** - * <code>bool isAttachmentGot = 12;</code> - * @param value The isAttachmentGot to set. - * @return This builder for chaining. - */ - public Builder setIsAttachmentGot(boolean value) { - - isAttachmentGot_ = value; - onChanged(); - return this; - } - /** - * <code>bool isAttachmentGot = 12;</code> - * @return This builder for chaining. - */ - public Builder clearIsAttachmentGot() { - - isAttachmentGot_ = false; - onChanged(); - return this; - } - - private int configId_ ; - /** - * <code>uint32 configId = 13;</code> - * @return The configId. - */ - @java.lang.Override - public int getConfigId() { - return configId_; - } - /** - * <code>uint32 configId = 13;</code> - * @param value The configId to set. - * @return This builder for chaining. - */ - public Builder setConfigId(int value) { - - configId_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 configId = 13;</code> - * @return This builder for chaining. - */ - public Builder clearConfigId() { - - configId_ = 0; - onChanged(); - return this; - } - - private com.google.protobuf.LazyStringList argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureArgumentListIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - argumentList_ = new com.google.protobuf.LazyStringArrayList(argumentList_); - bitField0_ |= 0x00000002; - } - } - /** - * <code>repeated string argumentList = 14;</code> - * @return A list containing the argumentList. - */ - public com.google.protobuf.ProtocolStringList - getArgumentListList() { - return argumentList_.getUnmodifiableView(); - } - /** - * <code>repeated string argumentList = 14;</code> - * @return The count of argumentList. - */ - public int getArgumentListCount() { - return argumentList_.size(); - } - /** - * <code>repeated string argumentList = 14;</code> - * @param index The index of the element to return. - * @return The argumentList at the given index. - */ - public java.lang.String getArgumentList(int index) { - return argumentList_.get(index); - } - /** - * <code>repeated string argumentList = 14;</code> - * @param index The index of the value to return. - * @return The bytes of the argumentList at the given index. - */ - public com.google.protobuf.ByteString - getArgumentListBytes(int index) { - return argumentList_.getByteString(index); - } - /** - * <code>repeated string argumentList = 14;</code> - * @param index The index to set the value at. - * @param value The argumentList to set. - * @return This builder for chaining. - */ - public Builder setArgumentList( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureArgumentListIsMutable(); - argumentList_.set(index, value); - onChanged(); - return this; - } - /** - * <code>repeated string argumentList = 14;</code> - * @param value The argumentList to add. - * @return This builder for chaining. - */ - public Builder addArgumentList( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureArgumentListIsMutable(); - argumentList_.add(value); - onChanged(); - return this; - } - /** - * <code>repeated string argumentList = 14;</code> - * @param values The argumentList to add. - * @return This builder for chaining. - */ - public Builder addAllArgumentList( - java.lang.Iterable<java.lang.String> values) { - ensureArgumentListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, argumentList_); - onChanged(); - return this; - } - /** - * <code>repeated string argumentList = 14;</code> - * @return This builder for chaining. - */ - public Builder clearArgumentList() { - argumentList_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * <code>repeated string argumentList = 14;</code> - * @param value The bytes of the argumentList to add. - * @return This builder for chaining. - */ - public Builder addArgumentListBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ensureArgumentListIsMutable(); - argumentList_.add(value); - onChanged(); - return this; - } - - private int stateValue_ ; - /** - * <code>uint32 stateValue = 15;</code> - * @return The stateValue. - */ - @java.lang.Override - public int getStateValue() { - return stateValue_; - } - /** - * <code>uint32 stateValue = 15;</code> - * @param value The stateValue to set. - * @return This builder for chaining. - */ - public Builder setStateValue(int value) { - - stateValue_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 stateValue = 15;</code> - * @return This builder for chaining. - */ - public Builder clearStateValue() { - - stateValue_ = 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:MailData) - } - - // @@protoc_insertion_point(class_scope:MailData) - private static final emu.grasscutter.net.proto.MailDataOuterClass.MailData DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailDataOuterClass.MailData(); - } - - public static emu.grasscutter.net.proto.MailDataOuterClass.MailData getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<MailData> - PARSER = new com.google.protobuf.AbstractParser<MailData>() { - @java.lang.Override - public MailData parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new MailData(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<MailData> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<MailData> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailDataOuterClass.MailData getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_MailData_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_MailData_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\016MailData.proto\032\025MailTextContent.proto\032" + - "\016MailItem.proto\"\201\002\n\010MailData\022\016\n\006mailId\030\001" + - " \001(\r\022)\n\017mailTextContent\030\004 \001(\0132\020.MailText" + - "Content\022\033\n\010itemList\030\007 \003(\0132\t.MailItem\022\020\n\010" + - "sendTime\030\010 \001(\r\022\022\n\nexpireTime\030\t \001(\r\022\022\n\nim" + - "portance\030\n \001(\r\022\016\n\006isRead\030\013 \001(\010\022\027\n\017isAtta" + - "chmentGot\030\014 \001(\010\022\020\n\010configId\030\r \001(\r\022\024\n\014arg" + - "umentList\030\016 \003(\t\022\022\n\nstateValue\030\017 \001(\rB\033\n\031e" + - "mu.grasscutter.net.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - emu.grasscutter.net.proto.MailTextContentOuterClass.getDescriptor(), - emu.grasscutter.net.proto.MailItemOuterClass.getDescriptor(), - }); - internal_static_MailData_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_MailData_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_MailData_descriptor, - new java.lang.String[] { "MailId", "MailTextContent", "ItemList", "SendTime", "ExpireTime", "Importance", "IsRead", "IsAttachmentGot", "ConfigId", "ArgumentList", "StateValue", }); - emu.grasscutter.net.proto.MailTextContentOuterClass.getDescriptor(); - emu.grasscutter.net.proto.MailItemOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java deleted file mode 100644 index 9298bb251..000000000 --- a/src/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java +++ /dev/null @@ -1,880 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: MailItem.proto - -package emu.grasscutter.net.proto; - -public final class MailItemOuterClass { - private MailItemOuterClass() {} - 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 MailItemOrBuilder extends - // @@protoc_insertion_point(interface_extends:MailItem) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>.ItemParam itemParam = 1;</code> - * @return Whether the itemParam field is set. - */ - boolean hasItemParam(); - /** - * <code>.ItemParam itemParam = 1;</code> - * @return The itemParam. - */ - emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemParam(); - /** - * <code>.ItemParam itemParam = 1;</code> - */ - emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemParamOrBuilder(); - - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - * @return Whether the deleteInfo field is set. - */ - boolean hasDeleteInfo(); - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - * @return The deleteInfo. - */ - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo getDeleteInfo(); - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - */ - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder getDeleteInfoOrBuilder(); - } - /** - * Protobuf type {@code MailItem} - */ - public static final class MailItem extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:MailItem) - MailItemOrBuilder { - private static final long serialVersionUID = 0L; - // Use MailItem.newBuilder() to construct. - private MailItem(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private MailItem() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new MailItem(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private MailItem( - 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 10: { - emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder subBuilder = null; - if (itemParam_ != null) { - subBuilder = itemParam_.toBuilder(); - } - itemParam_ = input.readMessage(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(itemParam_); - itemParam_ = subBuilder.buildPartial(); - } - - break; - } - case 18: { - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder subBuilder = null; - if (deleteInfo_ != null) { - subBuilder = deleteInfo_.toBuilder(); - } - deleteInfo_ = input.readMessage(emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deleteInfo_); - deleteInfo_ = subBuilder.buildPartial(); - } - - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().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.MailItemOuterClass.internal_static_MailItem_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.MailItemOuterClass.MailItem.class, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder.class); - } - - public static final int ITEMPARAM_FIELD_NUMBER = 1; - private emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam itemParam_; - /** - * <code>.ItemParam itemParam = 1;</code> - * @return Whether the itemParam field is set. - */ - @java.lang.Override - public boolean hasItemParam() { - return itemParam_ != null; - } - /** - * <code>.ItemParam itemParam = 1;</code> - * @return The itemParam. - */ - @java.lang.Override - public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemParam() { - return itemParam_ == null ? emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance() : itemParam_; - } - /** - * <code>.ItemParam itemParam = 1;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemParamOrBuilder() { - return getItemParam(); - } - - public static final int DELETEINFO_FIELD_NUMBER = 2; - private emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo deleteInfo_; - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - * @return Whether the deleteInfo field is set. - */ - @java.lang.Override - public boolean hasDeleteInfo() { - return deleteInfo_ != null; - } - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - * @return The deleteInfo. - */ - @java.lang.Override - public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo getDeleteInfo() { - return deleteInfo_ == null ? emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.getDefaultInstance() : deleteInfo_; - } - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - */ - @java.lang.Override - public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder getDeleteInfoOrBuilder() { - return getDeleteInfo(); - } - - 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 (itemParam_ != null) { - output.writeMessage(1, getItemParam()); - } - if (deleteInfo_ != null) { - output.writeMessage(2, getDeleteInfo()); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (itemParam_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getItemParam()); - } - if (deleteInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getDeleteInfo()); - } - 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.MailItemOuterClass.MailItem)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.MailItemOuterClass.MailItem other = (emu.grasscutter.net.proto.MailItemOuterClass.MailItem) obj; - - if (hasItemParam() != other.hasItemParam()) return false; - if (hasItemParam()) { - if (!getItemParam() - .equals(other.getItemParam())) return false; - } - if (hasDeleteInfo() != other.hasDeleteInfo()) return false; - if (hasDeleteInfo()) { - if (!getDeleteInfo() - .equals(other.getDeleteInfo())) 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(); - if (hasItemParam()) { - hash = (37 * hash) + ITEMPARAM_FIELD_NUMBER; - hash = (53 * hash) + getItemParam().hashCode(); - } - if (hasDeleteInfo()) { - hash = (37 * hash) + DELETEINFO_FIELD_NUMBER; - hash = (53 * hash) + getDeleteInfo().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem 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.MailItemOuterClass.MailItem prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code MailItem} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:MailItem) - emu.grasscutter.net.proto.MailItemOuterClass.MailItemOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.MailItemOuterClass.MailItem.class, emu.grasscutter.net.proto.MailItemOuterClass.MailItem.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.MailItemOuterClass.MailItem.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(); - if (itemParamBuilder_ == null) { - itemParam_ = null; - } else { - itemParam_ = null; - itemParamBuilder_ = null; - } - if (deleteInfoBuilder_ == null) { - deleteInfo_ = null; - } else { - deleteInfo_ = null; - deleteInfoBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.MailItemOuterClass.internal_static_MailItem_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailItemOuterClass.MailItem getDefaultInstanceForType() { - return emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailItemOuterClass.MailItem build() { - emu.grasscutter.net.proto.MailItemOuterClass.MailItem result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailItemOuterClass.MailItem buildPartial() { - emu.grasscutter.net.proto.MailItemOuterClass.MailItem result = new emu.grasscutter.net.proto.MailItemOuterClass.MailItem(this); - if (itemParamBuilder_ == null) { - result.itemParam_ = itemParam_; - } else { - result.itemParam_ = itemParamBuilder_.build(); - } - if (deleteInfoBuilder_ == null) { - result.deleteInfo_ = deleteInfo_; - } else { - result.deleteInfo_ = deleteInfoBuilder_.build(); - } - 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.MailItemOuterClass.MailItem) { - return mergeFrom((emu.grasscutter.net.proto.MailItemOuterClass.MailItem)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.MailItemOuterClass.MailItem other) { - if (other == emu.grasscutter.net.proto.MailItemOuterClass.MailItem.getDefaultInstance()) return this; - if (other.hasItemParam()) { - mergeItemParam(other.getItemParam()); - } - if (other.hasDeleteInfo()) { - mergeDeleteInfo(other.getDeleteInfo()); - } - 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.MailItemOuterClass.MailItem parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.MailItemOuterClass.MailItem) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam itemParam_; - private com.google.protobuf.SingleFieldBuilderV3< - emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> itemParamBuilder_; - /** - * <code>.ItemParam itemParam = 1;</code> - * @return Whether the itemParam field is set. - */ - public boolean hasItemParam() { - return itemParamBuilder_ != null || itemParam_ != null; - } - /** - * <code>.ItemParam itemParam = 1;</code> - * @return The itemParam. - */ - public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemParam() { - if (itemParamBuilder_ == null) { - return itemParam_ == null ? emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance() : itemParam_; - } else { - return itemParamBuilder_.getMessage(); - } - } - /** - * <code>.ItemParam itemParam = 1;</code> - */ - public Builder setItemParam(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) { - if (itemParamBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - itemParam_ = value; - onChanged(); - } else { - itemParamBuilder_.setMessage(value); - } - - return this; - } - /** - * <code>.ItemParam itemParam = 1;</code> - */ - public Builder setItemParam( - emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) { - if (itemParamBuilder_ == null) { - itemParam_ = builderForValue.build(); - onChanged(); - } else { - itemParamBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * <code>.ItemParam itemParam = 1;</code> - */ - public Builder mergeItemParam(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) { - if (itemParamBuilder_ == null) { - if (itemParam_ != null) { - itemParam_ = - emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.newBuilder(itemParam_).mergeFrom(value).buildPartial(); - } else { - itemParam_ = value; - } - onChanged(); - } else { - itemParamBuilder_.mergeFrom(value); - } - - return this; - } - /** - * <code>.ItemParam itemParam = 1;</code> - */ - public Builder clearItemParam() { - if (itemParamBuilder_ == null) { - itemParam_ = null; - onChanged(); - } else { - itemParam_ = null; - itemParamBuilder_ = null; - } - - return this; - } - /** - * <code>.ItemParam itemParam = 1;</code> - */ - public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder getItemParamBuilder() { - - onChanged(); - return getItemParamFieldBuilder().getBuilder(); - } - /** - * <code>.ItemParam itemParam = 1;</code> - */ - public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemParamOrBuilder() { - if (itemParamBuilder_ != null) { - return itemParamBuilder_.getMessageOrBuilder(); - } else { - return itemParam_ == null ? - emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance() : itemParam_; - } - } - /** - * <code>.ItemParam itemParam = 1;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3< - emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> - getItemParamFieldBuilder() { - if (itemParamBuilder_ == null) { - itemParamBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>( - getItemParam(), - getParentForChildren(), - isClean()); - itemParam_ = null; - } - return itemParamBuilder_; - } - - private emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo deleteInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder> deleteInfoBuilder_; - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - * @return Whether the deleteInfo field is set. - */ - public boolean hasDeleteInfo() { - return deleteInfoBuilder_ != null || deleteInfo_ != null; - } - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - * @return The deleteInfo. - */ - public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo getDeleteInfo() { - if (deleteInfoBuilder_ == null) { - return deleteInfo_ == null ? emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.getDefaultInstance() : deleteInfo_; - } else { - return deleteInfoBuilder_.getMessage(); - } - } - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - */ - public Builder setDeleteInfo(emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo value) { - if (deleteInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - deleteInfo_ = value; - onChanged(); - } else { - deleteInfoBuilder_.setMessage(value); - } - - return this; - } - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - */ - public Builder setDeleteInfo( - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder builderForValue) { - if (deleteInfoBuilder_ == null) { - deleteInfo_ = builderForValue.build(); - onChanged(); - } else { - deleteInfoBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - */ - public Builder mergeDeleteInfo(emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo value) { - if (deleteInfoBuilder_ == null) { - if (deleteInfo_ != null) { - deleteInfo_ = - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.newBuilder(deleteInfo_).mergeFrom(value).buildPartial(); - } else { - deleteInfo_ = value; - } - onChanged(); - } else { - deleteInfoBuilder_.mergeFrom(value); - } - - return this; - } - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - */ - public Builder clearDeleteInfo() { - if (deleteInfoBuilder_ == null) { - deleteInfo_ = null; - onChanged(); - } else { - deleteInfo_ = null; - deleteInfoBuilder_ = null; - } - - return this; - } - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - */ - public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder getDeleteInfoBuilder() { - - onChanged(); - return getDeleteInfoFieldBuilder().getBuilder(); - } - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - */ - public emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder getDeleteInfoOrBuilder() { - if (deleteInfoBuilder_ != null) { - return deleteInfoBuilder_.getMessageOrBuilder(); - } else { - return deleteInfo_ == null ? - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.getDefaultInstance() : deleteInfo_; - } - } - /** - * <code>.MaterialDeleteInfo deleteInfo = 2;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3< - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder> - getDeleteInfoFieldBuilder() { - if (deleteInfoBuilder_ == null) { - deleteInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfo.Builder, emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.MaterialDeleteInfoOrBuilder>( - getDeleteInfo(), - getParentForChildren(), - isClean()); - deleteInfo_ = null; - } - return deleteInfoBuilder_; - } - @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:MailItem) - } - - // @@protoc_insertion_point(class_scope:MailItem) - private static final emu.grasscutter.net.proto.MailItemOuterClass.MailItem DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailItemOuterClass.MailItem(); - } - - public static emu.grasscutter.net.proto.MailItemOuterClass.MailItem getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<MailItem> - PARSER = new com.google.protobuf.AbstractParser<MailItem>() { - @java.lang.Override - public MailItem parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new MailItem(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<MailItem> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<MailItem> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailItemOuterClass.MailItem getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_MailItem_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_MailItem_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\016MailItem.proto\032\017ItemParam.proto\032\030Mater" + - "ialDeleteInfo.proto\"R\n\010MailItem\022\035\n\titemP" + - "aram\030\001 \001(\0132\n.ItemParam\022\'\n\ndeleteInfo\030\002 \001" + - "(\0132\023.MaterialDeleteInfoB\033\n\031emu.grasscutt" + - "er.net.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor(), - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.getDescriptor(), - }); - internal_static_MailItem_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_MailItem_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_MailItem_descriptor, - new java.lang.String[] { "ItemParam", "DeleteInfo", }); - emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor(); - emu.grasscutter.net.proto.MaterialDeleteInfoOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java b/src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java deleted file mode 100644 index 869011ffa..000000000 --- a/src/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java +++ /dev/null @@ -1,919 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: MailTextContent.proto - -package emu.grasscutter.net.proto; - -public final class MailTextContentOuterClass { - private MailTextContentOuterClass() {} - 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 MailTextContentOrBuilder extends - // @@protoc_insertion_point(interface_extends:MailTextContent) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>string title = 1;</code> - * @return The title. - */ - java.lang.String getTitle(); - /** - * <code>string title = 1;</code> - * @return The bytes for title. - */ - com.google.protobuf.ByteString - getTitleBytes(); - - /** - * <code>string content = 2;</code> - * @return The content. - */ - java.lang.String getContent(); - /** - * <code>string content = 2;</code> - * @return The bytes for content. - */ - com.google.protobuf.ByteString - getContentBytes(); - - /** - * <code>string sender = 3;</code> - * @return The sender. - */ - java.lang.String getSender(); - /** - * <code>string sender = 3;</code> - * @return The bytes for sender. - */ - com.google.protobuf.ByteString - getSenderBytes(); - } - /** - * Protobuf type {@code MailTextContent} - */ - public static final class MailTextContent extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:MailTextContent) - MailTextContentOrBuilder { - private static final long serialVersionUID = 0L; - // Use MailTextContent.newBuilder() to construct. - private MailTextContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private MailTextContent() { - title_ = ""; - content_ = ""; - sender_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new MailTextContent(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private MailTextContent( - 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 10: { - java.lang.String s = input.readStringRequireUtf8(); - - title_ = s; - break; - } - case 18: { - java.lang.String s = input.readStringRequireUtf8(); - - content_ = s; - break; - } - case 26: { - java.lang.String s = input.readStringRequireUtf8(); - - sender_ = s; - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().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.MailTextContentOuterClass.internal_static_MailTextContent_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.class, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder.class); - } - - public static final int TITLE_FIELD_NUMBER = 1; - private volatile java.lang.Object title_; - /** - * <code>string title = 1;</code> - * @return The title. - */ - @java.lang.Override - public java.lang.String getTitle() { - java.lang.Object ref = title_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - title_ = s; - return s; - } - } - /** - * <code>string title = 1;</code> - * @return The bytes for title. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getTitleBytes() { - java.lang.Object ref = title_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - title_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int CONTENT_FIELD_NUMBER = 2; - private volatile java.lang.Object content_; - /** - * <code>string content = 2;</code> - * @return The content. - */ - @java.lang.Override - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } - } - /** - * <code>string content = 2;</code> - * @return The bytes for content. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int SENDER_FIELD_NUMBER = 3; - private volatile java.lang.Object sender_; - /** - * <code>string sender = 3;</code> - * @return The sender. - */ - @java.lang.Override - public java.lang.String getSender() { - java.lang.Object ref = sender_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - sender_ = s; - return s; - } - } - /** - * <code>string sender = 3;</code> - * @return The bytes for sender. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSenderBytes() { - java.lang.Object ref = sender_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sender_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - 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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, title_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sender_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, sender_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, title_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sender_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, sender_); - } - 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.MailTextContentOuterClass.MailTextContent)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent other = (emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent) obj; - - if (!getTitle() - .equals(other.getTitle())) return false; - if (!getContent() - .equals(other.getContent())) return false; - if (!getSender() - .equals(other.getSender())) 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) + TITLE_FIELD_NUMBER; - hash = (53 * hash) + getTitle().hashCode(); - hash = (37 * hash) + CONTENT_FIELD_NUMBER; - hash = (53 * hash) + getContent().hashCode(); - hash = (37 * hash) + SENDER_FIELD_NUMBER; - hash = (53 * hash) + getSender().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent 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.MailTextContentOuterClass.MailTextContent prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code MailTextContent} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:MailTextContent) - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContentOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.class, emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.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(); - title_ = ""; - - content_ = ""; - - sender_ = ""; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.MailTextContentOuterClass.internal_static_MailTextContent_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getDefaultInstanceForType() { - return emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent build() { - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent buildPartial() { - emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent result = new emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent(this); - result.title_ = title_; - result.content_ = content_; - result.sender_ = sender_; - 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.MailTextContentOuterClass.MailTextContent) { - return mergeFrom((emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent other) { - if (other == emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent.getDefaultInstance()) return this; - if (!other.getTitle().isEmpty()) { - title_ = other.title_; - onChanged(); - } - if (!other.getContent().isEmpty()) { - content_ = other.content_; - onChanged(); - } - if (!other.getSender().isEmpty()) { - sender_ = other.sender_; - 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.MailTextContentOuterClass.MailTextContent parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private java.lang.Object title_ = ""; - /** - * <code>string title = 1;</code> - * @return The title. - */ - public java.lang.String getTitle() { - java.lang.Object ref = title_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - title_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * <code>string title = 1;</code> - * @return The bytes for title. - */ - public com.google.protobuf.ByteString - getTitleBytes() { - java.lang.Object ref = title_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - title_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * <code>string title = 1;</code> - * @param value The title to set. - * @return This builder for chaining. - */ - public Builder setTitle( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - title_ = value; - onChanged(); - return this; - } - /** - * <code>string title = 1;</code> - * @return This builder for chaining. - */ - public Builder clearTitle() { - - title_ = getDefaultInstance().getTitle(); - onChanged(); - return this; - } - /** - * <code>string title = 1;</code> - * @param value The bytes for title to set. - * @return This builder for chaining. - */ - public Builder setTitleBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - title_ = value; - onChanged(); - return this; - } - - private java.lang.Object content_ = ""; - /** - * <code>string content = 2;</code> - * @return The content. - */ - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * <code>string content = 2;</code> - * @return The bytes for content. - */ - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * <code>string content = 2;</code> - * @param value The content to set. - * @return This builder for chaining. - */ - public Builder setContent( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - content_ = value; - onChanged(); - return this; - } - /** - * <code>string content = 2;</code> - * @return This builder for chaining. - */ - public Builder clearContent() { - - content_ = getDefaultInstance().getContent(); - onChanged(); - return this; - } - /** - * <code>string content = 2;</code> - * @param value The bytes for content to set. - * @return This builder for chaining. - */ - public Builder setContentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - content_ = value; - onChanged(); - return this; - } - - private java.lang.Object sender_ = ""; - /** - * <code>string sender = 3;</code> - * @return The sender. - */ - public java.lang.String getSender() { - java.lang.Object ref = sender_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - sender_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * <code>string sender = 3;</code> - * @return The bytes for sender. - */ - public com.google.protobuf.ByteString - getSenderBytes() { - java.lang.Object ref = sender_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sender_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * <code>string sender = 3;</code> - * @param value The sender to set. - * @return This builder for chaining. - */ - public Builder setSender( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - sender_ = value; - onChanged(); - return this; - } - /** - * <code>string sender = 3;</code> - * @return This builder for chaining. - */ - public Builder clearSender() { - - sender_ = getDefaultInstance().getSender(); - onChanged(); - return this; - } - /** - * <code>string sender = 3;</code> - * @param value The bytes for sender to set. - * @return This builder for chaining. - */ - public Builder setSenderBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - sender_ = value; - 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:MailTextContent) - } - - // @@protoc_insertion_point(class_scope:MailTextContent) - private static final emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent(); - } - - public static emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<MailTextContent> - PARSER = new com.google.protobuf.AbstractParser<MailTextContent>() { - @java.lang.Override - public MailTextContent parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new MailTextContent(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<MailTextContent> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<MailTextContent> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_MailTextContent_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_MailTextContent_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\025MailTextContent.proto\"A\n\017MailTextConte" + - "nt\022\r\n\005title\030\001 \001(\t\022\017\n\007content\030\002 \001(\t\022\016\n\006se" + - "nder\030\003 \001(\tB\033\n\031emu.grasscutter.net.protob" + - "\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_MailTextContent_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_MailTextContent_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_MailTextContent_descriptor, - new java.lang.String[] { "Title", "Content", "Sender", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java b/src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java deleted file mode 100644 index cf4ef50ca..000000000 --- a/src/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java +++ /dev/null @@ -1,665 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: ReadMailNotify.proto - -package emu.grasscutter.net.proto; - -public final class ReadMailNotifyOuterClass { - private ReadMailNotifyOuterClass() {} - 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 ReadMailNotifyOrBuilder extends - // @@protoc_insertion_point(interface_extends:ReadMailNotify) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - java.util.List<java.lang.Integer> getMailIdListList(); - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - int getMailIdListCount(); - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - int getMailIdList(int index); - } - /** - * Protobuf type {@code ReadMailNotify} - */ - public static final class ReadMailNotify extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:ReadMailNotify) - ReadMailNotifyOrBuilder { - private static final long serialVersionUID = 0L; - // Use ReadMailNotify.newBuilder() to construct. - private ReadMailNotify(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private ReadMailNotify() { - mailIdList_ = emptyIntList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new ReadMailNotify(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ReadMailNotify( - 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 8: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - mailIdList_.addInt(input.readUInt32()); - break; - } - case 10: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { - mailIdList_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - while (input.getBytesUntilLimit() > 0) { - mailIdList_.addInt(input.readUInt32()); - } - input.popLimit(limit); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); // C - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.class, emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.Builder.class); - } - - public static final int MAILIDLIST_FIELD_NUMBER = 1; - private com.google.protobuf.Internal.IntList mailIdList_; - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - @java.lang.Override - public java.util.List<java.lang.Integer> - getMailIdListList() { - return mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - private int mailIdListMemoizedSerializedSize = -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 (getMailIdListList().size() > 0) { - output.writeUInt32NoTag(10); - output.writeUInt32NoTag(mailIdListMemoizedSerializedSize); - } - for (int i = 0; i < mailIdList_.size(); i++) { - output.writeUInt32NoTag(mailIdList_.getInt(i)); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - { - int dataSize = 0; - for (int i = 0; i < mailIdList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt32SizeNoTag(mailIdList_.getInt(i)); - } - size += dataSize; - if (!getMailIdListList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - mailIdListMemoizedSerializedSize = dataSize; - } - 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.ReadMailNotifyOuterClass.ReadMailNotify)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify other = (emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify) obj; - - if (!getMailIdListList() - .equals(other.getMailIdListList())) 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(); - if (getMailIdListCount() > 0) { - hash = (37 * hash) + MAILIDLIST_FIELD_NUMBER; - hash = (53 * hash) + getMailIdListList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify 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.ReadMailNotifyOuterClass.ReadMailNotify prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code ReadMailNotify} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:ReadMailNotify) - emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotifyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.class, emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.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(); - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.internal_static_ReadMailNotify_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify getDefaultInstanceForType() { - return emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify build() { - emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify buildPartial() { - emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify result = new emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify(this); - int from_bitField0_ = bitField0_; - if (((bitField0_ & 0x00000001) != 0)) { - mailIdList_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.mailIdList_ = mailIdList_; - 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.ReadMailNotifyOuterClass.ReadMailNotify) { - return mergeFrom((emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify other) { - if (other == emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify.getDefaultInstance()) return this; - if (!other.mailIdList_.isEmpty()) { - if (mailIdList_.isEmpty()) { - mailIdList_ = other.mailIdList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureMailIdListIsMutable(); - mailIdList_.addAll(other.mailIdList_); - } - 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.ReadMailNotifyOuterClass.ReadMailNotify parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private com.google.protobuf.Internal.IntList mailIdList_ = emptyIntList(); - private void ensureMailIdListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - mailIdList_ = mutableCopy(mailIdList_); - bitField0_ |= 0x00000001; - } - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return A list containing the mailIdList. - */ - public java.util.List<java.lang.Integer> - getMailIdListList() { - return ((bitField0_ & 0x00000001) != 0) ? - java.util.Collections.unmodifiableList(mailIdList_) : mailIdList_; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return The count of mailIdList. - */ - public int getMailIdListCount() { - return mailIdList_.size(); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index of the element to return. - * @return The mailIdList at the given index. - */ - public int getMailIdList(int index) { - return mailIdList_.getInt(index); - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param index The index to set the value at. - * @param value The mailIdList to set. - * @return This builder for chaining. - */ - public Builder setMailIdList( - int index, int value) { - ensureMailIdListIsMutable(); - mailIdList_.setInt(index, value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param value The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addMailIdList(int value) { - ensureMailIdListIsMutable(); - mailIdList_.addInt(value); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @param values The mailIdList to add. - * @return This builder for chaining. - */ - public Builder addAllMailIdList( - java.lang.Iterable<? extends java.lang.Integer> values) { - ensureMailIdListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, mailIdList_); - onChanged(); - return this; - } - /** - * <code>repeated uint32 mailIdList = 1;</code> - * @return This builder for chaining. - */ - public Builder clearMailIdList() { - mailIdList_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - 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:ReadMailNotify) - } - - // @@protoc_insertion_point(class_scope:ReadMailNotify) - private static final emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify(); - } - - public static emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<ReadMailNotify> - PARSER = new com.google.protobuf.AbstractParser<ReadMailNotify>() { - @java.lang.Override - public ReadMailNotify parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ReadMailNotify(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<ReadMailNotify> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<ReadMailNotify> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.ReadMailNotifyOuterClass.ReadMailNotify getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_ReadMailNotify_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_ReadMailNotify_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\024ReadMailNotify.proto\"$\n\016ReadMailNotify" + - "\022\022\n\nmailIdList\030\001 \003(\rB\033\n\031emu.grasscutter." + - "net.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_ReadMailNotify_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_ReadMailNotify_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_ReadMailNotify_descriptor, - new java.lang.String[] { "MailIdList", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index 8033ed0ad..1185a0df5 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -41,11 +41,8 @@ public class PacketGetAllMailRsp extends GenshinPacket { for (Mail message : player.getAllMail()) { if(message.stateValue == 1) { // Make sure it isn't a gift - Grasscutter.getLogger().info("a"); if (message.expireTime > (int) Instant.now().getEpochSecond()) { // Make sure the message isn't expired (The game won't show expired mail, but I don't want to send unnecessary information). - Grasscutter.getLogger().info("b"); if(mailDataList.size() <= 1000) { // Make sure that there isn't over 1000 messages in the mailbox. (idk what will happen if there is but the game probably won't like it.) - Grasscutter.getLogger().info("c"); MailTextContent.Builder mailTextContent = MailTextContent.newBuilder(); mailTextContent.setTitle(message.mailContent.title); mailTextContent.setContent(message.mailContent.content); From e4899034b2fa38dc6a37edf750c895dd1548c02a Mon Sep 17 00:00:00 2001 From: Benjamin Elsdon <benjamin7006@gmail.com> Date: Wed, 27 Apr 2022 09:03:26 +0800 Subject: [PATCH 27/40] GenshinPlayer fix (for two issues) and updated sendmail with Magix's suggestions --- .../command/commands/SendMailCommand.java | 85 ++++++++++--------- .../emu/grasscutter/game/GenshinPlayer.java | 25 +----- .../PacketPlayerApplyEnterMpResultNotify.java | 3 +- 3 files changed, 49 insertions(+), 64 deletions(-) diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java index d8f0fd542..7973bafbe 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -37,16 +37,15 @@ public class SendMailCommand implements CommandHandler { if (!mailBeingConstructed.containsKey(senderId)) { switch (args.size()) { - case 1: + case 1 -> { MailBuilder mailBuilder; switch (args.get(0).toLowerCase()) { - case "help": + case "help" -> { CommandHandler.sendMessage(sender, this.getClass().getAnnotation(Command.class).description() + "\nUsage: " + this.getClass().getAnnotation(Command.class).usage()); return; - case "all": - mailBuilder = new MailBuilder(true, new Mail()); - break; - default: + } + case "all" -> mailBuilder = new MailBuilder(true, new Mail()); + default -> { if (DatabaseHelper.getPlayerById(Integer.parseInt(args.get(0))) != null) { mailBuilder = new MailBuilder(Integer.parseInt(args.get(0)), new Mail()); break; @@ -54,29 +53,27 @@ public class SendMailCommand implements CommandHandler { CommandHandler.sendMessage(sender, "The user with an id of '" + args.get(0) + "' does not exist"); return; } + } } mailBeingConstructed.put(senderId, mailBuilder); CommandHandler.sendMessage(sender, "Starting composition of message.\nPlease use `/sendmail <title>` to continue.\nYou can use `/sendmail stop` at any time"); - break; - case 2: - CommandHandler.sendMessage(sender, "Mail templates coming soon implemented..."); - return; - default: - CommandHandler.sendMessage(sender, "Invalid arguments.\nUsage `/sendmail <userId|all|help> [templateId]`"); - return; + } + case 2 -> CommandHandler.sendMessage(sender, "Mail templates coming soon implemented..."); + default -> CommandHandler.sendMessage(sender, "Invalid arguments.\nUsage `/sendmail <userId|all|help> [templateId]`"); } } else { MailBuilder mailBuilder = mailBeingConstructed.get(senderId); if (args.size() >= 1) { switch (args.get(0).toLowerCase()) { - case "stop": + case "stop" -> { mailBeingConstructed.remove(senderId); CommandHandler.sendMessage(sender, "Message sending cancelled"); return; - case "finish": + } + case "finish" -> { if (mailBuilder.constructionStage == 3) { - if(mailBuilder.sendToAll == false) { + if (mailBuilder.sendToAll == false) { Grasscutter.getGameServer().getPlayerByUid(mailBuilder.recipient, true).sendMail(mailBuilder.mail); CommandHandler.sendMessage(sender, "Message sent to user " + mailBuilder.recipient + "!"); } else { @@ -90,37 +87,40 @@ public class SendMailCommand implements CommandHandler { CommandHandler.sendMessage(sender, "Message composition not at final stage.\nPlease use `/sendmail " + getConstructionArgs(mailBuilder.constructionStage) + "` or `/sendmail stop` to cancel"); } return; - case "help": + } + case "help" -> { CommandHandler.sendMessage(sender, "Please use `/sendmail " + getConstructionArgs(mailBuilder.constructionStage) + "`"); return; - default: + } + default -> { switch (mailBuilder.constructionStage) { - case 0: + case 0 -> { String title = String.join(" ", args.subList(0, args.size())); mailBuilder.mail.mailContent.title = title; CommandHandler.sendMessage(sender, "Message title set as '" + title + "'.\nUse '/sendmail <content>' to continue."); mailBuilder.constructionStage++; - break; - case 1: + } + case 1 -> { String contents = String.join(" ", args.subList(0, args.size())); mailBuilder.mail.mailContent.content = contents; CommandHandler.sendMessage(sender, "Message contents set as '" + contents + "'.\nUse '/sendmail <sender>' to continue."); mailBuilder.constructionStage++; - break; - case 2: + } + case 2 -> { String msgSender = String.join(" ", args.subList(0, args.size())); mailBuilder.mail.mailContent.sender = msgSender; CommandHandler.sendMessage(sender, "Message sender set as '" + msgSender + "'.\nUse '/sendmail <itemId|itemName|finish> [amount] [level]' to continue."); mailBuilder.constructionStage++; - break; - case 3: + } + case 3 -> { // Literally just copy-pasted from the give command lol. int item, lvl, amount = 1; switch (args.size()) { - default: // *No args* + default -> { // *No args* CommandHandler.sendMessage(sender, "Usage: give [player] <itemId|itemName> [amount]"); return; - case 1: // <itemId|itemName> + } + case 1 -> { // <itemId|itemName> try { item = Integer.parseInt(args.get(0)); lvl = 1; @@ -129,13 +129,13 @@ public class SendMailCommand implements CommandHandler { CommandHandler.sendMessage(sender, "Invalid item id."); return; } - break; - case 2: // <itemId|itemName> [amount] + } + case 2 -> { // <itemId|itemName> [amount] lvl = 1; item = Integer.parseInt(args.get(0)); amount = Integer.parseInt(args.get(1)); - break; - case 3: // <itemId|itemName> [amount] [level] + } + case 3 -> { // <itemId|itemName> [amount] [level] try { item = Integer.parseInt(args.get(0)); amount = Integer.parseInt(args.get(1)); @@ -146,12 +146,13 @@ public class SendMailCommand implements CommandHandler { CommandHandler.sendMessage(sender, "Invalid item or player ID."); return; } - break; + } } mailBuilder.mail.itemList.add(new Mail.MailItem(item, amount, lvl)); CommandHandler.sendMessage(sender, String.format("Attached %s of %s (level %s) to the message.\nContinue adding more items or use `/sendmail finish` to send the message.", amount, item, lvl)); + } } - break; + } } } else { CommandHandler.sendMessage(sender, "Invalid arguments \n Please use `/sendmail " + getConstructionArgs(mailBuilder.constructionStage)); @@ -159,19 +160,25 @@ public class SendMailCommand implements CommandHandler { } } - public String getConstructionArgs(int stage) { + private String getConstructionArgs(int stage) { switch (stage) { - case 0: + case 0 -> { return "<title>"; - case 1: + } + case 1 -> { return "<message>"; - case 2: + } + case 2 -> { return "<sender>"; - case 3: + + } + case 3 -> { return "<itemId|itemName|finish> [amount] [level]"; - default: + } + default -> { Thread.dumpStack(); return "ERROR: invalid construction stage " + stage + ". Check console for stacktrace."; + } } } diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index 5a5b74111..490a8dbdc 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -37,30 +37,7 @@ import emu.grasscutter.net.proto.PlayerWorldLocationInfoOuterClass; import emu.grasscutter.net.proto.SocialDetailOuterClass.SocialDetail; import emu.grasscutter.server.game.GameServer; import emu.grasscutter.server.game.GameSession; -import emu.grasscutter.server.packet.send.PacketAbilityInvocationsNotify; -import emu.grasscutter.server.packet.send.PacketAvatarAddNotify; -import emu.grasscutter.server.packet.send.PacketAvatarDataNotify; -import emu.grasscutter.server.packet.send.PacketAvatarGainCostumeNotify; -import emu.grasscutter.server.packet.send.PacketAvatarGainFlycloakNotify; -import emu.grasscutter.server.packet.send.PacketClientAbilityInitFinishNotify; -import emu.grasscutter.server.packet.send.PacketCombatInvocationsNotify; -import emu.grasscutter.server.packet.send.PacketGadgetInteractRsp; -import emu.grasscutter.server.packet.send.PacketItemAddHintNotify; -import emu.grasscutter.server.packet.send.PacketOpenStateUpdateNotify; -import emu.grasscutter.server.packet.send.PacketPlayerApplyEnterMpResultNotify; -import emu.grasscutter.server.packet.send.PacketPlayerDataNotify; -import emu.grasscutter.server.packet.send.PacketPlayerEnterSceneNotify; -import emu.grasscutter.server.packet.send.PacketPlayerPropNotify; -import emu.grasscutter.server.packet.send.PacketPlayerStoreNotify; -import emu.grasscutter.server.packet.send.PacketPrivateChatNotify; -import emu.grasscutter.server.packet.send.PacketScenePlayerLocationNotify; -import emu.grasscutter.server.packet.send.PacketPlayerLevelRewardUpdateNotify; -import emu.grasscutter.server.packet.send.PacketSetNameCardRsp; -import emu.grasscutter.server.packet.send.PacketStoreWeightLimitNotify; -import emu.grasscutter.server.packet.send.PacketUnlockNameCardNotify; -import emu.grasscutter.server.packet.send.PacketWorldPlayerLocationNotify; -import emu.grasscutter.server.packet.send.PacketWorldPlayerRTTNotify; -import emu.grasscutter.server.packet.send.PacketMailChangeNotify; +import emu.grasscutter.server.packet.send.*; import emu.grasscutter.utils.Position; import emu.grasscutter.utils.DateHelper; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java index c55ee3b12..e164b5d0b 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java @@ -4,11 +4,12 @@ import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerApplyEnterMpReasonOuterClass.PlayerApplyEnterMpReason; +import emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass; import emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass.PlayerApplyEnterMpResultNotify; public class PacketPlayerApplyEnterMpResultNotify extends GenshinPacket { - public PacketPlayerApplyEnterMpResultNotify(GenshinPlayer target, boolean isAgreed, PlayerApplyEnterMpResultNotify.Reason reason) { + public PacketPlayerApplyEnterMpResultNotify(GenshinPlayer target, boolean isAgreed, PlayerApplyEnterMpResultNotifyOuterClass.PlayerApplyEnterMpResultNotify.Reason reason) { super(PacketOpcodes.PlayerApplyEnterMpResultNotify); PlayerApplyEnterMpResultNotify proto = PlayerApplyEnterMpResultNotify.newBuilder() From eaca8a6d8a277b2faf2e4f43e554f23f172fc90b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=8A=E6=9E=AB?= <i@foxex.cn> Date: Wed, 27 Apr 2022 09:43:19 +0800 Subject: [PATCH 28/40] Fix build uploading --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d6d6aaf0..b61ac08c8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,6 +3,7 @@ on: push: branches: - "stable" + - "development" pull_request: types: - opened @@ -25,4 +26,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: Grasscutter - path: grasscutter.jar + path: grasscutter-*-dev.jar From e3034326c1350d9ea818a2a4ed3329cafa36ee02 Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Tue, 26 Apr 2022 18:59:26 -0700 Subject: [PATCH 29/40] Fix eclipse gradle support --- build.gradle | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/build.gradle b/build.gradle index 1acd90dae..1ac88d0fa 100644 --- a/build.gradle +++ b/build.gradle @@ -23,6 +23,8 @@ plugins { id 'com.google.protobuf' version "0.8.18" id 'idea' + id 'eclipse' + // Apply the application plugin to add support for building a CLI application id 'application' @@ -189,6 +191,14 @@ idea { } } +eclipse { + classpath { + file.whenMerged { cp -> + cp.entries.add( new org.gradle.plugins.ide.eclipse.model.SourceFolder('src/generated/main/java', null) ) + } + } +} + signing { sign publishing.publications.mavenJava } From be307fe5f0b4161b9478b8471985e57fb508798d Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Tue, 26 Apr 2022 19:20:10 -0700 Subject: [PATCH 30/40] Fix white screen after logging in --- proto/AvatarDataNotify.proto | 2 +- src/main/java/emu/grasscutter/game/GenshinPlayer.java | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/proto/AvatarDataNotify.proto b/proto/AvatarDataNotify.proto index 8f0a51426..dd93c8c35 100755 --- a/proto/AvatarDataNotify.proto +++ b/proto/AvatarDataNotify.proto @@ -17,7 +17,7 @@ message AvatarDataNotify { repeated AvatarInfo avatar_list = 1; map<uint32, AvatarTeam> avatar_team_map = 2; uint32 cur_avatar_team_id = 3; - uint64 choose_avatar_guid = 4; + fixed64 choose_avatar_guid = 4; repeated uint64 temp_avatar_guid_list = 5; repeated uint32 owned_flycloak_list = 6; repeated uint32 owned_costume_list = 7; diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index 490a8dbdc..9df81955b 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -76,7 +76,6 @@ public class GenshinPlayer { private TeamManager teamManager; private PlayerGachaInfo gachaInfo; private PlayerProfile playerProfile; - private MpSettingType mpSetting = MpSettingType.MP_SETTING_ENTER_AFTER_APPLY; private boolean showAvatar; private ArrayList<AvatarProfileData> shownAvatars; private Set<Integer> rewardedLevels; @@ -381,7 +380,7 @@ public class GenshinPlayer { } public MpSettingType getMpSetting() { - return mpSetting; + return MpSettingType.MP_SETTING_ENTER_AFTER_APPLY; // TEMP } public synchronized Int2ObjectMap<CoopRequest> getCoopRequests() { @@ -400,10 +399,6 @@ public class GenshinPlayer { return clientAbilityInitFinishHandler; } - public void setMpSetting(MpSettingType mpSetting) { - this.mpSetting = mpSetting; - } - public AvatarStorage getAvatars() { return avatars; } From 2b69978327158d3bcb753fe1768ce7ef842b052c Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Tue, 26 Apr 2022 19:20:55 -0700 Subject: [PATCH 31/40] World level updates without needing to restart --- .../grasscutter/command/commands/SetWorldLevelCommand.java | 2 +- src/main/java/emu/grasscutter/game/GenshinPlayer.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java b/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java index 146837523..2499293d4 100644 --- a/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java @@ -29,7 +29,7 @@ public final class SetWorldLevelCommand implements CommandHandler { // Set in both world and player props sender.getWorld().setWorldLevel(level); - sender.setProperty(PlayerProperty.PROP_PLAYER_WORLD_LEVEL, level); + sender.setWorldLevel(level); sender.dropMessage("World level set to " + level + "."); } catch (NumberFormatException ignored) { diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index 9df81955b..ad0fe248d 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -267,6 +267,11 @@ public class GenshinPlayer { public int getWorldLevel() { return this.getProperty(PlayerProperty.PROP_PLAYER_WORLD_LEVEL); } + + public void setWorldLevel(int level) { + this.setProperty(PlayerProperty.PROP_PLAYER_WORLD_LEVEL, level); + this.sendPacket(new PacketPlayerPropNotify(this, PlayerProperty.PROP_PLAYER_WORLD_LEVEL)); + } public int getPrimogems() { return this.getProperty(PlayerProperty.PROP_PLAYER_HCOIN); From 6fbe2f13d3813ae0db1c4dab96348e80275b56e6 Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Tue, 26 Apr 2022 19:21:19 -0700 Subject: [PATCH 32/40] Rename handler --- ...tarSitDownNotify.java => HandlerEvtAvatarSitDownNotify.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/java/emu/grasscutter/server/packet/recv/{HandleEvtAvatarSitDownNotify.java => HandlerEvtAvatarSitDownNotify.java} (91%) diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandleEvtAvatarSitDownNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerEvtAvatarSitDownNotify.java similarity index 91% rename from src/main/java/emu/grasscutter/server/packet/recv/HandleEvtAvatarSitDownNotify.java rename to src/main/java/emu/grasscutter/server/packet/recv/HandlerEvtAvatarSitDownNotify.java index 8f653dde9..d825bf21a 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandleEvtAvatarSitDownNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerEvtAvatarSitDownNotify.java @@ -8,7 +8,7 @@ import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.packet.send.PacketEvtAvatarSitDownNotify; @Opcodes(PacketOpcodes.EvtAvatarSitDownNotify) -public class HandleEvtAvatarSitDownNotify extends PacketHandler { +public class HandlerEvtAvatarSitDownNotify extends PacketHandler { @Override public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { From 8105d2a7a9c0993372204890b86a04760b67c8f7 Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Tue, 26 Apr 2022 19:45:22 -0700 Subject: [PATCH 33/40] Call PacketItemAddHintNotify from addItem --- .../command/commands/GiveCommand.java | 6 +-- .../emu/grasscutter/game/GenshinPlayer.java | 6 +-- .../grasscutter/game/inventory/Inventory.java | 38 +++++++++++++------ .../HandlerAvatarFetterLevelRewardReq.java | 3 +- .../packet/send/PacketGetMailItemRsp.java | 3 +- .../packet/send/PacketItemAddHintNotify.java | 3 +- 6 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/main/java/emu/grasscutter/command/commands/GiveCommand.java b/src/main/java/emu/grasscutter/command/commands/GiveCommand.java index 2ecdac1f5..bd5c025be 100644 --- a/src/main/java/emu/grasscutter/command/commands/GiveCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GiveCommand.java @@ -144,13 +144,11 @@ public final class GiveCommand implements CommandHandler { } items.add(item); } - player.getInventory().addItems(items); - player.sendPacket(new PacketItemAddHintNotify(items, ActionReason.SubfieldDrop)); + player.getInventory().addItems(items, ActionReason.SubfieldDrop); } else { GenshinItem genshinItem = new GenshinItem(itemData); genshinItem.setCount(amount); - player.getInventory().addItem(genshinItem); - player.sendPacket(new PacketItemAddHintNotify(genshinItem, ActionReason.SubfieldDrop)); + player.getInventory().addItem(genshinItem, ActionReason.SubfieldDrop); } } } diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/GenshinPlayer.java index ad0fe248d..4de9b837f 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/GenshinPlayer.java @@ -584,8 +584,7 @@ public class GenshinPlayer { moonCardGetTimes.add(now); addMoonCardDays(1); GenshinItem genshinItem = new GenshinItem(201, 90); - getInventory().addItem(genshinItem); - session.send(new PacketItemAddHintNotify(genshinItem, ActionReason.BlessingRedeemReward)); + getInventory().addItem(genshinItem, ActionReason.BlessingRedeemReward); session.send(new PacketCardProductRewardNotify(getMoonCardRemainDays())); } @@ -730,10 +729,9 @@ public class GenshinPlayer { EntityItem drop = (EntityItem) entity; GenshinItem item = new GenshinItem(drop.getItemData(), drop.getCount()); // Add to inventory - boolean success = getInventory().addItem(item); + boolean success = getInventory().addItem(item, ActionReason.SubfieldDrop); if (success) { this.sendPacket(new PacketGadgetInteractRsp(drop, InteractType.INTERACT_PICK_ITEM)); - this.sendPacket(new PacketItemAddHintNotify(item, ActionReason.SubfieldDrop)); } } diff --git a/src/main/java/emu/grasscutter/game/inventory/Inventory.java b/src/main/java/emu/grasscutter/game/inventory/Inventory.java index 8954b1031..a41386530 100644 --- a/src/main/java/emu/grasscutter/game/inventory/Inventory.java +++ b/src/main/java/emu/grasscutter/game/inventory/Inventory.java @@ -17,8 +17,10 @@ import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.game.avatar.AvatarStorage; import emu.grasscutter.game.avatar.GenshinAvatar; import emu.grasscutter.game.entity.EntityAvatar; +import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam; import emu.grasscutter.server.packet.send.PacketAvatarEquipChangeNotify; +import emu.grasscutter.server.packet.send.PacketItemAddHintNotify; import emu.grasscutter.server.packet.send.PacketStoreItemChangeNotify; import emu.grasscutter.server.packet.send.PacketStoreItemDelNotify; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; @@ -86,7 +88,7 @@ public class Inventory implements Iterable<GenshinItem> { return addItem(item); } - + public boolean addItem(GenshinItem item) { GenshinItem result = putItem(item); @@ -98,7 +100,21 @@ public class Inventory implements Iterable<GenshinItem> { return false; } + public boolean addItem(GenshinItem item, ActionReason reason) { + boolean result = addItem(item); + + if (result && reason != null) { + getPlayer().sendPacket(new PacketItemAddHintNotify(item, reason)); + } + + return result; + } + public void addItems(Collection<GenshinItem> items) { + this.addItems(items, null); + } + + public void addItems(Collection<GenshinItem> items, ActionReason reason) { List<GenshinItem> changedItems = new LinkedList<>(); for (GenshinItem item : items) { @@ -108,21 +124,19 @@ public class Inventory implements Iterable<GenshinItem> { } } + if (changedItems.size() == 0) { + return; + } + + if (reason != null) { + getPlayer().sendPacket(new PacketItemAddHintNotify(changedItems, reason)); + } + getPlayer().sendPacket(new PacketStoreItemChangeNotify(changedItems)); } public void addItemParams(Collection<ItemParam> items) { - List<GenshinItem> changedItems = new LinkedList<>(); - - for (ItemParam itemParam : items) { - GenshinItem toAdd = new GenshinItem(itemParam.getItemId(), itemParam.getCount()); - GenshinItem result = putItem(toAdd); - if (result != null) { - changedItems.add(result); - } - } - - getPlayer().sendPacket(new PacketStoreItemChangeNotify(changedItems)); + addItems(items.stream().map(param -> new GenshinItem(param.getItemId(), param.getCount())).toList(), null); } private synchronized GenshinItem putItem(GenshinItem item) { diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerAvatarFetterLevelRewardReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerAvatarFetterLevelRewardReq.java index b8b4f5e57..b0d45027d 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerAvatarFetterLevelRewardReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerAvatarFetterLevelRewardReq.java @@ -44,8 +44,7 @@ public class HandlerAvatarFetterLevelRewardReq extends PacketHandler { } GenshinItem item = new GenshinItem(cardId); - session.getPlayer().getInventory().addItem(item); - session.getPlayer().sendPacket(new PacketItemAddHintNotify(item, ActionReason.FetterLevelReward)); + session.getPlayer().getInventory().addItem(item, ActionReason.FetterLevelReward); session.getPlayer().sendPacket(new PacketUnlockNameCardNotify(cardId)); session.send(new PacketAvatarFetterDataNotify(avatar)); session.send(new PacketAvatarDataNotify(avatar.getPlayer())); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java index a2379545b..7874acbc4 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -54,8 +54,7 @@ public class PacketGetMailItemRsp extends GenshinPacket { genshinItem.setCount(mailItem.itemCount); genshinItem.setLevel(mailItem.itemLevel); genshinItem.setPromoteLevel(promoteLevel); - player.getInventory().addItem(genshinItem); - player.sendPacket(new PacketItemAddHintNotify(genshinItem, ActionReason.MailAttachment)); + player.getInventory().addItem(genshinItem, ActionReason.MailAttachment); } message.isAttachmentGot = true; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketItemAddHintNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketItemAddHintNotify.java index 598b9a0f6..577e09f69 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketItemAddHintNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketItemAddHintNotify.java @@ -1,5 +1,6 @@ package emu.grasscutter.server.packet.send; +import java.util.Collection; import java.util.List; import emu.grasscutter.game.inventory.GenshinItem; @@ -21,7 +22,7 @@ public class PacketItemAddHintNotify extends GenshinPacket { this.setData(proto); } - public PacketItemAddHintNotify(List<GenshinItem> items, ActionReason reason) { + public PacketItemAddHintNotify(Collection<GenshinItem> items, ActionReason reason) { super(PacketOpcodes.ItemAddHintNotify); ItemAddHintNotify.Builder proto = ItemAddHintNotify.newBuilder() From a179caa44eee53d326f15c59e525eb2cb4eb94db Mon Sep 17 00:00:00 2001 From: TheLostTree <65834918+TheLostTree@users.noreply.github.com> Date: Sat, 23 Apr 2022 03:19:33 -0700 Subject: [PATCH 34/40] drowning added --- .../proto/SceneEntityDrownReqOuterClass.java | 538 ++++++++++++++++ .../proto/SceneEntityDrownRspOuterClass.java | 609 ++++++++++++++++++ .../recv/HandlerSceneEntityDrownReq.java | 43 ++ .../send/PacketSceneEntityDrownRsp.java | 4 + 4 files changed, 1194 insertions(+) create mode 100644 src/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java create mode 100644 src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java diff --git a/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java new file mode 100644 index 000000000..60f46638a --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java @@ -0,0 +1,538 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SceneEntityDrownReq.proto + +package emu.grasscutter.net.proto; + +public final class SceneEntityDrownReqOuterClass { + private SceneEntityDrownReqOuterClass() {} + 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 SceneEntityDrownReqOrBuilder extends + // @@protoc_insertion_point(interface_extends:SceneEntityDrownReq) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>uint32 entity_id = 1;</code> + * @return The entityId. + */ + int getEntityId(); + } + /** + * Protobuf type {@code SceneEntityDrownReq} + */ + public static final class SceneEntityDrownReq extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SceneEntityDrownReq) + SceneEntityDrownReqOrBuilder { + private static final long serialVersionUID = 0L; + // Use SceneEntityDrownReq.newBuilder() to construct. + private SceneEntityDrownReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + private SceneEntityDrownReq() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SceneEntityDrownReq(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private SceneEntityDrownReq( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + entityId_ = input.readUInt32(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().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.SceneEntityDrownReqOuterClass.internal_static_SceneEntityDrownReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.internal_static_SceneEntityDrownReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.class, emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.Builder.class); + } + + public static final int ENTITY_ID_FIELD_NUMBER = 1; + private int entityId_; + /** + * <code>uint32 entity_id = 1;</code> + * @return The entityId. + */ + @java.lang.Override + public int getEntityId() { + return entityId_; + } + + 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 (entityId_ != 0) { + output.writeUInt32(1, entityId_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (entityId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, entityId_); + } + 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq other = (emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq) obj; + + if (getEntityId() + != other.getEntityId()) 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) + ENTITY_ID_FIELD_NUMBER; + hash = (53 * hash) + getEntityId(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SceneEntityDrownReq} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements + // @@protoc_insertion_point(builder_implements:SceneEntityDrownReq) + emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReqOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.internal_static_SceneEntityDrownReq_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.internal_static_SceneEntityDrownReq_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.class, emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.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(); + entityId_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.internal_static_SceneEntityDrownReq_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq getDefaultInstanceForType() { + return emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq build() { + emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq buildPartial() { + emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq result = new emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq(this); + result.entityId_ = entityId_; + 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq) { + return mergeFrom((emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq other) { + if (other == emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.getDefaultInstance()) return this; + if (other.getEntityId() != 0) { + setEntityId(other.getEntityId()); + } + 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int entityId_ ; + /** + * <code>uint32 entity_id = 1;</code> + * @return The entityId. + */ + @java.lang.Override + public int getEntityId() { + return entityId_; + } + /** + * <code>uint32 entity_id = 1;</code> + * @param value The entityId to set. + * @return This builder for chaining. + */ + public Builder setEntityId(int value) { + + entityId_ = value; + onChanged(); + return this; + } + /** + * <code>uint32 entity_id = 1;</code> + * @return This builder for chaining. + */ + public Builder clearEntityId() { + + entityId_ = 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:SceneEntityDrownReq) + } + + // @@protoc_insertion_point(class_scope:SceneEntityDrownReq) + private static final emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq(); + } + + public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<SceneEntityDrownReq> + PARSER = new com.google.protobuf.AbstractParser<SceneEntityDrownReq>() { + @java.lang.Override + public SceneEntityDrownReq parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new SceneEntityDrownReq(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser<SceneEntityDrownReq> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<SceneEntityDrownReq> getParserForType() { + return PARSER; + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SceneEntityDrownReq_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SceneEntityDrownReq_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\031SceneEntityDrownReq.proto\"(\n\023SceneEnti" + + "tyDrownReq\022\021\n\tentity_id\030\001 \001(\rB\033\n\031emu.gra" + + "sscutter.net.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SceneEntityDrownReq_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SceneEntityDrownReq_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SceneEntityDrownReq_descriptor, + new java.lang.String[] { "EntityId", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java new file mode 100644 index 000000000..86605b664 --- /dev/null +++ b/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java @@ -0,0 +1,609 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SceneEntityDrownRsp.proto + +package emu.grasscutter.net.proto; + +public final class SceneEntityDrownRspOuterClass { + private SceneEntityDrownRspOuterClass() {} + 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 SceneEntityDrownRspOrBuilder extends + // @@protoc_insertion_point(interface_extends:SceneEntityDrownRsp) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>int32 retcode = 1;</code> + * @return The retcode. + */ + int getRetcode(); + + /** + * <code>uint32 entity_id = 2;</code> + * @return The entityId. + */ + int getEntityId(); + } + /** + * Protobuf type {@code SceneEntityDrownRsp} + */ + public static final class SceneEntityDrownRsp extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SceneEntityDrownRsp) + SceneEntityDrownRspOrBuilder { + private static final long serialVersionUID = 0L; + // Use SceneEntityDrownRsp.newBuilder() to construct. + private SceneEntityDrownRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + private SceneEntityDrownRsp() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SceneEntityDrownRsp(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private SceneEntityDrownRsp( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + retcode_ = input.readInt32(); + break; + } + case 16: { + + entityId_ = input.readUInt32(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().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.SceneEntityDrownRspOuterClass.internal_static_SceneEntityDrownRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.internal_static_SceneEntityDrownRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.class, emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.Builder.class); + } + + public static final int RETCODE_FIELD_NUMBER = 1; + private int retcode_; + /** + * <code>int32 retcode = 1;</code> + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + + public static final int ENTITY_ID_FIELD_NUMBER = 2; + private int entityId_; + /** + * <code>uint32 entity_id = 2;</code> + * @return The entityId. + */ + @java.lang.Override + public int getEntityId() { + return entityId_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (retcode_ != 0) { + output.writeInt32(1, retcode_); + } + if (entityId_ != 0) { + output.writeUInt32(2, entityId_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (retcode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, retcode_); + } + if (entityId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(2, entityId_); + } + 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp)) { + return super.equals(obj); + } + emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp other = (emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp) obj; + + if (getRetcode() + != other.getRetcode()) return false; + if (getEntityId() + != other.getEntityId()) 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) + ENTITY_ID_FIELD_NUMBER; + hash = (53 * hash) + getEntityId(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SceneEntityDrownRsp} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements + // @@protoc_insertion_point(builder_implements:SceneEntityDrownRsp) + emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRspOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.internal_static_SceneEntityDrownRsp_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.internal_static_SceneEntityDrownRsp_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.class, emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.Builder.class); + } + + // Construct using emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.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; + + entityId_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.internal_static_SceneEntityDrownRsp_descriptor; + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp getDefaultInstanceForType() { + return emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.getDefaultInstance(); + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp build() { + emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp buildPartial() { + emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp result = new emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp(this); + result.retcode_ = retcode_; + result.entityId_ = entityId_; + 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp) { + return mergeFrom((emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp other) { + if (other == emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.getDefaultInstance()) return this; + if (other.getRetcode() != 0) { + setRetcode(other.getRetcode()); + } + if (other.getEntityId() != 0) { + setEntityId(other.getEntityId()); + } + 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int retcode_ ; + /** + * <code>int32 retcode = 1;</code> + * @return The retcode. + */ + @java.lang.Override + public int getRetcode() { + return retcode_; + } + /** + * <code>int32 retcode = 1;</code> + * @param value The retcode to set. + * @return This builder for chaining. + */ + public Builder setRetcode(int value) { + + retcode_ = value; + onChanged(); + return this; + } + /** + * <code>int32 retcode = 1;</code> + * @return This builder for chaining. + */ + public Builder clearRetcode() { + + retcode_ = 0; + onChanged(); + return this; + } + + private int entityId_ ; + /** + * <code>uint32 entity_id = 2;</code> + * @return The entityId. + */ + @java.lang.Override + public int getEntityId() { + return entityId_; + } + /** + * <code>uint32 entity_id = 2;</code> + * @param value The entityId to set. + * @return This builder for chaining. + */ + public Builder setEntityId(int value) { + + entityId_ = value; + onChanged(); + return this; + } + /** + * <code>uint32 entity_id = 2;</code> + * @return This builder for chaining. + */ + public Builder clearEntityId() { + + entityId_ = 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:SceneEntityDrownRsp) + } + + // @@protoc_insertion_point(class_scope:SceneEntityDrownRsp) + private static final emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp(); + } + + public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<SceneEntityDrownRsp> + PARSER = new com.google.protobuf.AbstractParser<SceneEntityDrownRsp>() { + @java.lang.Override + public SceneEntityDrownRsp parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new SceneEntityDrownRsp(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser<SceneEntityDrownRsp> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<SceneEntityDrownRsp> getParserForType() { + return PARSER; + } + + @java.lang.Override + public emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SceneEntityDrownRsp_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SceneEntityDrownRsp_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\031SceneEntityDrownRsp.proto\"9\n\023SceneEnti" + + "tyDrownRsp\022\017\n\007retcode\030\001 \001(\005\022\021\n\tentity_id" + + "\030\002 \001(\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_SceneEntityDrownRsp_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SceneEntityDrownRsp_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SceneEntityDrownRsp_descriptor, + new java.lang.String[] { "Retcode", "EntityId", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java index e69de29bb..91f27c65b 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java @@ -0,0 +1,43 @@ +package emu.grasscutter.server.packet.recv; + +import emu.grasscutter.game.entity.GenshinEntity; +import emu.grasscutter.game.props.LifeState; +import emu.grasscutter.net.packet.Opcodes; +import emu.grasscutter.net.packet.PacketHandler; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq; +import emu.grasscutter.net.proto.VisionTypeOuterClass; +import emu.grasscutter.server.game.GameSession; +import emu.grasscutter.server.packet.send.PacketAvatarChangeCostumeRsp; +import emu.grasscutter.server.packet.send.PacketLifeStateChangeNotify; +import emu.grasscutter.server.packet.send.PacketSceneEntityDisappearNotify; +import emu.grasscutter.server.packet.send.PacketSceneEntityDrownRsp; + +@Opcodes(PacketOpcodes.SceneEntityDrownReq) +public class HandlerSceneEntityDrownReq extends PacketHandler { + + @Override + public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { + SceneEntityDrownReq req = SceneEntityDrownReq.parseFrom(payload); + + + GenshinEntity entity = session.getPlayer().getScene().getEntityById(req.getEntityId()); + + + PacketLifeStateChangeNotify lifeStateChangeNotify = new PacketLifeStateChangeNotify(entity, entity, LifeState.LIFE_DEAD); + PacketSceneEntityDrownRsp drownRsp = new PacketSceneEntityDrownRsp(req.getEntityId()); + + + + //kill entity + broadcast it + + session.getPlayer().getScene().broadcastPacket(lifeStateChangeNotify); + session.getPlayer().getScene().broadcastPacket(drownRsp); + + //TODO: make a list somewhere of all entities to remove per tick rather than one by one + + session.getPlayer().getScene().removeEntity(entity, VisionTypeOuterClass.VisionType.VisionDie); + + } + +} diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java index e69de29bb..2918c2f66 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java @@ -0,0 +1,4 @@ +package emu.grasscutter.server.packet.send; + +public class PacketSceneEntityDrownReq { +} From 51ab19d418581faf541281bbc2bd589ccb6c7cf8 Mon Sep 17 00:00:00 2001 From: TheLostTree <65834918+TheLostTree@users.noreply.github.com> Date: Sat, 23 Apr 2022 03:32:08 -0700 Subject: [PATCH 35/40] git doesnt like me --- .../proto/SceneEntityDrownRspOuterClass.java | 2 +- .../recv/HandlerSceneEntityDrownReq.java | 2 -- .../packet/send/PacketSceneEntityDrownRsp.java | 18 +++++++++++++++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java index 86605b664..45e04e804 100644 --- a/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java +++ b/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java @@ -42,7 +42,7 @@ public final class SceneEntityDrownRspOuterClass { private SceneEntityDrownRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private SceneEntityDrownRsp() { + public SceneEntityDrownRsp() { } @java.lang.Override diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java index 91f27c65b..005141958 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java @@ -8,9 +8,7 @@ import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq; import emu.grasscutter.net.proto.VisionTypeOuterClass; import emu.grasscutter.server.game.GameSession; -import emu.grasscutter.server.packet.send.PacketAvatarChangeCostumeRsp; import emu.grasscutter.server.packet.send.PacketLifeStateChangeNotify; -import emu.grasscutter.server.packet.send.PacketSceneEntityDisappearNotify; import emu.grasscutter.server.packet.send.PacketSceneEntityDrownRsp; @Opcodes(PacketOpcodes.SceneEntityDrownReq) diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java index 2918c2f66..4d3a2b232 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java @@ -1,4 +1,20 @@ package emu.grasscutter.server.packet.send; -public class PacketSceneEntityDrownReq { +import emu.grasscutter.game.entity.GenshinEntity; +import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.PacketOpcodes; +import emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp; +import emu.grasscutter.net.proto.VisionTypeOuterClass.VisionType; + +public class PacketSceneEntityDrownRsp extends GenshinPacket { + + public PacketSceneEntityDrownRsp(int entityId) { + super(PacketOpcodes.SceneEntityDrownRsp); + + SceneEntityDrownRsp proto = new SceneEntityDrownRsp().toBuilder().setEntityId(entityId).build(); + + this.setData(proto); + } } + + From 931894aacfce6cd965c5279d7d8d4590a0765891 Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Tue, 26 Apr 2022 20:08:16 -0700 Subject: [PATCH 36/40] Fix cherry pick issues from drown packets --- .../proto/SceneEntityDrownReqOuterClass.java | 538 ---------------- .../proto/SceneEntityDrownRspOuterClass.java | 609 ------------------ .../recv/HandlerSceneEntityDrownReq.java | 26 +- .../send/PacketSceneEntityDrownRsp.java | 4 +- 4 files changed, 11 insertions(+), 1166 deletions(-) delete mode 100644 src/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java delete mode 100644 src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java diff --git a/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java b/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java deleted file mode 100644 index 60f46638a..000000000 --- a/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java +++ /dev/null @@ -1,538 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SceneEntityDrownReq.proto - -package emu.grasscutter.net.proto; - -public final class SceneEntityDrownReqOuterClass { - private SceneEntityDrownReqOuterClass() {} - 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 SceneEntityDrownReqOrBuilder extends - // @@protoc_insertion_point(interface_extends:SceneEntityDrownReq) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>uint32 entity_id = 1;</code> - * @return The entityId. - */ - int getEntityId(); - } - /** - * Protobuf type {@code SceneEntityDrownReq} - */ - public static final class SceneEntityDrownReq extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SceneEntityDrownReq) - SceneEntityDrownReqOrBuilder { - private static final long serialVersionUID = 0L; - // Use SceneEntityDrownReq.newBuilder() to construct. - private SceneEntityDrownReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - private SceneEntityDrownReq() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SceneEntityDrownReq(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private SceneEntityDrownReq( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - - entityId_ = input.readUInt32(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().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.SceneEntityDrownReqOuterClass.internal_static_SceneEntityDrownReq_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.internal_static_SceneEntityDrownReq_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.class, emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.Builder.class); - } - - public static final int ENTITY_ID_FIELD_NUMBER = 1; - private int entityId_; - /** - * <code>uint32 entity_id = 1;</code> - * @return The entityId. - */ - @java.lang.Override - public int getEntityId() { - return entityId_; - } - - 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 (entityId_ != 0) { - output.writeUInt32(1, entityId_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (entityId_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, entityId_); - } - 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq other = (emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq) obj; - - if (getEntityId() - != other.getEntityId()) 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) + ENTITY_ID_FIELD_NUMBER; - hash = (53 * hash) + getEntityId(); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SceneEntityDrownReq} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:SceneEntityDrownReq) - emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReqOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.internal_static_SceneEntityDrownReq_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.internal_static_SceneEntityDrownReq_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.class, emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.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(); - entityId_ = 0; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.internal_static_SceneEntityDrownReq_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq getDefaultInstanceForType() { - return emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq build() { - emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq buildPartial() { - emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq result = new emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq(this); - result.entityId_ = entityId_; - 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq) { - return mergeFrom((emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq other) { - if (other == emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq.getDefaultInstance()) return this; - if (other.getEntityId() != 0) { - setEntityId(other.getEntityId()); - } - 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.SceneEntityDrownReqOuterClass.SceneEntityDrownReq parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private int entityId_ ; - /** - * <code>uint32 entity_id = 1;</code> - * @return The entityId. - */ - @java.lang.Override - public int getEntityId() { - return entityId_; - } - /** - * <code>uint32 entity_id = 1;</code> - * @param value The entityId to set. - * @return This builder for chaining. - */ - public Builder setEntityId(int value) { - - entityId_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 entity_id = 1;</code> - * @return This builder for chaining. - */ - public Builder clearEntityId() { - - entityId_ = 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:SceneEntityDrownReq) - } - - // @@protoc_insertion_point(class_scope:SceneEntityDrownReq) - private static final emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq(); - } - - public static emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<SceneEntityDrownReq> - PARSER = new com.google.protobuf.AbstractParser<SceneEntityDrownReq>() { - @java.lang.Override - public SceneEntityDrownReq parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new SceneEntityDrownReq(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<SceneEntityDrownReq> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<SceneEntityDrownReq> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SceneEntityDrownReq_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SceneEntityDrownReq_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\031SceneEntityDrownReq.proto\"(\n\023SceneEnti" + - "tyDrownReq\022\021\n\tentity_id\030\001 \001(\rB\033\n\031emu.gra" + - "sscutter.net.protob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SceneEntityDrownReq_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SceneEntityDrownReq_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SceneEntityDrownReq_descriptor, - new java.lang.String[] { "EntityId", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java b/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java deleted file mode 100644 index 45e04e804..000000000 --- a/src/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java +++ /dev/null @@ -1,609 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SceneEntityDrownRsp.proto - -package emu.grasscutter.net.proto; - -public final class SceneEntityDrownRspOuterClass { - private SceneEntityDrownRspOuterClass() {} - 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 SceneEntityDrownRspOrBuilder extends - // @@protoc_insertion_point(interface_extends:SceneEntityDrownRsp) - com.google.protobuf.MessageOrBuilder { - - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - int getRetcode(); - - /** - * <code>uint32 entity_id = 2;</code> - * @return The entityId. - */ - int getEntityId(); - } - /** - * Protobuf type {@code SceneEntityDrownRsp} - */ - public static final class SceneEntityDrownRsp extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SceneEntityDrownRsp) - SceneEntityDrownRspOrBuilder { - private static final long serialVersionUID = 0L; - // Use SceneEntityDrownRsp.newBuilder() to construct. - private SceneEntityDrownRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { - super(builder); - } - public SceneEntityDrownRsp() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SceneEntityDrownRsp(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private SceneEntityDrownRsp( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - - retcode_ = input.readInt32(); - break; - } - case 16: { - - entityId_ = input.readUInt32(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().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.SceneEntityDrownRspOuterClass.internal_static_SceneEntityDrownRsp_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.internal_static_SceneEntityDrownRsp_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.class, emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.Builder.class); - } - - public static final int RETCODE_FIELD_NUMBER = 1; - private int retcode_; - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - @java.lang.Override - public int getRetcode() { - return retcode_; - } - - public static final int ENTITY_ID_FIELD_NUMBER = 2; - private int entityId_; - /** - * <code>uint32 entity_id = 2;</code> - * @return The entityId. - */ - @java.lang.Override - public int getEntityId() { - return entityId_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (retcode_ != 0) { - output.writeInt32(1, retcode_); - } - if (entityId_ != 0) { - output.writeUInt32(2, entityId_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (retcode_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, retcode_); - } - if (entityId_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, entityId_); - } - 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp)) { - return super.equals(obj); - } - emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp other = (emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp) obj; - - if (getRetcode() - != other.getRetcode()) return false; - if (getEntityId() - != other.getEntityId()) 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) + ENTITY_ID_FIELD_NUMBER; - hash = (53 * hash) + getEntityId(); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SceneEntityDrownRsp} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:SceneEntityDrownRsp) - emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRspOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.internal_static_SceneEntityDrownRsp_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.internal_static_SceneEntityDrownRsp_fieldAccessorTable - .ensureFieldAccessorsInitialized( - emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.class, emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.Builder.class); - } - - // Construct using emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.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; - - entityId_ = 0; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.internal_static_SceneEntityDrownRsp_descriptor; - } - - @java.lang.Override - public emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp getDefaultInstanceForType() { - return emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.getDefaultInstance(); - } - - @java.lang.Override - public emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp build() { - emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp buildPartial() { - emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp result = new emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp(this); - result.retcode_ = retcode_; - result.entityId_ = entityId_; - 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp) { - return mergeFrom((emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp other) { - if (other == emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp.getDefaultInstance()) return this; - if (other.getRetcode() != 0) { - setRetcode(other.getRetcode()); - } - if (other.getEntityId() != 0) { - setEntityId(other.getEntityId()); - } - 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.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private int retcode_ ; - /** - * <code>int32 retcode = 1;</code> - * @return The retcode. - */ - @java.lang.Override - public int getRetcode() { - return retcode_; - } - /** - * <code>int32 retcode = 1;</code> - * @param value The retcode to set. - * @return This builder for chaining. - */ - public Builder setRetcode(int value) { - - retcode_ = value; - onChanged(); - return this; - } - /** - * <code>int32 retcode = 1;</code> - * @return This builder for chaining. - */ - public Builder clearRetcode() { - - retcode_ = 0; - onChanged(); - return this; - } - - private int entityId_ ; - /** - * <code>uint32 entity_id = 2;</code> - * @return The entityId. - */ - @java.lang.Override - public int getEntityId() { - return entityId_; - } - /** - * <code>uint32 entity_id = 2;</code> - * @param value The entityId to set. - * @return This builder for chaining. - */ - public Builder setEntityId(int value) { - - entityId_ = value; - onChanged(); - return this; - } - /** - * <code>uint32 entity_id = 2;</code> - * @return This builder for chaining. - */ - public Builder clearEntityId() { - - entityId_ = 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:SceneEntityDrownRsp) - } - - // @@protoc_insertion_point(class_scope:SceneEntityDrownRsp) - private static final emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp(); - } - - public static emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser<SceneEntityDrownRsp> - PARSER = new com.google.protobuf.AbstractParser<SceneEntityDrownRsp>() { - @java.lang.Override - public SceneEntityDrownRsp parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new SceneEntityDrownRsp(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser<SceneEntityDrownRsp> parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser<SceneEntityDrownRsp> getParserForType() { - return PARSER; - } - - @java.lang.Override - public emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SceneEntityDrownRsp_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SceneEntityDrownRsp_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\031SceneEntityDrownRsp.proto\"9\n\023SceneEnti" + - "tyDrownRsp\022\017\n\007retcode\030\001 \001(\005\022\021\n\tentity_id" + - "\030\002 \001(\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_SceneEntityDrownRsp_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SceneEntityDrownRsp_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SceneEntityDrownRsp_descriptor, - new java.lang.String[] { "Retcode", "EntityId", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java index 005141958..4a602157d 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java @@ -1,14 +1,15 @@ package emu.grasscutter.server.packet.recv; +import emu.grasscutter.game.entity.EntityAvatar; +import emu.grasscutter.game.entity.EntityMonster; import emu.grasscutter.game.entity.GenshinEntity; +import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketHandler; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneEntityDrownReqOuterClass.SceneEntityDrownReq; -import emu.grasscutter.net.proto.VisionTypeOuterClass; import emu.grasscutter.server.game.GameSession; -import emu.grasscutter.server.packet.send.PacketLifeStateChangeNotify; import emu.grasscutter.server.packet.send.PacketSceneEntityDrownRsp; @Opcodes(PacketOpcodes.SceneEntityDrownReq) @@ -18,24 +19,17 @@ public class HandlerSceneEntityDrownReq extends PacketHandler { public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { SceneEntityDrownReq req = SceneEntityDrownReq.parseFrom(payload); - GenshinEntity entity = session.getPlayer().getScene().getEntityById(req.getEntityId()); - - PacketLifeStateChangeNotify lifeStateChangeNotify = new PacketLifeStateChangeNotify(entity, entity, LifeState.LIFE_DEAD); - PacketSceneEntityDrownRsp drownRsp = new PacketSceneEntityDrownRsp(req.getEntityId()); - - - - //kill entity + broadcast it - - session.getPlayer().getScene().broadcastPacket(lifeStateChangeNotify); - session.getPlayer().getScene().broadcastPacket(drownRsp); + if (entity == null || !(entity instanceof EntityMonster || entity instanceof EntityAvatar)) { + return; + } + + entity.setFightProperty(FightProperty.FIGHT_PROP_CUR_HP, 0); //TODO: make a list somewhere of all entities to remove per tick rather than one by one - - session.getPlayer().getScene().removeEntity(entity, VisionTypeOuterClass.VisionType.VisionDie); - + session.getPlayer().getScene().killEntity(entity, 0); + session.getPlayer().getScene().broadcastPacket(new PacketSceneEntityDrownRsp(req.getEntityId())); } } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java index 4d3a2b232..28ac13119 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java @@ -1,17 +1,15 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.entity.GenshinEntity; import emu.grasscutter.net.packet.GenshinPacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp; -import emu.grasscutter.net.proto.VisionTypeOuterClass.VisionType; public class PacketSceneEntityDrownRsp extends GenshinPacket { public PacketSceneEntityDrownRsp(int entityId) { super(PacketOpcodes.SceneEntityDrownRsp); - SceneEntityDrownRsp proto = new SceneEntityDrownRsp().toBuilder().setEntityId(entityId).build(); + SceneEntityDrownRsp proto = SceneEntityDrownRsp.newBuilder().setEntityId(entityId).build(); this.setData(proto); } From 691324c9e72e3dae12f99af855d0e0155ae59e44 Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Tue, 26 Apr 2022 20:27:49 -0700 Subject: [PATCH 37/40] Cleanup https server creation in dispatch server --- .../server/dispatch/DispatchServer.java | 81 ++++++++++--------- 1 file changed, 45 insertions(+), 36 deletions(-) diff --git a/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java b/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java index 654cf91b3..d664f922c 100644 --- a/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java +++ b/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java @@ -203,56 +203,65 @@ public final class DispatchServer { } return null; } + + private KeyManagerFactory createKeyManagerFactory(File keystore, String password) throws Exception { + char[] pass = password.toCharArray(); + KeyManagerFactory kmf = null; + + try (FileInputStream fis = new FileInputStream(keystore)) { + + KeyStore ks = KeyStore.getInstance("PKCS12"); + ks.load(fis, pass); + + kmf = KeyManagerFactory.getInstance("SunX509"); + kmf.init(ks, pass); + } catch (Exception e) { + throw e; + } + + return kmf; + } public void start() throws Exception { if (Grasscutter.getConfig().getDispatchOptions().UseSSL) { - HttpsServer httpsServer = HttpsServer.create(getAddress(), 0); + // Keystore SSLContext sslContext = SSLContext.getInstance("TLS"); - try (FileInputStream fis = new FileInputStream(Grasscutter.getConfig().getDispatchOptions().KeystorePath)) { - char[] keystorePassword = Grasscutter.getConfig().getDispatchOptions().KeystorePassword.toCharArray(); - KeyManagerFactory _kmf; + KeyManagerFactory kmf = null; + File keystoreFile = new File(Grasscutter.getConfig().getDispatchOptions().KeystorePath); + + if (keystoreFile.exists()) { try { - KeyStore ks = KeyStore.getInstance("PKCS12"); - ks.load(fis, keystorePassword); - KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); - _kmf = kmf; - kmf.init(ks, keystorePassword); - } catch (Exception originalEx) { + kmf = createKeyManagerFactory(keystoreFile, Grasscutter.getConfig().getDispatchOptions().KeystorePassword); + } catch (Exception e) { + Grasscutter.getLogger().warn("[Dispatch] Unable to load keystore. Trying default keystore password..."); + try { - // try to initialize kmf with the default password - char[] defaultPassword = "123456".toCharArray(); - - Grasscutter.getLogger() - .warn("[Dispatch] Unable to load keystore. Trying default keystore password..."); - KeyStore ks = KeyStore.getInstance("PKCS12"); - ks.load(fis, defaultPassword); - KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); - kmf.init(ks, defaultPassword); - _kmf = kmf; - + kmf = createKeyManagerFactory(keystoreFile, "123456"); Grasscutter.getLogger().warn( - "[Dispatch] The default keystore password was loaded successfully. Please consider setting the password in config.json."); - } catch (Exception ignored) { + "[Dispatch] The default keystore password was loaded successfully. Please consider setting the password to 123456 in config.json."); + } catch (Exception e2) { Grasscutter.getLogger().warn("[Dispatch] Error while loading keystore!"); - - // don't care about the exception for the "123456" default password attempt - originalEx.printStackTrace(); - throw originalEx; + e2.printStackTrace(); } } - - sslContext.init(_kmf.getKeyManagers(), null, null); - - httpsServer.setHttpsConfigurator(new HttpsConfigurator(sslContext)); - server = httpsServer; - } catch (BindException ignored) { - Grasscutter.getLogger().error("Unable to bind to port: " + getAddress().getPort() + " (HTTPS)"); - server = this.safelyCreateServer(this.getAddress()); - } catch (Exception e) { + } + + if (kmf == null) { Grasscutter.getLogger().warn("[Dispatch] No SSL cert found! Falling back to HTTP server."); Grasscutter.getConfig().getDispatchOptions().UseSSL = false; server = this.safelyCreateServer(this.getAddress()); } + + HttpsServer httpsServer = null; + + try { + httpsServer = HttpsServer.create(getAddress(), 0); + sslContext.init(kmf.getKeyManagers(), null, null); + httpsServer.setHttpsConfigurator(new HttpsConfigurator(sslContext)); + server = httpsServer; + } catch (BindException e) { + Grasscutter.getLogger().error("Unable to bind to port: " + getAddress().getPort() + " (HTTPS)"); + } } else { server = this.safelyCreateServer(this.getAddress()); } From 07b4dc95ea648dffd11bf59ab2a847f4a8b92f86 Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Tue, 26 Apr 2022 20:28:48 -0700 Subject: [PATCH 38/40] Deprecate getServer() in DispatchServer, use getHttpServer() instead --- .../java/emu/grasscutter/server/dispatch/DispatchServer.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java b/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java index d664f922c..6ba087ab1 100644 --- a/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java +++ b/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java @@ -58,6 +58,10 @@ public final class DispatchServer { public HttpServer getServer() { return server; } + + public HttpServer getHttpServer() { + return server; + } public InetSocketAddress getAddress() { return address; From 556018d9a9d314664211161af71174d0e8f7c88d Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Tue, 26 Apr 2022 21:21:57 -0700 Subject: [PATCH 39/40] Renamed all references to a certain game --- ...nshinConstants.java => GameConstants.java} | 2 +- .../grasscutter/command/CommandHandler.java | 6 +- .../emu/grasscutter/command/CommandMap.java | 4 +- .../command/commands/AccountCommand.java | 4 +- .../command/commands/BroadcastCommand.java | 6 +- .../command/commands/ChangeSceneCommand.java | 4 +- .../command/commands/ClearCommand.java | 8 +- .../command/commands/DropCommand.java | 8 +- .../command/commands/GiveAllCommand.java | 44 ++--- .../command/commands/GiveCharCommand.java | 14 +- .../command/commands/GiveCommand.java | 24 +-- .../command/commands/GodModeCommand.java | 6 +- .../command/commands/HealCommand.java | 4 +- .../command/commands/HelpCommand.java | 6 +- .../command/commands/KickCommand.java | 6 +- .../command/commands/KillAllCommand.java | 34 ++-- .../commands/KillCharacterCommand.java | 6 +- .../command/commands/ListCommand.java | 6 +- .../command/commands/PermissionCommand.java | 4 +- .../command/commands/PositionCommand.java | 4 +- .../command/commands/ReloadCommand.java | 4 +- .../command/commands/ResetConstCommand.java | 10 +- .../command/commands/RestartCommand.java | 4 +- .../command/commands/SendMailCommand.java | 6 +- .../command/commands/SendMessageCommand.java | 6 +- .../commands/SetFetterLevelCommand.java | 12 +- .../command/commands/SetStatsCommand.java | 4 +- .../commands/SetWorldLevelCommand.java | 4 +- .../command/commands/SpawnCommand.java | 8 +- .../command/commands/StopCommand.java | 6 +- .../command/commands/TalentCommand.java | 12 +- .../command/commands/TeleportCommand.java | 4 +- .../command/commands/WeatherCommand.java | 4 +- .../data/{GenshinData.java => GameData.java} | 4 +- .../{GenshinDepot.java => GameDepot.java} | 6 +- ...GenshinResource.java => GameResource.java} | 2 +- .../emu/grasscutter/data/ResourceLoader.java | 20 +-- .../data/def/AvatarCostumeData.java | 8 +- .../grasscutter/data/def/AvatarCurveData.java | 4 +- .../emu/grasscutter/data/def/AvatarData.java | 28 +-- .../data/def/AvatarFetterLevelData.java | 4 +- .../data/def/AvatarFlycloakData.java | 4 +- .../grasscutter/data/def/AvatarLevelData.java | 4 +- .../data/def/AvatarPromoteData.java | 4 +- .../grasscutter/data/def/AvatarSkillData.java | 4 +- .../data/def/AvatarSkillDepotData.java | 8 +- .../data/def/AvatarTalentData.java | 4 +- .../grasscutter/data/def/EquipAffixData.java | 4 +- .../data/def/FetterCharacterCardData.java | 4 +- .../emu/grasscutter/data/def/FetterData.java | 4 +- .../emu/grasscutter/data/def/GadgetData.java | 4 +- .../emu/grasscutter/data/def/ItemData.java | 4 +- .../data/def/MonsterCurveData.java | 4 +- .../emu/grasscutter/data/def/MonsterData.java | 10 +- .../data/def/MonsterDescribeData.java | 4 +- .../emu/grasscutter/data/def/NpcData.java | 4 +- .../grasscutter/data/def/PlayerLevelData.java | 4 +- .../grasscutter/data/def/ProudSkillData.java | 4 +- .../data/def/ReliquaryAffixData.java | 4 +- .../data/def/ReliquaryLevelData.java | 4 +- .../data/def/ReliquaryMainPropData.java | 4 +- .../data/def/ReliquarySetData.java | 4 +- .../emu/grasscutter/data/def/RewardData.java | 4 +- .../emu/grasscutter/data/def/SceneData.java | 6 +- .../grasscutter/data/def/WeaponCurveData.java | 4 +- .../grasscutter/data/def/WeaponLevelData.java | 4 +- .../data/def/WeaponPromoteData.java | 4 +- .../grasscutter/data/def/WorldLevelData.java | 4 +- .../grasscutter/database/DatabaseHelper.java | 44 ++--- .../grasscutter/database/DatabaseManager.java | 8 +- .../emu/grasscutter/game/CoopRequest.java | 6 +- .../emu/grasscutter/game/InvokeHandler.java | 14 +- src/main/java/emu/grasscutter/game/Mail.java | 2 +- .../game/{GenshinPlayer.java => Player.java} | 64 +++---- .../game/{GenshinScene.java => Scene.java} | 90 +++++----- .../java/emu/grasscutter/game/TeamInfo.java | 8 +- .../emu/grasscutter/game/TeamManager.java | 38 ++--- src/main/java/emu/grasscutter/game/World.java | 70 ++++---- .../{GenshinAvatar.java => Avatar.java} | 82 ++++----- .../game/avatar/AvatarProfileData.java | 4 +- .../game/avatar/AvatarStorage.java | 44 ++--- .../grasscutter/game/entity/EntityAvatar.java | 42 ++--- .../game/entity/EntityClientGadget.java | 10 +- .../grasscutter/game/entity/EntityGadget.java | 6 +- .../grasscutter/game/entity/EntityItem.java | 16 +- .../game/entity/EntityMonster.java | 10 +- .../{GenshinEntity.java => GameEntity.java} | 10 +- .../grasscutter/game/friends/FriendsList.java | 16 +- .../grasscutter/game/friends/Friendship.java | 12 +- .../game/friends/PlayerProfile.java | 12 +- .../grasscutter/game/gacha/GachaManager.java | 20 +-- .../game/inventory/EquipInventoryTab.java | 10 +- .../{GenshinItem.java => GameItem.java} | 40 ++--- .../grasscutter/game/inventory/Inventory.java | 88 +++++----- .../game/inventory/InventoryTab.java | 6 +- .../game/inventory/MaterialInventoryTab.java | 8 +- .../game/managers/ChatManager.java | 20 +-- .../game/managers/InventoryManager.java | 160 +++++++++--------- .../game/managers/MultiplayerManager.java | 20 +-- .../{GenshinPacket.java => BasePacket.java} | 10 +- ...{MihoyoKcpChannel.java => KcpChannel.java} | 2 +- ...oKcpHandshaker.java => KcpHandshaker.java} | 4 +- .../{MihoyoKcpServer.java => KcpServer.java} | 6 +- ...ializer.java => KcpServerInitializer.java} | 2 +- .../grasscutter/plugin/api/PlayerHook.java | 20 +-- .../grasscutter/plugin/api/ServerHook.java | 4 +- .../server/dispatch/DispatchServer.java | 1 + .../server/event/game/SendPacketEvent.java | 10 +- .../grasscutter/server/game/GameServer.java | 30 ++-- .../server/game/GameServerInitializer.java | 4 +- .../grasscutter/server/game/GameSession.java | 48 +++--- .../HandlerAvatarFetterLevelRewardReq.java | 12 +- .../recv/HandlerCombatInvocationsNotify.java | 4 +- .../packet/recv/HandlerEnterSceneDoneReq.java | 2 +- .../recv/HandlerGetPlayerBlacklistReq.java | 4 +- .../server/packet/recv/HandlerNpcTalkReq.java | 2 +- .../packet/recv/HandlerPlayerLoginReq.java | 8 +- .../packet/recv/HandlerPrivateChatReq.java | 2 - .../recv/HandlerSceneEntityDrownReq.java | 4 +- .../recv/HandlerSceneInitFinishReq.java | 6 +- .../recv/HandlerSceneTransToPointReq.java | 4 +- .../HandlerSetEntityClientDataNotify.java | 4 +- .../recv/HandlerSetPlayerBornDataReq.java | 22 +-- .../recv/HandlerTakePlayerLevelRewardReq.java | 12 +- .../server/packet/recv/HandlerUseItemReq.java | 4 +- .../server/packet/send/Packet.java | 4 +- .../send/PacketAbilityChangeNotify.java | 4 +- .../send/PacketAbilityInvocationsNotify.java | 4 +- .../packet/send/PacketAskAddFriendNotify.java | 4 +- .../packet/send/PacketAskAddFriendRsp.java | 4 +- .../packet/send/PacketAvatarAddNotify.java | 8 +- .../send/PacketAvatarChangeCostumeNotify.java | 4 +- .../send/PacketAvatarChangeCostumeRsp.java | 4 +- .../packet/send/PacketAvatarDataNotify.java | 14 +- .../send/PacketAvatarDieAnimationEndRsp.java | 4 +- .../send/PacketAvatarEquipChangeNotify.java | 12 +- .../send/PacketAvatarFetterDataNotify.java | 8 +- .../PacketAvatarFetterLevelRewardRsp.java | 4 +- .../send/PacketAvatarFightPropNotify.java | 8 +- .../PacketAvatarFightPropUpdateNotify.java | 8 +- .../PacketAvatarFlycloakChangeNotify.java | 8 +- .../send/PacketAvatarGainCostumeNotify.java | 4 +- .../send/PacketAvatarGainFlycloakNotify.java | 4 +- .../PacketAvatarLifeStateChangeNotify.java | 8 +- .../packet/send/PacketAvatarPromoteRsp.java | 8 +- .../packet/send/PacketAvatarPropNotify.java | 10 +- .../send/PacketAvatarSkillChangeNotify.java | 8 +- .../send/PacketAvatarSkillUpgradeRsp.java | 8 +- .../send/PacketAvatarTeamUpdateNotify.java | 12 +- .../send/PacketAvatarUnlockTalentNotify.java | 8 +- .../packet/send/PacketAvatarUpgradeRsp.java | 8 +- .../send/PacketAvatarWearFlycloakRsp.java | 4 +- ...PacketCalcWeaponUpgradeReturnItemsRsp.java | 4 +- .../send/PacketCardProductRewardNotify.java | 4 +- .../packet/send/PacketChangeAvatarRsp.java | 4 +- .../packet/send/PacketChangeGameTimeRsp.java | 8 +- .../send/PacketChangeMpTeamAvatarRsp.java | 8 +- .../packet/send/PacketChangeTeamNameRsp.java | 4 +- .../send/PacketChooseCurAvatarTeamRsp.java | 4 +- .../PacketClientAbilityInitFinishNotify.java | 4 +- .../send/PacketCombatInvocationsNotify.java | 4 +- .../server/packet/send/PacketCombineRsp.java | 4 +- .../packet/send/PacketDealAddFriendRsp.java | 4 +- .../server/packet/send/PacketDelMailRsp.java | 8 +- .../send/PacketDelTeamEntityNotify.java | 4 +- .../packet/send/PacketDeleteFriendNotify.java | 4 +- .../packet/send/PacketDeleteFriendRsp.java | 4 +- .../packet/send/PacketDestroyMaterialRsp.java | 4 +- .../server/packet/send/PacketDoGachaRsp.java | 4 +- .../packet/send/PacketEnterSceneDoneRsp.java | 8 +- .../send/PacketEnterScenePeerNotify.java | 8 +- .../packet/send/PacketEnterSceneReadyRsp.java | 8 +- .../packet/send/PacketEnterWorldAreaRsp.java | 4 +- .../packet/send/PacketEntityAiSyncNotify.java | 4 +- .../PacketEntityFightPropUpdateNotify.java | 8 +- .../send/PacketEvtAvatarSitDownNotify.java | 4 +- .../packet/send/PacketGadgetInteractRsp.java | 4 +- .../packet/send/PacketGetActivityInfoRsp.java | 4 +- .../packet/send/PacketGetAllMailRsp.java | 8 +- .../send/PacketGetAllUnlockNameCardRsp.java | 8 +- .../packet/send/PacketGetAuthkeyRsp.java | 4 +- .../packet/send/PacketGetGachaInfoRsp.java | 4 +- .../packet/send/PacketGetMailItemRsp.java | 22 +-- .../send/PacketGetPlayerAskFriendListRsp.java | 8 +- .../send/PacketGetPlayerFriendListRsp.java | 14 +- .../send/PacketGetPlayerSocialDetailRsp.java | 4 +- .../packet/send/PacketGetPlayerTokenRsp.java | 4 +- .../packet/send/PacketGetSceneAreaRsp.java | 4 +- .../packet/send/PacketGetScenePointRsp.java | 4 +- .../server/packet/send/PacketGetShopRsp.java | 4 +- .../packet/send/PacketGetShopmallDataRsp.java | 4 +- .../packet/send/PacketGetWorldMpInfoRsp.java | 4 +- .../send/PacketH5ActivityIdsNotify.java | 4 +- .../packet/send/PacketHostPlayerNotify.java | 4 +- .../packet/send/PacketItemAddHintNotify.java | 12 +- .../send/PacketLifeStateChangeNotify.java | 10 +- .../packet/send/PacketMailChangeNotify.java | 12 +- .../server/packet/send/PacketNpcTalkRsp.java | 4 +- .../send/PacketOpenStateUpdateNotify.java | 4 +- .../send/PacketPathfindingEnterSceneRsp.java | 4 +- .../server/packet/send/PacketPingRsp.java | 4 +- .../send/PacketPlayerApplyEnterMpNotify.java | 8 +- .../PacketPlayerApplyEnterMpResultNotify.java | 8 +- .../PacketPlayerApplyEnterMpResultRsp.java | 4 +- .../send/PacketPlayerApplyEnterMpRsp.java | 4 +- .../packet/send/PacketPlayerChatNotify.java | 12 +- .../packet/send/PacketPlayerChatRsp.java | 4 +- .../packet/send/PacketPlayerDataNotify.java | 8 +- .../PacketPlayerEnterSceneInfoNotify.java | 12 +- .../send/PacketPlayerEnterSceneNotify.java | 14 +- .../send/PacketPlayerGameTimeNotify.java | 8 +- .../PacketPlayerGetForceQuitBanInfoRsp.java | 4 +- .../PacketPlayerLevelRewardUpdateNotify.java | 4 +- .../packet/send/PacketPlayerLoginRsp.java | 4 +- .../packet/send/PacketPlayerPropNotify.java | 8 +- .../packet/send/PacketPlayerSetPauseRsp.java | 4 +- .../packet/send/PacketPlayerStoreNotify.java | 14 +- .../packet/send/PacketPlayerTimeNotify.java | 8 +- .../packet/send/PacketPostEnterSceneRsp.java | 8 +- .../packet/send/PacketPrivateChatNotify.java | 4 +- .../send/PacketProudSkillChangeNotify.java | 8 +- .../PacketProudSkillExtraLevelNotify.java | 8 +- .../packet/send/PacketPullPrivateChatRsp.java | 4 +- .../packet/send/PacketPullRecentChatRsp.java | 14 +- .../send/PacketReliquaryUpgradeRsp.java | 8 +- .../send/PacketSceneAreaWeatherNotify.java | 8 +- .../send/PacketSceneEntityAppearNotify.java | 16 +- .../PacketSceneEntityDisappearNotify.java | 10 +- .../send/PacketSceneEntityDrownRsp.java | 4 +- .../send/PacketSceneEntityMoveNotify.java | 4 +- .../packet/send/PacketSceneInitFinishRsp.java | 8 +- .../packet/send/PacketSceneKickPlayerRsp.java | 4 +- .../send/PacketScenePlayerInfoNotify.java | 8 +- .../send/PacketScenePlayerLocationNotify.java | 12 +- .../send/PacketSceneTeamUpdateNotify.java | 10 +- .../packet/send/PacketSceneTimeNotify.java | 8 +- .../send/PacketSceneTransToPointRsp.java | 10 +- .../send/PacketSceneUnlockInfoNotify.java | 4 +- .../packet/send/PacketServerTimeNotify.java | 4 +- .../send/PacketSetEquipLockStateRsp.java | 8 +- .../packet/send/PacketSetNameCardRsp.java | 4 +- .../send/PacketSetPlayerBirthdayRsp.java | 8 +- .../send/PacketSetPlayerHeadImageRsp.java | 8 +- .../packet/send/PacketSetPlayerNameRsp.java | 8 +- .../send/PacketSetPlayerSignatureRsp.java | 8 +- .../packet/send/PacketSetUpAvatarTeamRsp.java | 8 +- .../send/PacketStoreItemChangeNotify.java | 10 +- .../packet/send/PacketStoreItemDelNotify.java | 10 +- .../send/PacketStoreWeightLimitNotify.java | 4 +- .../PacketSyncScenePlayTeamEntityNotify.java | 8 +- .../send/PacketSyncTeamEntityNotify.java | 10 +- .../send/PacketTakePlayerLevelRewardRsp.java | 4 +- .../packet/send/PacketTakeoffEquipRsp.java | 4 +- .../packet/send/PacketTowerAllDataRsp.java | 4 +- .../send/PacketUnlockAvatarTalentRsp.java | 8 +- .../send/PacketUnlockNameCardNotify.java | 4 +- .../server/packet/send/PacketUseItemRsp.java | 8 +- .../packet/send/PacketWeaponAwakenRsp.java | 10 +- .../packet/send/PacketWeaponPromoteRsp.java | 8 +- .../packet/send/PacketWeaponUpgradeRsp.java | 8 +- .../packet/send/PacketWearEquipRsp.java | 4 +- .../packet/send/PacketWorldDataNotify.java | 4 +- .../send/PacketWorldPlayerDieNotify.java | 4 +- .../send/PacketWorldPlayerInfoNotify.java | 8 +- .../send/PacketWorldPlayerLocationNotify.java | 8 +- .../send/PacketWorldPlayerRTTNotify.java | 8 +- .../java/emu/grasscutter/task/TaskMap.java | 2 +- .../emu/grasscutter/task/tasks/MoonCard.java | 6 +- .../java/emu/grasscutter/tools/Tools.java | 22 +-- .../java/emu/grasscutter/utils/Utils.java | 4 +- 270 files changed, 1328 insertions(+), 1347 deletions(-) rename src/main/java/emu/grasscutter/{GenshinConstants.java => GameConstants.java} (96%) rename src/main/java/emu/grasscutter/data/{GenshinData.java => GameData.java} (98%) rename src/main/java/emu/grasscutter/data/{GenshinDepot.java => GameDepot.java} (92%) rename src/main/java/emu/grasscutter/data/{GenshinResource.java => GameResource.java} (72%) rename src/main/java/emu/grasscutter/game/{GenshinPlayer.java => Player.java} (93%) rename src/main/java/emu/grasscutter/game/{GenshinScene.java => Scene.java} (80%) rename src/main/java/emu/grasscutter/game/avatar/{GenshinAvatar.java => Avatar.java} (88%) rename src/main/java/emu/grasscutter/game/entity/{GenshinEntity.java => GameEntity.java} (93%) rename src/main/java/emu/grasscutter/game/inventory/{GenshinItem.java => GameItem.java} (88%) rename src/main/java/emu/grasscutter/net/packet/{GenshinPacket.java => BasePacket.java} (93%) rename src/main/java/emu/grasscutter/netty/{MihoyoKcpChannel.java => KcpChannel.java} (96%) rename src/main/java/emu/grasscutter/netty/{MihoyoKcpHandshaker.java => KcpHandshaker.java} (91%) rename src/main/java/emu/grasscutter/netty/{MihoyoKcpServer.java => KcpServer.java} (93%) rename src/main/java/emu/grasscutter/netty/{MihoyoKcpServerInitializer.java => KcpServerInitializer.java} (79%) diff --git a/src/main/java/emu/grasscutter/GenshinConstants.java b/src/main/java/emu/grasscutter/GameConstants.java similarity index 96% rename from src/main/java/emu/grasscutter/GenshinConstants.java rename to src/main/java/emu/grasscutter/GameConstants.java index 0f9eaa0b0..dc07c32e1 100644 --- a/src/main/java/emu/grasscutter/GenshinConstants.java +++ b/src/main/java/emu/grasscutter/GameConstants.java @@ -5,7 +5,7 @@ import java.util.Arrays; import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Utils; -public final class GenshinConstants { +public final class GameConstants { public static String VERSION = "2.6.0"; public static final int MAX_TEAMS = 4; diff --git a/src/main/java/emu/grasscutter/command/CommandHandler.java b/src/main/java/emu/grasscutter/command/CommandHandler.java index 037e1ed9d..7835e8b0f 100644 --- a/src/main/java/emu/grasscutter/command/CommandHandler.java +++ b/src/main/java/emu/grasscutter/command/CommandHandler.java @@ -1,7 +1,7 @@ package emu.grasscutter.command; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -12,7 +12,7 @@ public interface CommandHandler { * @param player The player to send the message to, or null for the server console. * @param message The message to send. */ - static void sendMessage(GenshinPlayer player, String message) { + static void sendMessage(Player player, String message) { if (player == null) { Grasscutter.getLogger().info(message); } else { @@ -25,6 +25,6 @@ public interface CommandHandler { * @param sender The player/console that invoked the command. * @param args The arguments to the command. */ - default void execute(GenshinPlayer sender, List<String> args) { + default void execute(Player sender, List<String> args) { } } diff --git a/src/main/java/emu/grasscutter/command/CommandMap.java b/src/main/java/emu/grasscutter/command/CommandMap.java index 19ab687ad..b1e7cdbb6 100644 --- a/src/main/java/emu/grasscutter/command/CommandMap.java +++ b/src/main/java/emu/grasscutter/command/CommandMap.java @@ -2,7 +2,7 @@ package emu.grasscutter.command; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.Account; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import org.reflections.Reflections; import java.util.*; @@ -103,7 +103,7 @@ public final class CommandMap { * @param player The player invoking the command or null for the server console. * @param rawMessage The messaged used to invoke the command. */ - public void invoke(GenshinPlayer player, String rawMessage) { + public void invoke(Player player, String rawMessage) { rawMessage = rawMessage.trim(); if (rawMessage.length() == 0) { CommandHandler.sendMessage(player, "No command specified."); diff --git a/src/main/java/emu/grasscutter/command/commands/AccountCommand.java b/src/main/java/emu/grasscutter/command/commands/AccountCommand.java index 26570e0e8..42ae06dff 100644 --- a/src/main/java/emu/grasscutter/command/commands/AccountCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/AccountCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -12,7 +12,7 @@ import java.util.List; public final class AccountCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender != null) { CommandHandler.sendMessage(sender, "This command can only be run from the console."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/BroadcastCommand.java b/src/main/java/emu/grasscutter/command/commands/BroadcastCommand.java index 4922f16f8..d17e972b7 100644 --- a/src/main/java/emu/grasscutter/command/commands/BroadcastCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/BroadcastCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -12,7 +12,7 @@ import java.util.List; public final class BroadcastCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (args.size() < 1) { CommandHandler.sendMessage(sender, "Usage: broadcast <message>"); return; @@ -20,7 +20,7 @@ public final class BroadcastCommand implements CommandHandler { String message = String.join(" ", args.subList(0, args.size())); - for (GenshinPlayer p : Grasscutter.getGameServer().getPlayers().values()) { + for (Player p : Grasscutter.getGameServer().getPlayers().values()) { CommandHandler.sendMessage(p, message); } diff --git a/src/main/java/emu/grasscutter/command/commands/ChangeSceneCommand.java b/src/main/java/emu/grasscutter/command/commands/ChangeSceneCommand.java index eb2e998f2..0b3ceab59 100644 --- a/src/main/java/emu/grasscutter/command/commands/ChangeSceneCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ChangeSceneCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -10,7 +10,7 @@ import java.util.List; description = "Changes your scene", aliases = {"scene"}, permission = "player.changescene") public final class ChangeSceneCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/ClearCommand.java b/src/main/java/emu/grasscutter/command/commands/ClearCommand.java index fc6295253..1d1312657 100644 --- a/src/main/java/emu/grasscutter/command/commands/ClearCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ClearCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.inventory.Inventory; import emu.grasscutter.game.inventory.ItemType; @@ -16,7 +16,7 @@ import java.util.List; public final class ClearCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { int target; if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); @@ -27,7 +27,7 @@ public final class ClearCommand implements CommandHandler { Inventory playerInventory = sender.getInventory(); try { target = Integer.parseInt(args.get(0)); - GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); + Player targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); if (targetPlayer == null) { target = sender.getUid(); } else { @@ -92,7 +92,7 @@ public final class ClearCommand implements CommandHandler { return; } - GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); + Player targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); if (targetPlayer == null) { CommandHandler.sendMessage(sender, "Player not found."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/DropCommand.java b/src/main/java/emu/grasscutter/command/commands/DropCommand.java index e2d7644a0..bcc127afb 100644 --- a/src/main/java/emu/grasscutter/command/commands/DropCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/DropCommand.java @@ -2,9 +2,9 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.ItemData; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityItem; import emu.grasscutter.utils.Position; @@ -15,7 +15,7 @@ import java.util.List; public final class DropCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; @@ -31,7 +31,7 @@ public final class DropCommand implements CommandHandler { int amount = 1; if (args.size() > 1) amount = Integer.parseInt(args.get(1)); - ItemData itemData = GenshinData.getItemDataMap().get(item); + ItemData itemData = GameData.getItemDataMap().get(item); if (itemData == null) { CommandHandler.sendMessage(sender, "Invalid item id."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/GiveAllCommand.java b/src/main/java/emu/grasscutter/command/commands/GiveAllCommand.java index 47ac08405..66d743fdb 100644 --- a/src/main/java/emu/grasscutter/command/commands/GiveAllCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GiveAllCommand.java @@ -3,12 +3,12 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.AvatarData; import emu.grasscutter.data.def.ItemData; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.inventory.ItemType; import java.util.*; @@ -18,7 +18,7 @@ import java.util.*; public class GiveAllCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { int target, amount = 99999; switch (args.size()) { @@ -63,7 +63,7 @@ public class GiveAllCommand implements CommandHandler { return; } - GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); + Player targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); if (targetPlayer == null) { CommandHandler.sendMessage(sender, "Player not found."); return; @@ -73,14 +73,14 @@ public class GiveAllCommand implements CommandHandler { CommandHandler.sendMessage(sender, "Giving all items done"); } - public void giveAllItems(GenshinPlayer player, int amount) { + public void giveAllItems(Player player, int amount) { CommandHandler.sendMessage(player, "Giving all items..."); - for (AvatarData avatarData: GenshinData.getAvatarDataMap().values()) { + for (AvatarData avatarData: GameData.getAvatarDataMap().values()) { //Exclude test avatar if (isTestAvatar(avatarData.getId())) continue; - GenshinAvatar avatar = new GenshinAvatar(avatarData); + Avatar avatar = new Avatar(avatarData); avatar.setLevel(90); avatar.setPromoteLevel(6); for (int i = 1; i <= 6; ++i) { @@ -92,41 +92,41 @@ public class GiveAllCommand implements CommandHandler { } //some test items - List<GenshinItem> genshinItemList = new ArrayList<>(); - for (ItemData itemdata: GenshinData.getItemDataMap().values()) { + List<GameItem> itemList = new ArrayList<>(); + for (ItemData itemdata: GameData.getItemDataMap().values()) { //Exclude test item if (isTestItem(itemdata.getId())) continue; if (itemdata.isEquip()) { for (int i = 0; i < 10; ++i) { - GenshinItem genshinItem = new GenshinItem(itemdata); + GameItem item = new GameItem(itemdata); if (itemdata.getItemType() == ItemType.ITEM_WEAPON) { - genshinItem.setLevel(90); - genshinItem.setPromoteLevel(6); - genshinItem.setRefinement(4); + item.setLevel(90); + item.setPromoteLevel(6); + item.setRefinement(4); } - genshinItemList.add(genshinItem); + itemList.add(item); } } else { - GenshinItem genshinItem = new GenshinItem(itemdata); - genshinItem.setCount(amount); - genshinItemList.add(genshinItem); + GameItem item = new GameItem(itemdata); + item.setCount(amount); + itemList.add(item); } } int packetNum = 20; - int itemLength = genshinItemList.size(); + int itemLength = itemList.size(); int number = itemLength / packetNum; int remainder = itemLength % packetNum; int offset = 0; for (int i = 0; i < packetNum; ++i) { if (remainder > 0) { - player.getInventory().addItems(genshinItemList.subList(i * number + offset, (i + 1) * number + offset + 1)); + player.getInventory().addItems(itemList.subList(i * number + offset, (i + 1) * number + offset + 1)); --remainder; ++offset; } else { - player.getInventory().addItems(genshinItemList.subList(i * number + offset, (i + 1) * number + offset)); + player.getInventory().addItems(itemList.subList(i * number + offset, (i + 1) * number + offset)); } } } diff --git a/src/main/java/emu/grasscutter/command/commands/GiveCharCommand.java b/src/main/java/emu/grasscutter/command/commands/GiveCharCommand.java index bfe0f51c0..99455feaf 100644 --- a/src/main/java/emu/grasscutter/command/commands/GiveCharCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GiveCharCommand.java @@ -3,10 +3,10 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.AvatarData; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; import java.util.List; @@ -15,7 +15,7 @@ import java.util.List; public final class GiveCharCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { int target, avatarId, level = 1, ascension; if (sender == null && args.size() < 2) { @@ -61,13 +61,13 @@ public final class GiveCharCommand implements CommandHandler { break; } - GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); + Player targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); if (targetPlayer == null) { CommandHandler.sendMessage(sender, "Player not found."); return; } - AvatarData avatarData = GenshinData.getAvatarDataMap().get(avatarId); + AvatarData avatarData = GameData.getAvatarDataMap().get(avatarId); if (avatarData == null) { CommandHandler.sendMessage(sender, "Invalid avatar id."); return; @@ -80,7 +80,7 @@ public final class GiveCharCommand implements CommandHandler { ascension = (int) Math.ceil(level / 10f) - 3; } - GenshinAvatar avatar = new GenshinAvatar(avatarId); + Avatar avatar = new Avatar(avatarId); avatar.setLevel(level); avatar.setPromoteLevel(ascension); diff --git a/src/main/java/emu/grasscutter/command/commands/GiveCommand.java b/src/main/java/emu/grasscutter/command/commands/GiveCommand.java index bd5c025be..796c7d154 100644 --- a/src/main/java/emu/grasscutter/command/commands/GiveCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GiveCommand.java @@ -3,10 +3,10 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.ItemData; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.server.packet.send.PacketItemAddHintNotify; @@ -18,7 +18,7 @@ import java.util.List; public final class GiveCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { int target, item, lvl, amount = 1; if (sender == null && args.size() < 2) { CommandHandler.sendMessage(null, "Usage: give <player> <itemId|itemName> [amount] [level]"); @@ -99,14 +99,14 @@ public final class GiveCommand implements CommandHandler { break; } - GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); + Player targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); if (targetPlayer == null) { CommandHandler.sendMessage(sender, "Player not found."); return; } - ItemData itemData = GenshinData.getItemDataMap().get(item); + ItemData itemData = GameData.getItemDataMap().get(item); if (itemData == null) { CommandHandler.sendMessage(sender, "Invalid item id."); return; @@ -121,11 +121,11 @@ public final class GiveCommand implements CommandHandler { String.format("Given %s with level %s %s times to %s", item, lvl, amount, target)); } - private void item(GenshinPlayer player, ItemData itemData, int amount, int lvl) { + private void item(Player player, ItemData itemData, int amount, int lvl) { if (itemData.isEquip()) { - List<GenshinItem> items = new LinkedList<>(); + List<GameItem> items = new LinkedList<>(); for (int i = 0; i < amount; i++) { - GenshinItem item = new GenshinItem(itemData); + GameItem item = new GameItem(itemData); item.setCount(amount); item.setLevel(lvl); item.setPromoteLevel(0); @@ -146,9 +146,9 @@ public final class GiveCommand implements CommandHandler { } player.getInventory().addItems(items, ActionReason.SubfieldDrop); } else { - GenshinItem genshinItem = new GenshinItem(itemData); - genshinItem.setCount(amount); - player.getInventory().addItem(genshinItem, ActionReason.SubfieldDrop); + GameItem item = new GameItem(itemData); + item.setCount(amount); + player.getInventory().addItem(item, ActionReason.SubfieldDrop); } } } diff --git a/src/main/java/emu/grasscutter/command/commands/GodModeCommand.java b/src/main/java/emu/grasscutter/command/commands/GodModeCommand.java index 0b4139ac1..c1ac52c87 100644 --- a/src/main/java/emu/grasscutter/command/commands/GodModeCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GodModeCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -12,7 +12,7 @@ import java.util.List; public final class GodModeCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; // TODO: toggle player's godmode statue from console or other players @@ -32,7 +32,7 @@ public final class GodModeCommand implements CommandHandler { } else { target = sender.getUid(); } - GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); + Player targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); if (targetPlayer == null) { CommandHandler.sendMessage(sender, "Player not found."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/HealCommand.java b/src/main/java/emu/grasscutter/command/commands/HealCommand.java index 27511e527..8aed7dc93 100644 --- a/src/main/java/emu/grasscutter/command/commands/HealCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/HealCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.server.packet.send.PacketAvatarFightPropUpdateNotify; import emu.grasscutter.server.packet.send.PacketAvatarLifeStateChangeNotify; @@ -13,7 +13,7 @@ import java.util.List; description = "Heal all characters in your current team.", permission = "player.heal") public final class HealCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/HelpCommand.java b/src/main/java/emu/grasscutter/command/commands/HelpCommand.java index abe78e7d3..890795c46 100644 --- a/src/main/java/emu/grasscutter/command/commands/HelpCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/HelpCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.command.CommandMap; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.*; @@ -12,7 +12,7 @@ import java.util.*; public final class HelpCommand implements CommandHandler { @Override - public void execute(GenshinPlayer player, List<String> args) { + public void execute(Player player, List<String> args) { if (args.size() < 1) { HashMap<String, CommandHandler> handlers = CommandMap.getInstance().getHandlers(); List<Command> annotations = new ArrayList<>(); @@ -53,7 +53,7 @@ public final class HelpCommand implements CommandHandler { } } - void SendAllHelpMessage(GenshinPlayer player, List<Command> annotations) { + void SendAllHelpMessage(Player player, List<Command> annotations) { if (player == null) { StringBuilder builder = new StringBuilder("\nAvailable commands:\n"); annotations.forEach(annotation -> { diff --git a/src/main/java/emu/grasscutter/command/commands/KickCommand.java b/src/main/java/emu/grasscutter/command/commands/KickCommand.java index 61e9d759b..41e28ca30 100644 --- a/src/main/java/emu/grasscutter/command/commands/KickCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/KickCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -12,10 +12,10 @@ import java.util.List; public final class KickCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { int target = Integer.parseInt(args.get(0)); - GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); + Player targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); if (targetPlayer == null) { CommandHandler.sendMessage(sender, "Player not found."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java b/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java index 436691b57..5da4d4605 100644 --- a/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java @@ -3,8 +3,8 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.GenshinScene; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.Scene; import emu.grasscutter.game.entity.EntityMonster; import java.util.List; @@ -14,9 +14,9 @@ import java.util.List; public final class KillAllCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { - GenshinScene scene; - GenshinPlayer genshinPlayer; + public void execute(Player sender, List<String> args) { + Scene mainScene; + Player targetPlayer; try { switch (args.size()) { @@ -25,38 +25,38 @@ public final class KillAllCommand implements CommandHandler { CommandHandler.sendMessage(null, "Usage: killall [playerUid] [sceneId]"); return; } - scene = sender.getScene(); + mainScene = sender.getScene(); break; case 1: // [playerUid] - genshinPlayer = Grasscutter.getGameServer().getPlayerByUid(Integer.parseInt(args.get(0))); - if (genshinPlayer == null) { + targetPlayer = Grasscutter.getGameServer().getPlayerByUid(Integer.parseInt(args.get(0))); + if (targetPlayer == null) { CommandHandler.sendMessage(sender, "Player not found or offline."); return; } - scene = genshinPlayer.getScene(); + mainScene = targetPlayer.getScene(); break; case 2: // [playerUid] [sceneId] - genshinPlayer = Grasscutter.getGameServer().getPlayerByUid(Integer.parseInt(args.get(0))); - if (genshinPlayer == null) { + targetPlayer = Grasscutter.getGameServer().getPlayerByUid(Integer.parseInt(args.get(0))); + if (targetPlayer == null) { CommandHandler.sendMessage(sender, "Player not found or offline."); return; } - GenshinScene genshinScene = sender.getWorld().getSceneById(Integer.parseInt(args.get(1))); - if (genshinScene == null) { + Scene scene = sender.getWorld().getSceneById(Integer.parseInt(args.get(1))); + if (scene == null) { CommandHandler.sendMessage(sender, "Scene not found in player world"); return; } - scene = genshinScene; + mainScene = scene; break; default: CommandHandler.sendMessage(sender, "Usage: killall [playerUid] [sceneId]"); return; } - scene.getEntities().values().stream() + mainScene.getEntities().values().stream() .filter(entity -> entity instanceof EntityMonster) - .forEach(entity -> scene.killEntity(entity, 0)); - CommandHandler.sendMessage(sender, "Killing all monsters in scene " + scene.getId()); + .forEach(entity -> mainScene.killEntity(entity, 0)); + CommandHandler.sendMessage(sender, "Killing all monsters in scene " + mainScene.getId()); } catch (NumberFormatException ignored) { CommandHandler.sendMessage(sender, "Invalid arguments."); } diff --git a/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java b/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java index beaa4f959..a1f8944ea 100644 --- a/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; @@ -17,7 +17,7 @@ import java.util.List; public final class KillCharacterCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { int target; if (sender == null) { // from console @@ -48,7 +48,7 @@ public final class KillCharacterCommand implements CommandHandler { } } - GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); + Player targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); if (targetPlayer == null) { CommandHandler.sendMessage(sender, "Player not found or offline."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/ListCommand.java b/src/main/java/emu/grasscutter/command/commands/ListCommand.java index 1fb7f0eed..23a042bf0 100644 --- a/src/main/java/emu/grasscutter/command/commands/ListCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ListCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; import java.util.Map; @@ -12,8 +12,8 @@ import java.util.Map; public final class ListCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { - Map<Integer, GenshinPlayer> playersMap = Grasscutter.getGameServer().getPlayers(); + public void execute(Player sender, List<String> args) { + Map<Integer, Player> playersMap = Grasscutter.getGameServer().getPlayers(); CommandHandler.sendMessage(sender, String.format("There are %s player(s) online:", playersMap.size())); diff --git a/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java b/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java index 7218bf2cd..37d2d97d1 100644 --- a/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java @@ -4,7 +4,7 @@ import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.game.Account; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -13,7 +13,7 @@ import java.util.List; public final class PermissionCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (args.size() < 3) { CommandHandler.sendMessage(sender, "Usage: permission <add|remove> <username> <permission>"); return; diff --git a/src/main/java/emu/grasscutter/command/commands/PositionCommand.java b/src/main/java/emu/grasscutter/command/commands/PositionCommand.java index 8bdf3c754..8330aba0a 100644 --- a/src/main/java/emu/grasscutter/command/commands/PositionCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/PositionCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -11,7 +11,7 @@ import java.util.List; public final class PositionCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java b/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java index b145aaf94..93264b168 100644 --- a/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -12,7 +12,7 @@ import java.util.List; public final class ReloadCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { CommandHandler.sendMessage(sender, "Reloading config."); Grasscutter.loadConfig(); Grasscutter.getGameServer().getGachaManager().load(); diff --git a/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java b/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java index 77f16f9b8..609ed21cc 100644 --- a/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java @@ -2,8 +2,8 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityAvatar; import java.util.List; @@ -14,7 +14,7 @@ import java.util.List; public final class ResetConstCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; @@ -29,14 +29,14 @@ public final class ResetConstCommand implements CommandHandler { return; } - GenshinAvatar avatar = entity.getAvatar(); + Avatar avatar = entity.getAvatar(); this.resetConstellation(avatar); sender.dropMessage("Constellations for " + avatar.getAvatarData().getName() + " have been reset. Please relog to see changes."); } } - private void resetConstellation(GenshinAvatar avatar) { + private void resetConstellation(Avatar avatar) { avatar.getTalentIdList().clear(); avatar.setCoreProudSkillLevel(0); avatar.recalcStats(); diff --git a/src/main/java/emu/grasscutter/command/commands/RestartCommand.java b/src/main/java/emu/grasscutter/command/commands/RestartCommand.java index cf40fa9bd..377e37e20 100644 --- a/src/main/java/emu/grasscutter/command/commands/RestartCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/RestartCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -10,7 +10,7 @@ import java.util.List; public final class RestartCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { sender.getSession().close(); } } diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java index 7973bafbe..412af4734 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -4,7 +4,7 @@ import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.Mail; import emu.grasscutter.server.packet.send.PacketMailChangeNotify; @@ -27,7 +27,7 @@ public class SendMailCommand implements CommandHandler { // Yes this is awful and I hate it. @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { int senderId; if(sender != null) { senderId = sender.getUid(); @@ -77,7 +77,7 @@ public class SendMailCommand implements CommandHandler { Grasscutter.getGameServer().getPlayerByUid(mailBuilder.recipient, true).sendMail(mailBuilder.mail); CommandHandler.sendMessage(sender, "Message sent to user " + mailBuilder.recipient + "!"); } else { - for (GenshinPlayer player : DatabaseHelper.getAllPlayers()) { + for (Player player : DatabaseHelper.getAllPlayers()) { Grasscutter.getGameServer().getPlayerByUid(player.getUid(), true).sendMail(mailBuilder.mail); } CommandHandler.sendMessage(sender, "Message sent to all users!"); diff --git a/src/main/java/emu/grasscutter/command/commands/SendMessageCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMessageCommand.java index 061009c19..a74908a93 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMessageCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMessageCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -12,7 +12,7 @@ import java.util.List; public final class SendMessageCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (args.size() < 2) { CommandHandler.sendMessage(null, "Usage: sendmessage <player> <message>"); return; @@ -22,7 +22,7 @@ public final class SendMessageCommand implements CommandHandler { int target = Integer.parseInt(args.get(0)); String message = String.join(" ", args.subList(1, args.size())); - GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); + Player targetPlayer = Grasscutter.getGameServer().getPlayerByUid(target); if (targetPlayer == null) { CommandHandler.sendMessage(sender, "Player not found."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java b/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java index 565a480dc..fd9e31561 100644 --- a/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java @@ -4,9 +4,9 @@ import java.util.List; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.data.GenshinData; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.data.GameData; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.server.packet.send.PacketAvatarFetterDataNotify; @Command(label = "setfetterlevel", usage = "setfetterlevel <level>", @@ -15,7 +15,7 @@ import emu.grasscutter.server.packet.send.PacketAvatarFetterDataNotify; public final class SetFetterLevelCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; @@ -32,11 +32,11 @@ public final class SetFetterLevelCommand implements CommandHandler { CommandHandler.sendMessage(sender, "Fetter level must be between 0 and 10."); return; } - GenshinAvatar avatar = sender.getTeamManager().getCurrentAvatarEntity().getAvatar(); + Avatar avatar = sender.getTeamManager().getCurrentAvatarEntity().getAvatar(); avatar.setFetterLevel(fetterLevel); if (fetterLevel != 10) { - avatar.setFetterExp(GenshinData.getAvatarFetterLevelDataMap().get(fetterLevel).getExp()); + avatar.setFetterExp(GameData.getAvatarFetterLevelDataMap().get(fetterLevel).getExp()); } avatar.save(); diff --git a/src/main/java/emu/grasscutter/command/commands/SetStatsCommand.java b/src/main/java/emu/grasscutter/command/commands/SetStatsCommand.java index d7d27a24a..d923e28e3 100644 --- a/src/main/java/emu/grasscutter/command/commands/SetStatsCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SetStatsCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify; @@ -14,7 +14,7 @@ import java.util.List; public final class SetStatsCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java b/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java index 2499293d4..175bf752f 100644 --- a/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.props.PlayerProperty; import java.util.List; @@ -13,7 +13,7 @@ import java.util.List; public final class SetWorldLevelCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; // TODO: set player's world level from console or other players diff --git a/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java b/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java index 969872119..d0aacd805 100644 --- a/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java @@ -2,9 +2,9 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.MonsterData; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityMonster; import emu.grasscutter.utils.Position; @@ -15,7 +15,7 @@ import java.util.List; public final class SpawnCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; @@ -31,7 +31,7 @@ public final class SpawnCommand implements CommandHandler { int level = args.size() > 1 ? Integer.parseInt(args.get(1)) : 1; int amount = args.size() > 2 ? Integer.parseInt(args.get(2)) : 1; - MonsterData entityData = GenshinData.getMonsterDataMap().get(entity); + MonsterData entityData = GameData.getMonsterDataMap().get(entity); if (entityData == null) { CommandHandler.sendMessage(sender, "Invalid entity id."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/StopCommand.java b/src/main/java/emu/grasscutter/command/commands/StopCommand.java index 4b63cd44e..23b7fca4f 100644 --- a/src/main/java/emu/grasscutter/command/commands/StopCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/StopCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import java.util.List; @@ -12,9 +12,9 @@ import java.util.List; public final class StopCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { CommandHandler.sendMessage(null, "Server shutting down..."); - for (GenshinPlayer p : Grasscutter.getGameServer().getPlayers().values()) { + for (Player p : Grasscutter.getGameServer().getPlayers().values()) { CommandHandler.sendMessage(p, "Server shutting down..."); } diff --git a/src/main/java/emu/grasscutter/command/commands/TalentCommand.java b/src/main/java/emu/grasscutter/command/commands/TalentCommand.java index 59fc83226..2d12fd19f 100644 --- a/src/main/java/emu/grasscutter/command/commands/TalentCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/TalentCommand.java @@ -3,8 +3,8 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.data.def.AvatarSkillDepotData; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.server.packet.send.PacketAvatarSkillChangeNotify; import emu.grasscutter.server.packet.send.PacketAvatarSkillUpgradeRsp; @@ -16,7 +16,7 @@ import java.util.List; public final class TalentCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; @@ -41,7 +41,7 @@ public final class TalentCommand implements CommandHandler { int skillId = Integer.parseInt(args.get(1)); int nextLevel = Integer.parseInt(args.get(2)); EntityAvatar entity = sender.getTeamManager().getCurrentAvatarEntity(); - GenshinAvatar avatar = entity.getAvatar(); + Avatar avatar = entity.getAvatar(); int skillIdNorAtk = avatar.getData().getSkillDepot().getSkills().get(0); int skillIdE = avatar.getData().getSkillDepot().getSkills().get(1); int skillIdQ = avatar.getData().getSkillDepot().getEnergySkill(); @@ -97,7 +97,7 @@ public final class TalentCommand implements CommandHandler { case "n": case "e": case "q": try { EntityAvatar entity = sender.getTeamManager().getCurrentAvatarEntity(); - GenshinAvatar avatar = entity.getAvatar(); + Avatar avatar = entity.getAvatar(); AvatarSkillDepotData SkillDepot = avatar.getData().getSkillDepot(); int skillId; switch (cmdSwitch) { @@ -135,7 +135,7 @@ public final class TalentCommand implements CommandHandler { break; case "getid": EntityAvatar entity = sender.getTeamManager().getCurrentAvatarEntity(); - GenshinAvatar avatar = entity.getAvatar(); + Avatar avatar = entity.getAvatar(); int skillIdNorAtk = avatar.getData().getSkillDepot().getSkills().get(0); int skillIdE = avatar.getData().getSkillDepot().getSkills().get(1); int skillIdQ = avatar.getData().getSkillDepot().getEnergySkill(); diff --git a/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java b/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java index 6b08fb333..ff2f208c3 100644 --- a/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.utils.Position; import java.util.List; @@ -12,7 +12,7 @@ import java.util.List; public final class TeleportCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; diff --git a/src/main/java/emu/grasscutter/command/commands/WeatherCommand.java b/src/main/java/emu/grasscutter/command/commands/WeatherCommand.java index bb9ae4a42..11f863f87 100644 --- a/src/main/java/emu/grasscutter/command/commands/WeatherCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/WeatherCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.props.ClimateType; import emu.grasscutter.server.packet.send.PacketSceneAreaWeatherNotify; @@ -13,7 +13,7 @@ import java.util.List; public final class WeatherCommand implements CommandHandler { @Override - public void execute(GenshinPlayer sender, List<String> args) { + public void execute(Player sender, List<String> args) { if (sender == null) { CommandHandler.sendMessage(null, "Run this command in-game."); return; diff --git a/src/main/java/emu/grasscutter/data/GenshinData.java b/src/main/java/emu/grasscutter/data/GameData.java similarity index 98% rename from src/main/java/emu/grasscutter/data/GenshinData.java rename to src/main/java/emu/grasscutter/data/GameData.java index 29410b1c7..4c7363054 100644 --- a/src/main/java/emu/grasscutter/data/GenshinData.java +++ b/src/main/java/emu/grasscutter/data/GameData.java @@ -16,7 +16,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -public class GenshinData { +public class GameData { // BinOutputs private static final Int2ObjectMap<String> abilityHashes = new Int2ObjectOpenHashMap<>(); private static final Map<String, AbilityEmbryoEntry> abilityEmbryos = new HashMap<>(); @@ -69,7 +69,7 @@ public class GenshinData { Int2ObjectMap<?> map = null; try { - Field field = GenshinData.class.getDeclaredField(Utils.lowerCaseFirstChar(resourceDefinition.getSimpleName()) + "Map"); + Field field = GameData.class.getDeclaredField(Utils.lowerCaseFirstChar(resourceDefinition.getSimpleName()) + "Map"); field.setAccessible(true); map = (Int2ObjectMap<?>) field.get(null); diff --git a/src/main/java/emu/grasscutter/data/GenshinDepot.java b/src/main/java/emu/grasscutter/data/GameDepot.java similarity index 92% rename from src/main/java/emu/grasscutter/data/GenshinDepot.java rename to src/main/java/emu/grasscutter/data/GameDepot.java index 7281853df..fa5aecba5 100644 --- a/src/main/java/emu/grasscutter/data/GenshinDepot.java +++ b/src/main/java/emu/grasscutter/data/GameDepot.java @@ -15,21 +15,21 @@ import emu.grasscutter.utils.WeightedList; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -public class GenshinDepot { +public class GameDepot { private static Int2ObjectMap<WeightedList<ReliquaryMainPropData>> relicMainPropDepot = new Int2ObjectOpenHashMap<>(); private static Int2ObjectMap<List<ReliquaryAffixData>> relicAffixDepot = new Int2ObjectOpenHashMap<>(); private static Int2ObjectMap<SpatialIndex<SpawnGroupEntry>> spawnLists = new Int2ObjectOpenHashMap<>(); public static void load() { - for (ReliquaryMainPropData data : GenshinData.getReliquaryMainPropDataMap().values()) { + for (ReliquaryMainPropData data : GameData.getReliquaryMainPropDataMap().values()) { if (data.getWeight() <= 0 || data.getPropDepotId() <= 0) { continue; } WeightedList<ReliquaryMainPropData> list = relicMainPropDepot.computeIfAbsent(data.getPropDepotId(), k -> new WeightedList<>()); list.add(data.getWeight(), data); } - for (ReliquaryAffixData data : GenshinData.getReliquaryAffixDataMap().values()) { + for (ReliquaryAffixData data : GameData.getReliquaryAffixDataMap().values()) { if (data.getWeight() <= 0 || data.getDepotId() <= 0) { continue; } diff --git a/src/main/java/emu/grasscutter/data/GenshinResource.java b/src/main/java/emu/grasscutter/data/GameResource.java similarity index 72% rename from src/main/java/emu/grasscutter/data/GenshinResource.java rename to src/main/java/emu/grasscutter/data/GameResource.java index 92e06354e..f3d47a516 100644 --- a/src/main/java/emu/grasscutter/data/GenshinResource.java +++ b/src/main/java/emu/grasscutter/data/GameResource.java @@ -1,6 +1,6 @@ package emu.grasscutter.data; -public abstract class GenshinResource { +public abstract class GameResource { public int getId() { return 0; diff --git a/src/main/java/emu/grasscutter/data/ResourceLoader.java b/src/main/java/emu/grasscutter/data/ResourceLoader.java index 57d0ea824..589f6aca8 100644 --- a/src/main/java/emu/grasscutter/data/ResourceLoader.java +++ b/src/main/java/emu/grasscutter/data/ResourceLoader.java @@ -27,7 +27,7 @@ public class ResourceLoader { public static List<Class<?>> getResourceDefClasses() { Reflections reflections = new Reflections(ResourceLoader.class.getPackage().getName()); - Set<?> classes = reflections.getSubTypesOf(GenshinResource.class); + Set<?> classes = reflections.getSubTypesOf(GameResource.class); List<Class<?>> classList = new ArrayList<>(classes.size()); classes.forEach(o -> { @@ -50,12 +50,12 @@ public class ResourceLoader { loadResources(); loadScenePoints(); // Process into depots - GenshinDepot.load(); + GameDepot.load(); // Load spawn data loadSpawnData(); // Custom - TODO move this somewhere else try { - GenshinData.getAvatarSkillDepotDataMap().get(504).setAbilities( + GameData.getAvatarSkillDepotDataMap().get(504).setAbilities( new AbilityEmbryoEntry( "", new String[] { @@ -68,7 +68,7 @@ public class ResourceLoader { "Avatar_Player_WindBreathe_CameraController" } )); - GenshinData.getAvatarSkillDepotDataMap().get(704).setAbilities( + GameData.getAvatarSkillDepotDataMap().get(704).setAbilities( new AbilityEmbryoEntry( "", new String[] { @@ -95,7 +95,7 @@ public class ResourceLoader { } @SuppressWarnings("rawtypes") - Int2ObjectMap map = GenshinData.getMapByResourceDef(resourceDefinition); + Int2ObjectMap map = GameData.getMapByResourceDef(resourceDefinition); if (map == null) { continue; @@ -123,7 +123,7 @@ public class ResourceLoader { List list = Grasscutter.getGsonFactory().fromJson(fileReader, TypeToken.getParameterized(Collection.class, c).getType()); for (Object o : list) { - GenshinResource res = (GenshinResource) o; + GameResource res = (GameResource) o; res.onLoad(); map.put(res.getId(), res); } @@ -170,7 +170,7 @@ public class ResourceLoader { } for (ScenePointEntry entry : scenePointList) { - GenshinData.getScenePointEntries().put(entry.getName(), entry); + GameData.getScenePointEntries().put(entry.getName(), entry); } } } @@ -233,7 +233,7 @@ public class ResourceLoader { } for (AbilityEmbryoEntry entry : embryoList) { - GenshinData.getAbilityEmbryoInfo().put(entry.getName(), entry); + GameData.getAbilityEmbryoInfo().put(entry.getName(), entry); } } @@ -260,7 +260,7 @@ public class ResourceLoader { entry.getSpawns().stream().forEach(s -> { s.setGroup(entry); }); - GenshinDepot.getSpawnListById(entry.getSceneId()).insert(entry, entry.getPos().getX(), entry.getPos().getZ()); + GameDepot.getSpawnListById(entry.getSceneId()).insert(entry, entry.getPos().getX(), entry.getPos().getZ()); } } @@ -328,7 +328,7 @@ public class ResourceLoader { } for (OpenConfigEntry entry : list) { - GenshinData.getOpenConfigEntries().put(entry.getName(), entry); + GameData.getOpenConfigEntries().put(entry.getName(), entry); } } diff --git a/src/main/java/emu/grasscutter/data/def/AvatarCostumeData.java b/src/main/java/emu/grasscutter/data/def/AvatarCostumeData.java index b45bac9c7..c6166bd71 100644 --- a/src/main/java/emu/grasscutter/data/def/AvatarCostumeData.java +++ b/src/main/java/emu/grasscutter/data/def/AvatarCostumeData.java @@ -1,11 +1,11 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinData; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameData; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; @ResourceType(name = "AvatarCostumeExcelConfigData.json") -public class AvatarCostumeData extends GenshinResource { +public class AvatarCostumeData extends GameResource { private int CostumeId; private int ItemId; private int AvatarId; @@ -25,6 +25,6 @@ public class AvatarCostumeData extends GenshinResource { @Override public void onLoad() { - GenshinData.getAvatarCostumeDataItemIdMap().put(this.getItemId(), this); + GameData.getAvatarCostumeDataItemIdMap().put(this.getItemId(), this); } } diff --git a/src/main/java/emu/grasscutter/data/def/AvatarCurveData.java b/src/main/java/emu/grasscutter/data/def/AvatarCurveData.java index da560b2b8..586c0517d 100644 --- a/src/main/java/emu/grasscutter/data/def/AvatarCurveData.java +++ b/src/main/java/emu/grasscutter/data/def/AvatarCurveData.java @@ -4,12 +4,12 @@ import java.util.HashMap; import java.util.Map; import java.util.stream.Stream; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.common.CurveInfo; @ResourceType(name = "AvatarCurveExcelConfigData.json") -public class AvatarCurveData extends GenshinResource { +public class AvatarCurveData extends GameResource { private int Level; private CurveInfo[] CurveInfos; diff --git a/src/main/java/emu/grasscutter/data/def/AvatarData.java b/src/main/java/emu/grasscutter/data/def/AvatarData.java index 3beb21eec..27555fc0d 100644 --- a/src/main/java/emu/grasscutter/data/def/AvatarData.java +++ b/src/main/java/emu/grasscutter/data/def/AvatarData.java @@ -2,8 +2,8 @@ package emu.grasscutter.data.def; import java.util.List; -import emu.grasscutter.data.GenshinData; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameData; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.data.common.PropGrowCurve; @@ -15,7 +15,7 @@ import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; @ResourceType(name = "AvatarExcelConfigData.json", loadPriority = LoadPriority.LOW) -public class AvatarData extends GenshinResource { +public class AvatarData extends GameResource { private String name; private String IconName; @@ -178,7 +178,7 @@ public class AvatarData extends GenshinResource { if (growCurve == null) { return 1f; } - AvatarCurveData curveData = GenshinData.getAvatarCurveDataMap().get(level); + AvatarCurveData curveData = GameData.getAvatarCurveDataMap().get(level); if (curveData == null) { return 1f; } @@ -211,24 +211,24 @@ public class AvatarData extends GenshinResource { @Override public void onLoad() { - this.skillDepot = GenshinData.getAvatarSkillDepotDataMap().get(this.SkillDepotId); + this.skillDepot = GameData.getAvatarSkillDepotDataMap().get(this.SkillDepotId); - // Get fetters from GenshinData - this.fetters = GenshinData.getFetterDataEntries().get(this.Id); + // Get fetters from GameData + this.fetters = GameData.getFetterDataEntries().get(this.Id); - if (GenshinData.getFetterCharacterCardDataMap().get(this.Id) != null) { - this.nameCardRewardId = GenshinData.getFetterCharacterCardDataMap().get(this.Id).getRewardId(); + if (GameData.getFetterCharacterCardDataMap().get(this.Id) != null) { + this.nameCardRewardId = GameData.getFetterCharacterCardDataMap().get(this.Id).getRewardId(); } - if (GenshinData.getRewardDataMap().get(this.nameCardRewardId) != null) { - this.nameCardId = GenshinData.getRewardDataMap().get(this.nameCardRewardId).getRewardItemList().get(0).getItemId(); + if (GameData.getRewardDataMap().get(this.nameCardRewardId) != null) { + this.nameCardId = GameData.getRewardDataMap().get(this.nameCardRewardId).getRewardItemList().get(0).getItemId(); } - int size = GenshinData.getAvatarCurveDataMap().size(); + int size = GameData.getAvatarCurveDataMap().size(); this.hpGrowthCurve = new float[size]; this.attackGrowthCurve = new float[size]; this.defenseGrowthCurve = new float[size]; - for (AvatarCurveData curveData : GenshinData.getAvatarCurveDataMap().values()) { + for (AvatarCurveData curveData : GameData.getAvatarCurveDataMap().values()) { int level = curveData.getLevel() - 1; for (PropGrowCurve growCurve : this.PropGrowCurves) { FightProperty prop = FightProperty.getPropByName(growCurve.getType()); @@ -260,7 +260,7 @@ public class AvatarData extends GenshinResource { if (split.length > 0) { this.name = split[split.length - 1]; - AbilityEmbryoEntry info = GenshinData.getAbilityEmbryoInfo().get(this.name); + AbilityEmbryoEntry info = GameData.getAbilityEmbryoInfo().get(this.name); if (info != null) { this.abilities = new IntArrayList(info.getAbilities().length); for (String ability : info.getAbilities()) { diff --git a/src/main/java/emu/grasscutter/data/def/AvatarFetterLevelData.java b/src/main/java/emu/grasscutter/data/def/AvatarFetterLevelData.java index 8dd93eea5..a02915069 100644 --- a/src/main/java/emu/grasscutter/data/def/AvatarFetterLevelData.java +++ b/src/main/java/emu/grasscutter/data/def/AvatarFetterLevelData.java @@ -1,10 +1,10 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; @ResourceType(name = "AvatarFettersLevelExcelConfigData.json") -public class AvatarFetterLevelData extends GenshinResource { +public class AvatarFetterLevelData extends GameResource { private int FetterLevel; private int NeedExp; diff --git a/src/main/java/emu/grasscutter/data/def/AvatarFlycloakData.java b/src/main/java/emu/grasscutter/data/def/AvatarFlycloakData.java index 29d04cce5..100a6c87c 100644 --- a/src/main/java/emu/grasscutter/data/def/AvatarFlycloakData.java +++ b/src/main/java/emu/grasscutter/data/def/AvatarFlycloakData.java @@ -1,10 +1,10 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; @ResourceType(name = "AvatarFlycloakExcelConfigData.json") -public class AvatarFlycloakData extends GenshinResource { +public class AvatarFlycloakData extends GameResource { private int FlycloakId; private long NameTextMapHash; diff --git a/src/main/java/emu/grasscutter/data/def/AvatarLevelData.java b/src/main/java/emu/grasscutter/data/def/AvatarLevelData.java index f7586f690..bc6ca671c 100644 --- a/src/main/java/emu/grasscutter/data/def/AvatarLevelData.java +++ b/src/main/java/emu/grasscutter/data/def/AvatarLevelData.java @@ -1,10 +1,10 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; @ResourceType(name = "AvatarLevelExcelConfigData.json") -public class AvatarLevelData extends GenshinResource { +public class AvatarLevelData extends GameResource { private int Level; private int Exp; diff --git a/src/main/java/emu/grasscutter/data/def/AvatarPromoteData.java b/src/main/java/emu/grasscutter/data/def/AvatarPromoteData.java index 2a40d44ad..c397902e4 100644 --- a/src/main/java/emu/grasscutter/data/def/AvatarPromoteData.java +++ b/src/main/java/emu/grasscutter/data/def/AvatarPromoteData.java @@ -1,13 +1,13 @@ package emu.grasscutter.data.def; import java.util.ArrayList; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.common.FightPropData; import emu.grasscutter.data.common.ItemParamData; @ResourceType(name = "AvatarPromoteExcelConfigData.json") -public class AvatarPromoteData extends GenshinResource { +public class AvatarPromoteData extends GameResource { private int AvatarPromoteId; private int PromoteLevel; diff --git a/src/main/java/emu/grasscutter/data/def/AvatarSkillData.java b/src/main/java/emu/grasscutter/data/def/AvatarSkillData.java index 147c22d10..3efc2a142 100644 --- a/src/main/java/emu/grasscutter/data/def/AvatarSkillData.java +++ b/src/main/java/emu/grasscutter/data/def/AvatarSkillData.java @@ -2,12 +2,12 @@ package emu.grasscutter.data.def; import java.util.List; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType.LoadPriority; @ResourceType(name = "AvatarSkillExcelConfigData.json", loadPriority = LoadPriority.HIGHEST) -public class AvatarSkillData extends GenshinResource { +public class AvatarSkillData extends GameResource { private int Id; private float CdTime; private int CostElemVal; diff --git a/src/main/java/emu/grasscutter/data/def/AvatarSkillDepotData.java b/src/main/java/emu/grasscutter/data/def/AvatarSkillDepotData.java index 4beb6ec8c..7916bfd45 100644 --- a/src/main/java/emu/grasscutter/data/def/AvatarSkillDepotData.java +++ b/src/main/java/emu/grasscutter/data/def/AvatarSkillDepotData.java @@ -2,8 +2,8 @@ package emu.grasscutter.data.def; import java.util.List; -import emu.grasscutter.data.GenshinData; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameData; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.data.custom.AbilityEmbryoEntry; @@ -13,7 +13,7 @@ import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; @ResourceType(name = "AvatarSkillDepotExcelConfigData.json", loadPriority = LoadPriority.HIGH) -public class AvatarSkillDepotData extends GenshinResource { +public class AvatarSkillDepotData extends GameResource { private int Id; private int EnergySkill; @@ -94,7 +94,7 @@ public class AvatarSkillDepotData extends GenshinResource { @Override public void onLoad() { - this.energySkillData = GenshinData.getAvatarSkillDataMap().get(this.EnergySkill); + this.energySkillData = GameData.getAvatarSkillDataMap().get(this.EnergySkill); if (getEnergySkillData() != null) { this.elementType = ElementType.getTypeByName(getEnergySkillData().getCostElemType()); } else { diff --git a/src/main/java/emu/grasscutter/data/def/AvatarTalentData.java b/src/main/java/emu/grasscutter/data/def/AvatarTalentData.java index 6708da8c8..fdf96875d 100644 --- a/src/main/java/emu/grasscutter/data/def/AvatarTalentData.java +++ b/src/main/java/emu/grasscutter/data/def/AvatarTalentData.java @@ -1,13 +1,13 @@ package emu.grasscutter.data.def; import java.util.ArrayList; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.data.common.FightPropData; @ResourceType(name = "AvatarTalentExcelConfigData.json", loadPriority = LoadPriority.HIGHEST) -public class AvatarTalentData extends GenshinResource { +public class AvatarTalentData extends GameResource { private int TalentId; private int PrevTalent; private long NameTextMapHash; diff --git a/src/main/java/emu/grasscutter/data/def/EquipAffixData.java b/src/main/java/emu/grasscutter/data/def/EquipAffixData.java index af08276df..9020c7b46 100644 --- a/src/main/java/emu/grasscutter/data/def/EquipAffixData.java +++ b/src/main/java/emu/grasscutter/data/def/EquipAffixData.java @@ -1,12 +1,12 @@ package emu.grasscutter.data.def; import java.util.ArrayList; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.common.FightPropData; @ResourceType(name = "EquipAffixExcelConfigData.json") -public class EquipAffixData extends GenshinResource { +public class EquipAffixData extends GameResource { private int AffixId; private int Id; diff --git a/src/main/java/emu/grasscutter/data/def/FetterCharacterCardData.java b/src/main/java/emu/grasscutter/data/def/FetterCharacterCardData.java index 2bf96ad8e..62e323509 100644 --- a/src/main/java/emu/grasscutter/data/def/FetterCharacterCardData.java +++ b/src/main/java/emu/grasscutter/data/def/FetterCharacterCardData.java @@ -1,11 +1,11 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType.LoadPriority; @ResourceType(name = "FetterCharacterCardExcelConfigData.json", loadPriority = LoadPriority.HIGHEST) -public class FetterCharacterCardData extends GenshinResource { +public class FetterCharacterCardData extends GameResource { private int AvatarId; private int RewardId; diff --git a/src/main/java/emu/grasscutter/data/def/FetterData.java b/src/main/java/emu/grasscutter/data/def/FetterData.java index dc88fd795..f4e6abbd9 100644 --- a/src/main/java/emu/grasscutter/data/def/FetterData.java +++ b/src/main/java/emu/grasscutter/data/def/FetterData.java @@ -2,13 +2,13 @@ package emu.grasscutter.data.def; import java.util.List; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.data.common.OpenCondData; @ResourceType(name = {"FetterInfoExcelConfigData.json", "FettersExcelConfigData.json", "FetterStoryExcelConfigData.json"}, loadPriority = LoadPriority.HIGHEST) -public class FetterData extends GenshinResource { +public class FetterData extends GameResource { private int AvatarId; private int FetterId; private List<OpenCondData> OpenCond; diff --git a/src/main/java/emu/grasscutter/data/def/GadgetData.java b/src/main/java/emu/grasscutter/data/def/GadgetData.java index ec7754863..7a071972b 100644 --- a/src/main/java/emu/grasscutter/data/def/GadgetData.java +++ b/src/main/java/emu/grasscutter/data/def/GadgetData.java @@ -1,10 +1,10 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; @ResourceType(name = "GadgetExcelConfigData.json") -public class GadgetData extends GenshinResource { +public class GadgetData extends GameResource { private int Id; private String Type; diff --git a/src/main/java/emu/grasscutter/data/def/ItemData.java b/src/main/java/emu/grasscutter/data/def/ItemData.java index 25be666e7..5cd1df751 100644 --- a/src/main/java/emu/grasscutter/data/def/ItemData.java +++ b/src/main/java/emu/grasscutter/data/def/ItemData.java @@ -1,13 +1,13 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.game.props.FightProperty; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; import it.unimi.dsi.fastutil.ints.IntSet; @ResourceType(name = {"MaterialExcelConfigData.json", "WeaponExcelConfigData.json", "ReliquaryExcelConfigData.json"}) -public class ItemData extends GenshinResource { +public class ItemData extends GameResource { private int Id; private int StackLimit = 1; diff --git a/src/main/java/emu/grasscutter/data/def/MonsterCurveData.java b/src/main/java/emu/grasscutter/data/def/MonsterCurveData.java index 77a44bd6a..07c705403 100644 --- a/src/main/java/emu/grasscutter/data/def/MonsterCurveData.java +++ b/src/main/java/emu/grasscutter/data/def/MonsterCurveData.java @@ -4,12 +4,12 @@ import java.util.HashMap; import java.util.Map; import java.util.stream.Stream; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.common.CurveInfo; @ResourceType(name = "MonsterCurveExcelConfigData.json") -public class MonsterCurveData extends GenshinResource { +public class MonsterCurveData extends GameResource { private int Level; private CurveInfo[] CurveInfos; diff --git a/src/main/java/emu/grasscutter/data/def/MonsterData.java b/src/main/java/emu/grasscutter/data/def/MonsterData.java index 2cf41bf7e..341a10ce0 100644 --- a/src/main/java/emu/grasscutter/data/def/MonsterData.java +++ b/src/main/java/emu/grasscutter/data/def/MonsterData.java @@ -2,14 +2,14 @@ package emu.grasscutter.data.def; import java.util.List; -import emu.grasscutter.data.GenshinData; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameData; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.data.common.PropGrowCurve; @ResourceType(name = "MonsterExcelConfigData.json", loadPriority = LoadPriority.LOW) -public class MonsterData extends GenshinResource { +public class MonsterData extends GameResource { private int Id; private String MonsterName; @@ -168,13 +168,13 @@ public class MonsterData extends GenshinResource { @Override public void onLoad() { - this.describeData = GenshinData.getMonsterDescribeDataMap().get(this.getDescribeId()); + this.describeData = GameData.getMonsterDescribeDataMap().get(this.getDescribeId()); for (int id : this.Equips) { if (id == 0) { continue; } - GadgetData gadget = GenshinData.getGadgetDataMap().get(id); + GadgetData gadget = GameData.getGadgetDataMap().get(id); if (gadget == null) { continue; } diff --git a/src/main/java/emu/grasscutter/data/def/MonsterDescribeData.java b/src/main/java/emu/grasscutter/data/def/MonsterDescribeData.java index 6d6271a77..41b826c5b 100644 --- a/src/main/java/emu/grasscutter/data/def/MonsterDescribeData.java +++ b/src/main/java/emu/grasscutter/data/def/MonsterDescribeData.java @@ -1,11 +1,11 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType.LoadPriority; @ResourceType(name = "MonsterDescribeExcelConfigData.json", loadPriority = LoadPriority.HIGH) -public class MonsterDescribeData extends GenshinResource { +public class MonsterDescribeData extends GameResource { private int Id; private long NameTextMapHash; private int TitleID; diff --git a/src/main/java/emu/grasscutter/data/def/NpcData.java b/src/main/java/emu/grasscutter/data/def/NpcData.java index ad08ca9ee..37fa78776 100644 --- a/src/main/java/emu/grasscutter/data/def/NpcData.java +++ b/src/main/java/emu/grasscutter/data/def/NpcData.java @@ -1,10 +1,10 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; @ResourceType(name = "NpcExcelConfigData.json") -public class NpcData extends GenshinResource { +public class NpcData extends GameResource { private int Id; private String JsonName; diff --git a/src/main/java/emu/grasscutter/data/def/PlayerLevelData.java b/src/main/java/emu/grasscutter/data/def/PlayerLevelData.java index 3735b7e59..1e02e3eca 100644 --- a/src/main/java/emu/grasscutter/data/def/PlayerLevelData.java +++ b/src/main/java/emu/grasscutter/data/def/PlayerLevelData.java @@ -1,10 +1,10 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; @ResourceType(name = "PlayerLevelExcelConfigData.json") -public class PlayerLevelData extends GenshinResource { +public class PlayerLevelData extends GameResource { private int Level; private int Exp; private int RewardId; diff --git a/src/main/java/emu/grasscutter/data/def/ProudSkillData.java b/src/main/java/emu/grasscutter/data/def/ProudSkillData.java index 6ffb180d2..3eff8b94d 100644 --- a/src/main/java/emu/grasscutter/data/def/ProudSkillData.java +++ b/src/main/java/emu/grasscutter/data/def/ProudSkillData.java @@ -3,13 +3,13 @@ package emu.grasscutter.data.def; import java.util.ArrayList; import java.util.List; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.common.FightPropData; import emu.grasscutter.data.common.ItemParamData; @ResourceType(name = "ProudSkillExcelConfigData.json") -public class ProudSkillData extends GenshinResource { +public class ProudSkillData extends GameResource { private int ProudSkillId; private int ProudSkillGroupId; diff --git a/src/main/java/emu/grasscutter/data/def/ReliquaryAffixData.java b/src/main/java/emu/grasscutter/data/def/ReliquaryAffixData.java index 25e7693c3..ba9b1d369 100644 --- a/src/main/java/emu/grasscutter/data/def/ReliquaryAffixData.java +++ b/src/main/java/emu/grasscutter/data/def/ReliquaryAffixData.java @@ -1,11 +1,11 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.game.props.FightProperty; @ResourceType(name = "ReliquaryAffixExcelConfigData.json") -public class ReliquaryAffixData extends GenshinResource { +public class ReliquaryAffixData extends GameResource { private int Id; private int DepotId; diff --git a/src/main/java/emu/grasscutter/data/def/ReliquaryLevelData.java b/src/main/java/emu/grasscutter/data/def/ReliquaryLevelData.java index 0217ff48b..b4e37dd90 100644 --- a/src/main/java/emu/grasscutter/data/def/ReliquaryLevelData.java +++ b/src/main/java/emu/grasscutter/data/def/ReliquaryLevelData.java @@ -2,14 +2,14 @@ package emu.grasscutter.data.def; import java.util.List; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.game.props.FightProperty; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; @ResourceType(name = "ReliquaryLevelExcelConfigData.json") -public class ReliquaryLevelData extends GenshinResource { +public class ReliquaryLevelData extends GameResource { private int id; private Int2ObjectMap<Float> propMap; diff --git a/src/main/java/emu/grasscutter/data/def/ReliquaryMainPropData.java b/src/main/java/emu/grasscutter/data/def/ReliquaryMainPropData.java index a67233f51..6b2c920e4 100644 --- a/src/main/java/emu/grasscutter/data/def/ReliquaryMainPropData.java +++ b/src/main/java/emu/grasscutter/data/def/ReliquaryMainPropData.java @@ -1,11 +1,11 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.game.props.FightProperty; @ResourceType(name = "ReliquaryMainPropExcelConfigData.json") -public class ReliquaryMainPropData extends GenshinResource { +public class ReliquaryMainPropData extends GameResource { private int Id; private int PropDepotId; diff --git a/src/main/java/emu/grasscutter/data/def/ReliquarySetData.java b/src/main/java/emu/grasscutter/data/def/ReliquarySetData.java index 85c3e3237..9eac2c050 100644 --- a/src/main/java/emu/grasscutter/data/def/ReliquarySetData.java +++ b/src/main/java/emu/grasscutter/data/def/ReliquarySetData.java @@ -1,10 +1,10 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; @ResourceType(name = "ReliquarySetExcelConfigData.json") -public class ReliquarySetData extends GenshinResource { +public class ReliquarySetData extends GameResource { private int SetId; private int[] SetNeedNum; private int EquipAffixId; diff --git a/src/main/java/emu/grasscutter/data/def/RewardData.java b/src/main/java/emu/grasscutter/data/def/RewardData.java index 46c39ac10..d8ea58415 100644 --- a/src/main/java/emu/grasscutter/data/def/RewardData.java +++ b/src/main/java/emu/grasscutter/data/def/RewardData.java @@ -2,12 +2,12 @@ package emu.grasscutter.data.def; import java.util.List; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.common.RewardItemData; @ResourceType(name = "RewardExcelConfigData.json") -public class RewardData extends GenshinResource { +public class RewardData extends GameResource { public int RewardId; public List<RewardItemData> RewardItemList; diff --git a/src/main/java/emu/grasscutter/data/def/SceneData.java b/src/main/java/emu/grasscutter/data/def/SceneData.java index d9c0bd0ab..220579faf 100644 --- a/src/main/java/emu/grasscutter/data/def/SceneData.java +++ b/src/main/java/emu/grasscutter/data/def/SceneData.java @@ -1,13 +1,13 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinData; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameData; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.game.props.SceneType; @ResourceType(name = "SceneExcelConfigData.json") -public class SceneData extends GenshinResource { +public class SceneData extends GameResource { private int Id; private SceneType SceneType; private String ScriptData; diff --git a/src/main/java/emu/grasscutter/data/def/WeaponCurveData.java b/src/main/java/emu/grasscutter/data/def/WeaponCurveData.java index 0bccd603a..287ce8af6 100644 --- a/src/main/java/emu/grasscutter/data/def/WeaponCurveData.java +++ b/src/main/java/emu/grasscutter/data/def/WeaponCurveData.java @@ -4,12 +4,12 @@ import java.util.HashMap; import java.util.Map; import java.util.stream.Stream; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.common.CurveInfo; @ResourceType(name = "WeaponCurveExcelConfigData.json") -public class WeaponCurveData extends GenshinResource { +public class WeaponCurveData extends GameResource { private int Level; private CurveInfo[] CurveInfos; diff --git a/src/main/java/emu/grasscutter/data/def/WeaponLevelData.java b/src/main/java/emu/grasscutter/data/def/WeaponLevelData.java index c3f415681..98550b24a 100644 --- a/src/main/java/emu/grasscutter/data/def/WeaponLevelData.java +++ b/src/main/java/emu/grasscutter/data/def/WeaponLevelData.java @@ -1,10 +1,10 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; @ResourceType(name = "WeaponLevelExcelConfigData.json") -public class WeaponLevelData extends GenshinResource { +public class WeaponLevelData extends GameResource { private int Level; private int[] RequiredExps; diff --git a/src/main/java/emu/grasscutter/data/def/WeaponPromoteData.java b/src/main/java/emu/grasscutter/data/def/WeaponPromoteData.java index ab008bfed..8e75b2b7c 100644 --- a/src/main/java/emu/grasscutter/data/def/WeaponPromoteData.java +++ b/src/main/java/emu/grasscutter/data/def/WeaponPromoteData.java @@ -1,13 +1,13 @@ package emu.grasscutter.data.def; import java.util.ArrayList; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.common.FightPropData; import emu.grasscutter.data.common.ItemParamData; @ResourceType(name = "WeaponPromoteExcelConfigData.json") -public class WeaponPromoteData extends GenshinResource { +public class WeaponPromoteData extends GameResource { private int WeaponPromoteId; private int PromoteLevel; diff --git a/src/main/java/emu/grasscutter/data/def/WorldLevelData.java b/src/main/java/emu/grasscutter/data/def/WorldLevelData.java index c2072d8f2..3b101f9b8 100644 --- a/src/main/java/emu/grasscutter/data/def/WorldLevelData.java +++ b/src/main/java/emu/grasscutter/data/def/WorldLevelData.java @@ -1,10 +1,10 @@ package emu.grasscutter.data.def; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; @ResourceType(name = "WorldLevelExcelConfigData.json") -public class WorldLevelData extends GenshinResource { +public class WorldLevelData extends GameResource { private int Level; private int MonsterLevel; diff --git a/src/main/java/emu/grasscutter/database/DatabaseHelper.java b/src/main/java/emu/grasscutter/database/DatabaseHelper.java index aa2fbe251..a09dcee19 100644 --- a/src/main/java/emu/grasscutter/database/DatabaseHelper.java +++ b/src/main/java/emu/grasscutter/database/DatabaseHelper.java @@ -4,12 +4,12 @@ import java.util.List; import com.mongodb.client.result.DeleteResult; import dev.morphia.query.experimental.filters.Filters; -import emu.grasscutter.GenshinConstants; +import emu.grasscutter.GameConstants; import emu.grasscutter.game.Account; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.friends.Friendship; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; public final class DatabaseHelper { public static Account createAccount(String username) { @@ -26,7 +26,7 @@ public final class DatabaseHelper { // Make sure there are no id collisions if (reservedId > 0) { // Cannot make account with the same uid as the server console - if (reservedId == GenshinConstants.SERVER_CONSOLE_UID) { + if (reservedId == GameConstants.SERVER_CONSOLE_UID) { return null; } exists = DatabaseHelper.getAccountByPlayerId(reservedId); @@ -90,19 +90,19 @@ public final class DatabaseHelper { return DatabaseManager.getDatastore().find(Account.class).filter(Filters.eq("username", username)).delete().getDeletedCount() > 0; } - public static List<GenshinPlayer> getAllPlayers() { - return DatabaseManager.getDatastore().find(GenshinPlayer.class).stream().toList(); + public static List<Player> getAllPlayers() { + return DatabaseManager.getDatastore().find(Player.class).stream().toList(); } - public static GenshinPlayer getPlayerById(int id) { - return DatabaseManager.getDatastore().find(GenshinPlayer.class).filter(Filters.eq("_id", id)).first(); + public static Player getPlayerById(int id) { + return DatabaseManager.getDatastore().find(Player.class).filter(Filters.eq("_id", id)).first(); } public static boolean checkPlayerExists(int id) { - return DatabaseManager.getDatastore().find(GenshinPlayer.class).filter(Filters.eq("_id", id)).first() != null; + return DatabaseManager.getDatastore().find(Player.class).filter(Filters.eq("_id", id)).first() != null; } - public static synchronized GenshinPlayer createPlayer(GenshinPlayer character, int reservedId) { + public static synchronized Player createPlayer(Player character, int reservedId) { // Check if reserved id int id; if (reservedId > 0 && !checkPlayerExists(reservedId)) { @@ -127,42 +127,42 @@ public final class DatabaseHelper { id = reservedId; } else { do { - id = DatabaseManager.getNextId(GenshinPlayer.class); + id = DatabaseManager.getNextId(Player.class); } while (checkPlayerExists(id)); } return id; } - public static void savePlayer(GenshinPlayer character) { + public static void savePlayer(Player character) { DatabaseManager.getDatastore().save(character); } - public static void saveAvatar(GenshinAvatar avatar) { + public static void saveAvatar(Avatar avatar) { DatabaseManager.getDatastore().save(avatar); } - public static List<GenshinAvatar> getAvatars(GenshinPlayer player) { - return DatabaseManager.getDatastore().find(GenshinAvatar.class).filter(Filters.eq("ownerId", player.getUid())).stream().toList(); + public static List<Avatar> getAvatars(Player player) { + return DatabaseManager.getDatastore().find(Avatar.class).filter(Filters.eq("ownerId", player.getUid())).stream().toList(); } - public static void saveItem(GenshinItem item) { + public static void saveItem(GameItem item) { DatabaseManager.getDatastore().save(item); } - public static boolean deleteItem(GenshinItem item) { + public static boolean deleteItem(GameItem item) { DeleteResult result = DatabaseManager.getDatastore().delete(item); return result.wasAcknowledged(); } - public static List<GenshinItem> getInventoryItems(GenshinPlayer player) { - return DatabaseManager.getDatastore().find(GenshinItem.class).filter(Filters.eq("ownerId", player.getUid())).stream().toList(); + public static List<GameItem> getInventoryItems(Player player) { + return DatabaseManager.getDatastore().find(GameItem.class).filter(Filters.eq("ownerId", player.getUid())).stream().toList(); } - public static List<Friendship> getFriends(GenshinPlayer player) { + public static List<Friendship> getFriends(Player player) { return DatabaseManager.getDatastore().find(Friendship.class).filter(Filters.eq("ownerId", player.getUid())).stream().toList(); } - public static List<Friendship> getReverseFriends(GenshinPlayer player) { + public static List<Friendship> getReverseFriends(Player player) { return DatabaseManager.getDatastore().find(Friendship.class).filter(Filters.eq("friendId", player.getUid())).stream().toList(); } diff --git a/src/main/java/emu/grasscutter/database/DatabaseManager.java b/src/main/java/emu/grasscutter/database/DatabaseManager.java index 6df2ca9f0..78c32c595 100644 --- a/src/main/java/emu/grasscutter/database/DatabaseManager.java +++ b/src/main/java/emu/grasscutter/database/DatabaseManager.java @@ -13,10 +13,10 @@ import dev.morphia.mapping.MapperOptions; import dev.morphia.query.experimental.filters.Filters; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.Account; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.friends.Friendship; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; public final class DatabaseManager { @@ -27,7 +27,7 @@ public final class DatabaseManager { private static Datastore dispatchDatastore; private static final Class<?>[] mappedClasses = new Class<?>[] { - DatabaseCounter.class, Account.class, GenshinPlayer.class, GenshinAvatar.class, GenshinItem.class, Friendship.class + DatabaseCounter.class, Account.class, Player.class, Avatar.class, GameItem.class, Friendship.class }; public static Datastore getDatastore() { diff --git a/src/main/java/emu/grasscutter/game/CoopRequest.java b/src/main/java/emu/grasscutter/game/CoopRequest.java index 1e885672c..9e827325d 100644 --- a/src/main/java/emu/grasscutter/game/CoopRequest.java +++ b/src/main/java/emu/grasscutter/game/CoopRequest.java @@ -1,17 +1,17 @@ package emu.grasscutter.game; public class CoopRequest { - private final GenshinPlayer requester; + private final Player requester; private final long requestTime; private final long expireTime; - public CoopRequest(GenshinPlayer requester) { + public CoopRequest(Player requester) { this.requester = requester; this.requestTime = System.currentTimeMillis(); this.expireTime = this.requestTime + 10000; } - public GenshinPlayer getRequester() { + public Player getRequester() { return requester; } diff --git a/src/main/java/emu/grasscutter/game/InvokeHandler.java b/src/main/java/emu/grasscutter/game/InvokeHandler.java index b8272d30b..7c24e149c 100644 --- a/src/main/java/emu/grasscutter/game/InvokeHandler.java +++ b/src/main/java/emu/grasscutter/game/InvokeHandler.java @@ -2,16 +2,16 @@ package emu.grasscutter.game; import java.util.ArrayList; import java.util.List; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.proto.ForwardTypeOuterClass.ForwardType; public class InvokeHandler<T> { private final List<T> entryListForwardAll; private final List<T> entryListForwardAllExceptCur; private final List<T> entryListForwardHost; - private final Class<? extends GenshinPacket> packetClass; + private final Class<? extends BasePacket> packetClass; - public InvokeHandler(Class<? extends GenshinPacket> packetClass) { + public InvokeHandler(Class<? extends BasePacket> packetClass) { this.entryListForwardAll = new ArrayList<>(); this.entryListForwardAllExceptCur = new ArrayList<>(); this.entryListForwardHost = new ArrayList<>(); @@ -28,7 +28,7 @@ public class InvokeHandler<T> { } } - public synchronized void update(GenshinPlayer player) { + public synchronized void update(Player player) { if (player.getWorld() == null) { this.entryListForwardAll.clear(); this.entryListForwardAllExceptCur.clear(); @@ -38,17 +38,17 @@ public class InvokeHandler<T> { try { if (entryListForwardAll.size() > 0) { - GenshinPacket packet = packetClass.getDeclaredConstructor(List.class).newInstance(this.entryListForwardAll); + BasePacket packet = packetClass.getDeclaredConstructor(List.class).newInstance(this.entryListForwardAll); player.getScene().broadcastPacket(packet); this.entryListForwardAll.clear(); } if (entryListForwardAllExceptCur.size() > 0) { - GenshinPacket packet = packetClass.getDeclaredConstructor(List.class).newInstance(this.entryListForwardAllExceptCur); + BasePacket packet = packetClass.getDeclaredConstructor(List.class).newInstance(this.entryListForwardAllExceptCur); player.getScene().broadcastPacketToOthers(player, packet); this.entryListForwardAllExceptCur.clear(); } if (entryListForwardHost.size() > 0) { - GenshinPacket packet = packetClass.getDeclaredConstructor(List.class).newInstance(this.entryListForwardHost); + BasePacket packet = packetClass.getDeclaredConstructor(List.class).newInstance(this.entryListForwardHost); player.getWorld().getHost().sendPacket(packet); this.entryListForwardHost.clear(); } diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/Mail.java index 3561a110e..e17281c21 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/Mail.java @@ -57,7 +57,7 @@ public class Mail { this(title, content, "Server"); } - public MailContent(String title, String content, GenshinPlayer sender) { + public MailContent(String title, String content, Player sender) { this(title, content, sender.getNickname()); } diff --git a/src/main/java/emu/grasscutter/game/GenshinPlayer.java b/src/main/java/emu/grasscutter/game/Player.java similarity index 93% rename from src/main/java/emu/grasscutter/game/GenshinPlayer.java rename to src/main/java/emu/grasscutter/game/Player.java index 4de9b837f..36ce3f430 100644 --- a/src/main/java/emu/grasscutter/game/GenshinPlayer.java +++ b/src/main/java/emu/grasscutter/game/Player.java @@ -4,26 +4,26 @@ import java.time.Instant; import java.util.*; import dev.morphia.annotations.*; -import emu.grasscutter.GenshinConstants; +import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.PlayerLevelData; import emu.grasscutter.database.DatabaseHelper; import emu.grasscutter.game.avatar.AvatarProfileData; import emu.grasscutter.game.avatar.AvatarStorage; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityItem; -import emu.grasscutter.game.entity.GenshinEntity; +import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.game.friends.FriendsList; import emu.grasscutter.game.friends.PlayerProfile; import emu.grasscutter.game.gacha.PlayerGachaInfo; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.inventory.Inventory; import emu.grasscutter.game.player.PlayerBirthday; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.PlayerProperty; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.proto.AbilityInvokeEntryOuterClass.AbilityInvokeEntry; import emu.grasscutter.net.proto.CombatInvokeEntryOuterClass.CombatInvokeEntry; import emu.grasscutter.net.proto.HeadImageOuterClass.HeadImage; @@ -46,7 +46,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import java.util.*; @Entity(value = "players", useDiscriminator = false) -public class GenshinPlayer { +public class Player { @Id private int id; @Indexed(options = @IndexOptions(unique = true)) private String accountId; @@ -67,7 +67,7 @@ public class GenshinPlayer { @Transient private long nextGuid = 0; @Transient private int peerId; @Transient private World world; - @Transient private GenshinScene scene; + @Transient private Scene scene; @Transient private GameSession session; @Transient private AvatarStorage avatars; @Transient private Inventory inventory; @@ -104,7 +104,7 @@ public class GenshinPlayer { @Deprecated @SuppressWarnings({"rawtypes", "unchecked"}) // Morphia only! - public GenshinPlayer() { + public Player() { this.inventory = new Inventory(this); this.avatars = new AvatarStorage(this); this.friendsList = new FriendsList(this); @@ -140,7 +140,7 @@ public class GenshinPlayer { } // On player creation - public GenshinPlayer(GameSession session) { + public Player(GameSession session) { this(); this.account = session.getAccount(); this.accountId = this.getAccount().getId(); @@ -159,7 +159,7 @@ public class GenshinPlayer { this.setProperty(PlayerProperty.PROP_PLAYER_RESIN, 160); this.getFlyCloakList().add(140001); this.getNameCardList().add(210001); - this.getPos().set(GenshinConstants.START_POSITION); + this.getPos().set(GameConstants.START_POSITION); this.getRotation().set(0, 307, 0); } @@ -171,7 +171,7 @@ public class GenshinPlayer { this.id = id; } - public long getNextGenshinGuid() { + public long getNextGameGuid() { long nextId = ++this.nextGuid; return ((long) this.getUid() << 32) + nextId; } @@ -209,11 +209,11 @@ public class GenshinPlayer { this.world = world; } - public synchronized GenshinScene getScene() { + public synchronized Scene getScene() { return scene; } - public synchronized void setScene(GenshinScene scene) { + public synchronized void setScene(Scene scene) { this.scene = scene; } @@ -292,7 +292,7 @@ public class GenshinPlayer { } private int getExpRequired(int level) { - PlayerLevelData levelData = GenshinData.getPlayerLevelDataMap().get(level); + PlayerLevelData levelData = GameData.getPlayerLevelDataMap().get(level); return levelData != null ? levelData.getExp() : 0; } @@ -546,9 +546,9 @@ public class GenshinPlayer { } public void rechargeMoonCard() { - LinkedList<GenshinItem> items = new LinkedList<GenshinItem>(); + LinkedList<GameItem> items = new LinkedList<GameItem>(); for (int i = 0; i < 300; i++) { - items.add(new GenshinItem(203)); + items.add(new GameItem(203)); } inventory.addItems(items); if (!moonCard) { @@ -583,8 +583,8 @@ public class GenshinPlayer { } moonCardGetTimes.add(now); addMoonCardDays(1); - GenshinItem genshinItem = new GenshinItem(201, 90); - getInventory().addItem(genshinItem, ActionReason.BlessingRedeemReward); + GameItem item = new GameItem(201, 90); + getInventory().addItem(item, ActionReason.BlessingRedeemReward); session.send(new PacketCardProductRewardNotify(getMoonCardRemainDays())); } @@ -604,29 +604,19 @@ public class GenshinPlayer { this.hasSentAvatarDataNotify = hasSentAvatarDataNotify; } - public void addAvatar(GenshinAvatar avatar) { + public void addAvatar(Avatar avatar) { boolean result = getAvatars().addAvatar(avatar); if (result) { // Add starting weapon getAvatars().addStartingWeapon(avatar); - // Try adding to team if possible - //List<EntityAvatar> currentTeam = this.getTeamManager().getCurrentTeam(); - boolean addedToTeam = false; - - /* - if (currentTeam.size() <= GenshinConstants.MAX_AVATARS_IN_TEAM) { - addedToTeam = currentTeam - } - */ - // Done if (hasSentAvatarDataNotify()) { // Recalc stats avatar.recalcStats(); // Packet - sendPacket(new PacketAvatarAddNotify(avatar, addedToTeam)); + sendPacket(new PacketAvatarAddNotify(avatar, false)); } } else { // Failed adding avatar @@ -659,7 +649,7 @@ public class GenshinPlayer { } public void dropMessage(Object message) { - this.sendPacket(new PacketPrivateChatNotify(GenshinConstants.SERVER_CONSOLE_UID, getUid(), message.toString())); + this.sendPacket(new PacketPrivateChatNotify(GameConstants.SERVER_CONSOLE_UID, getUid(), message.toString())); } /** @@ -668,7 +658,7 @@ public class GenshinPlayer { * @param sender The sender of the message. * @param message The message to send. */ - public void sendMessage(GenshinPlayer sender, Object message) { + public void sendMessage(Player sender, Object message) { this.sendPacket(new PacketPrivateChatNotify(sender.getUid(), this.getUid(), message.toString())); } @@ -714,7 +704,7 @@ public class GenshinPlayer { } public void interactWith(int gadgetEntityId) { - GenshinEntity entity = getScene().getEntityById(gadgetEntityId); + GameEntity entity = getScene().getEntityById(gadgetEntityId); if (entity == null) { return; @@ -727,7 +717,7 @@ public class GenshinPlayer { if (entity instanceof EntityItem) { // Pick item EntityItem drop = (EntityItem) entity; - GenshinItem item = new GenshinItem(drop.getItemData(), drop.getCount()); + GameItem item = new GameItem(drop.getItemData(), drop.getCount()); // Add to inventory boolean success = getInventory().addItem(item, ActionReason.SubfieldDrop); if (success) { @@ -746,7 +736,7 @@ public class GenshinPlayer { } - public void sendPacket(GenshinPacket packet) { + public void sendPacket(BasePacket packet) { if (this.hasSentAvatarDataNotify) { this.getSession().send(packet); } @@ -875,7 +865,7 @@ public class GenshinPlayer { // Check if player object exists in server // TODO - optimize - GenshinPlayer exists = this.getServer().getPlayerByUid(getUid()); + Player exists = this.getServer().getPlayerByUid(getUid()); if (exists != null) { exists.getSession().close(); } diff --git a/src/main/java/emu/grasscutter/game/GenshinScene.java b/src/main/java/emu/grasscutter/game/Scene.java similarity index 80% rename from src/main/java/emu/grasscutter/game/GenshinScene.java rename to src/main/java/emu/grasscutter/game/Scene.java index 6f8591348..5601f1e49 100644 --- a/src/main/java/emu/grasscutter/game/GenshinScene.java +++ b/src/main/java/emu/grasscutter/game/Scene.java @@ -12,9 +12,9 @@ import java.util.Set; import org.danilopianini.util.SpatialIndex; import emu.grasscutter.Grasscutter; -import emu.grasscutter.data.GenshinData; -import emu.grasscutter.data.GenshinDepot; -import emu.grasscutter.data.GenshinResource; +import emu.grasscutter.data.GameData; +import emu.grasscutter.data.GameDepot; +import emu.grasscutter.data.GameResource; import emu.grasscutter.data.def.MonsterData; import emu.grasscutter.data.def.SceneData; import emu.grasscutter.data.def.WorldLevelData; @@ -22,14 +22,14 @@ import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.entity.EntityClientGadget; import emu.grasscutter.game.entity.EntityGadget; import emu.grasscutter.game.entity.EntityMonster; -import emu.grasscutter.game.entity.GenshinEntity; +import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.game.props.ClimateType; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; import emu.grasscutter.game.props.SceneType; import emu.grasscutter.game.world.SpawnDataEntry; import emu.grasscutter.game.world.SpawnDataEntry.SpawnGroupEntry; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.proto.AttackResultOuterClass.AttackResult; import emu.grasscutter.net.proto.VisionTypeOuterClass.VisionType; import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify; @@ -41,11 +41,11 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMaps; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -public class GenshinScene { +public class Scene { private final World world; private final SceneData sceneData; - private final List<GenshinPlayer> players; - private final Int2ObjectMap<GenshinEntity> entities; + private final List<Player> players; + private final Int2ObjectMap<GameEntity> entities; private final Set<SpawnDataEntry> spawnedEntities; private final Set<SpawnDataEntry> deadSpawnedEntities; @@ -55,7 +55,7 @@ public class GenshinScene { private ClimateType climate; private int weather; - public GenshinScene(World world, SceneData sceneData) { + public Scene(World world, SceneData sceneData) { this.world = world; this.sceneData = sceneData; this.players = Collections.synchronizedList(new ArrayList<>()); @@ -84,7 +84,7 @@ public class GenshinScene { return getSceneData().getSceneType(); } - public List<GenshinPlayer> getPlayers() { + public List<Player> getPlayers() { return players; } @@ -92,11 +92,11 @@ public class GenshinScene { return this.getPlayers().size(); } - public Int2ObjectMap<GenshinEntity> getEntities() { + public Int2ObjectMap<GameEntity> getEntities() { return entities; } - public GenshinEntity getEntityById(int id) { + public GameEntity getEntityById(int id) { return this.entities.get(id); } @@ -140,11 +140,11 @@ public class GenshinScene { return deadSpawnedEntities; } - public boolean isInScene(GenshinEntity entity) { + public boolean isInScene(GameEntity entity) { return this.entities.containsKey(entity.getId()); } - public synchronized void addPlayer(GenshinPlayer player) { + public synchronized void addPlayer(Player player) { // Check if player already in if (getPlayers().contains(player)) { return; @@ -163,7 +163,7 @@ public class GenshinScene { this.setupPlayerAvatars(player); } - public synchronized void removePlayer(GenshinPlayer player) { + public synchronized void removePlayer(Player player) { // Remove player from scene getPlayers().remove(player); player.setScene(null); @@ -182,7 +182,7 @@ public class GenshinScene { } } - private void setupPlayerAvatars(GenshinPlayer player) { + private void setupPlayerAvatars(Player player) { // Clear entities from old team player.getTeamManager().getActiveTeam().clear(); @@ -199,7 +199,7 @@ public class GenshinScene { } } - private void removePlayerAvatars(GenshinPlayer player) { + private void removePlayerAvatars(Player player) { Iterator<EntityAvatar> it = player.getTeamManager().getActiveTeam().iterator(); while (it.hasNext()) { this.removeEntity(it.next(), VisionType.VISION_REMOVE); @@ -207,7 +207,7 @@ public class GenshinScene { } } - public void spawnPlayer(GenshinPlayer player) { + public void spawnPlayer(Player player) { if (this.isInScene(player.getTeamManager().getCurrentAvatarEntity())) { return; } @@ -219,33 +219,33 @@ public class GenshinScene { this.addEntity(player.getTeamManager().getCurrentAvatarEntity()); } - private void addEntityDirectly(GenshinEntity entity) { + private void addEntityDirectly(GameEntity entity) { getEntities().put(entity.getId(), entity); } - public synchronized void addEntity(GenshinEntity entity) { + public synchronized void addEntity(GameEntity entity) { this.addEntityDirectly(entity); this.broadcastPacket(new PacketSceneEntityAppearNotify(entity)); } - public synchronized void addEntities(Collection<GenshinEntity> entities) { - for (GenshinEntity entity : entities) { + public synchronized void addEntities(Collection<GameEntity> entities) { + for (GameEntity entity : entities) { this.addEntityDirectly(entity); } this.broadcastPacket(new PacketSceneEntityAppearNotify(entities, VisionType.VISION_BORN)); } - private GenshinEntity removeEntityDirectly(GenshinEntity entity) { + private GameEntity removeEntityDirectly(GameEntity entity) { return getEntities().remove(entity.getId()); } - public void removeEntity(GenshinEntity entity) { + public void removeEntity(GameEntity entity) { this.removeEntity(entity, VisionType.VISION_DIE); } - public synchronized void removeEntity(GenshinEntity entity, VisionType visionType) { - GenshinEntity removed = this.removeEntityDirectly(entity); + public synchronized void removeEntity(GameEntity entity, VisionType visionType) { + GameEntity removed = this.removeEntityDirectly(entity); if (removed != null) { this.broadcastPacket(new PacketSceneEntityDisappearNotify(removed, visionType)); } @@ -258,11 +258,11 @@ public class GenshinScene { this.broadcastPacket(new PacketSceneEntityAppearNotify(newEntity, VisionType.VISION_REPLACE, oldEntity.getId())); } - public void showOtherEntities(GenshinPlayer player) { - List<GenshinEntity> entities = new LinkedList<>(); - GenshinEntity currentEntity = player.getTeamManager().getCurrentAvatarEntity(); + public void showOtherEntities(Player player) { + List<GameEntity> entities = new LinkedList<>(); + GameEntity currentEntity = player.getTeamManager().getCurrentAvatarEntity(); - for (GenshinEntity entity : this.getEntities().values()) { + for (GameEntity entity : this.getEntities().values()) { if (entity == currentEntity) { continue; } @@ -273,8 +273,8 @@ public class GenshinScene { } public void handleAttack(AttackResult result) { - //GenshinEntity attacker = getEntityById(result.getAttackerId()); - GenshinEntity target = getEntityById(result.getDefenseId()); + //GameEntity attacker = getEntityById(result.getAttackerId()); + GameEntity target = getEntityById(result.getDefenseId()); if (target == null) { return; @@ -306,7 +306,7 @@ public class GenshinScene { } } - public void killEntity(GenshinEntity target, int attackerId) { + public void killEntity(GameEntity target, int attackerId) { // Packet this.broadcastPacket(new PacketLifeStateChangeNotify(attackerId, target, LifeState.LIFE_DEAD)); this.removeEntity(target); @@ -321,10 +321,10 @@ public class GenshinScene { // TODO - Test public void checkSpawns() { - SpatialIndex<SpawnGroupEntry> list = GenshinDepot.getSpawnListById(this.getId()); + SpatialIndex<SpawnGroupEntry> list = GameDepot.getSpawnListById(this.getId()); Set<SpawnDataEntry> visible = new HashSet<>(); - for (GenshinPlayer player : this.getPlayers()) { + for (Player player : this.getPlayers()) { int RANGE = 100; Collection<SpawnGroupEntry> entries = list.query( new double[] {player.getPos().getX() - RANGE, player.getPos().getZ() - RANGE}, @@ -339,7 +339,7 @@ public class GenshinScene { } // World level - WorldLevelData worldLevelData = GenshinData.getWorldLevelDataMap().get(getWorld().getWorldLevel()); + WorldLevelData worldLevelData = GameData.getWorldLevelDataMap().get(getWorld().getWorldLevel()); int worldLevelOverride = 0; if (worldLevelData != null) { @@ -347,13 +347,13 @@ public class GenshinScene { } // Todo - List<GenshinEntity> toAdd = new LinkedList<>(); - List<GenshinEntity> toRemove = new LinkedList<>(); + List<GameEntity> toAdd = new LinkedList<>(); + List<GameEntity> toRemove = new LinkedList<>(); for (SpawnDataEntry entry : visible) { if (!this.getSpawnedEntities().contains(entry) && !this.getDeadSpawnedEntities().contains(entry)) { // Spawn entity - MonsterData data = GenshinData.getMonsterDataMap().get(entry.getMonsterId()); + MonsterData data = GameData.getMonsterDataMap().get(entry.getMonsterId()); if (data == null) { continue; @@ -373,7 +373,7 @@ public class GenshinScene { } } - for (GenshinEntity entity : this.getEntities().values()) { + for (GameEntity entity : this.getEntities().values()) { if (entity.getSpawnEntry() != null && !visible.contains(entity.getSpawnEntry())) { toRemove.add(entity); } @@ -407,7 +407,7 @@ public class GenshinScene { } public void onPlayerDestroyGadget(int entityId) { - GenshinEntity entity = getEntities().get(entityId); + GameEntity entity = getEntities().get(entityId); if (entity == null || !(entity instanceof EntityClientGadget)) { return; @@ -430,20 +430,20 @@ public class GenshinScene { // Broadcasting - public void broadcastPacket(GenshinPacket packet) { + public void broadcastPacket(BasePacket packet) { // Send to all players - might have to check if player has been sent data packets - for (GenshinPlayer player : this.getPlayers()) { + for (Player player : this.getPlayers()) { player.getSession().send(packet); } } - public void broadcastPacketToOthers(GenshinPlayer excludedPlayer, GenshinPacket packet) { + public void broadcastPacketToOthers(Player excludedPlayer, BasePacket packet) { // Optimization if (this.getPlayerCount() == 1 && this.getPlayers().get(0) == excludedPlayer) { return; } // Send to all players - might have to check if player has been sent data packets - for (GenshinPlayer player : this.getPlayers()) { + for (Player player : this.getPlayers()) { if (player == excludedPlayer) { continue; } diff --git a/src/main/java/emu/grasscutter/game/TeamInfo.java b/src/main/java/emu/grasscutter/game/TeamInfo.java index efaf5ea1c..9ec073ff5 100644 --- a/src/main/java/emu/grasscutter/game/TeamInfo.java +++ b/src/main/java/emu/grasscutter/game/TeamInfo.java @@ -4,9 +4,9 @@ import java.util.ArrayList; import java.util.List; import dev.morphia.annotations.Entity; -import emu.grasscutter.GenshinConstants; +import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.avatar.Avatar; @Entity public class TeamInfo { @@ -34,11 +34,11 @@ public class TeamInfo { return avatars.size(); } - public boolean contains(GenshinAvatar avatar) { + public boolean contains(Avatar avatar) { return getAvatars().contains(avatar.getAvatarId()); } - public boolean addAvatar(GenshinAvatar avatar) { + public boolean addAvatar(Avatar avatar) { if (size() >= Grasscutter.getConfig().getGameServerOptions().MaxAvatarsInTeam || contains(avatar)) { return false; } diff --git a/src/main/java/emu/grasscutter/game/TeamManager.java b/src/main/java/emu/grasscutter/game/TeamManager.java index c32d3edfb..30b909fe9 100644 --- a/src/main/java/emu/grasscutter/game/TeamManager.java +++ b/src/main/java/emu/grasscutter/game/TeamManager.java @@ -10,16 +10,16 @@ import java.util.Set; import dev.morphia.annotations.Entity; import dev.morphia.annotations.Transient; -import emu.grasscutter.GenshinConstants; +import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; import emu.grasscutter.data.def.AvatarSkillDepotData; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.entity.EntityGadget; import emu.grasscutter.game.props.ElementType; import emu.grasscutter.game.props.EnterReason; import emu.grasscutter.game.props.FightProperty; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; import emu.grasscutter.net.proto.MotionStateOuterClass.MotionState; @@ -44,7 +44,7 @@ import it.unimi.dsi.fastutil.ints.IntSet; @Entity public class TeamManager { - @Transient private GenshinPlayer player; + @Transient private Player player; private Map<Integer, TeamInfo> teams; private int currentTeamIndex; @@ -65,18 +65,18 @@ public class TeamManager { this.teamResonancesConfig = new IntOpenHashSet(); } - public TeamManager(GenshinPlayer player) { + public TeamManager(Player player) { this(); this.player = player; this.teams = new HashMap<>(); this.currentTeamIndex = 1; - for (int i = 1; i <= GenshinConstants.MAX_TEAMS; i++) { + for (int i = 1; i <= GameConstants.MAX_TEAMS; i++) { this.teams.put(i, new TeamInfo()); } } - public GenshinPlayer getPlayer() { + public Player getPlayer() { return player; } @@ -84,7 +84,7 @@ public class TeamManager { return player.getWorld(); } - public void setPlayer(GenshinPlayer player) { + public void setPlayer(Player player) { this.player = player; } @@ -207,7 +207,7 @@ public class TeamManager { } } - public void updateTeamEntities(GenshinPacket responsePacket) { + public void updateTeamEntities(BasePacket responsePacket) { // Sanity check - Should never happen if (this.getCurrentTeamInfo().getAvatars().size() <= 0) { return; @@ -287,9 +287,9 @@ public class TeamManager { } // Set team data - LinkedHashSet<GenshinAvatar> newTeam = new LinkedHashSet<>(); + LinkedHashSet<Avatar> newTeam = new LinkedHashSet<>(); for (int i = 0; i < list.size(); i++) { - GenshinAvatar avatar = getPlayer().getAvatars().getAvatarByGuid(list.get(i)); + Avatar avatar = getPlayer().getAvatars().getAvatarByGuid(list.get(i)); if (avatar == null || newTeam.contains(avatar)) { // Should never happen return; @@ -299,7 +299,7 @@ public class TeamManager { // Clear current team info and add avatars from our new team teamInfo.getAvatars().clear(); - for (GenshinAvatar avatar : newTeam) { + for (Avatar avatar : newTeam) { teamInfo.addAvatar(avatar); } @@ -323,9 +323,9 @@ public class TeamManager { TeamInfo teamInfo = this.getMpTeam(); // Set team data - LinkedHashSet<GenshinAvatar> newTeam = new LinkedHashSet<>(); + LinkedHashSet<Avatar> newTeam = new LinkedHashSet<>(); for (int i = 0; i < list.size(); i++) { - GenshinAvatar avatar = getPlayer().getAvatars().getAvatarByGuid(list.get(i)); + Avatar avatar = getPlayer().getAvatars().getAvatarByGuid(list.get(i)); if (avatar == null || newTeam.contains(avatar)) { // Should never happen return; @@ -335,7 +335,7 @@ public class TeamManager { // Clear current team info and add avatars from our new team teamInfo.getAvatars().clear(); - for (GenshinAvatar avatar : newTeam) { + for (Avatar avatar : newTeam) { teamInfo.addAvatar(avatar); } @@ -437,7 +437,7 @@ public class TeamManager { getPlayer().sendPacket(new PacketAvatarDieAnimationEndRsp(deadAvatar.getId(), 0)); } - public boolean reviveAvatar(GenshinAvatar avatar) { + public boolean reviveAvatar(Avatar avatar) { for (EntityAvatar entity : getActiveTeam()) { if (entity.getAvatar() == avatar) { if (entity.isAlive()) { @@ -476,14 +476,14 @@ public class TeamManager { } // Teleport player - getPlayer().sendPacket(new PacketPlayerEnterSceneNotify(getPlayer(), EnterType.ENTER_SELF, EnterReason.Revival, 3, GenshinConstants.START_POSITION)); + getPlayer().sendPacket(new PacketPlayerEnterSceneNotify(getPlayer(), EnterType.ENTER_SELF, EnterReason.Revival, 3, GameConstants.START_POSITION)); // Set player position player.setSceneId(3); - player.getPos().set(GenshinConstants.START_POSITION); + player.getPos().set(GameConstants.START_POSITION); // Packets - getPlayer().sendPacket(new GenshinPacket(PacketOpcodes.WorldPlayerReviveRsp)); + getPlayer().sendPacket(new BasePacket(PacketOpcodes.WorldPlayerReviveRsp)); } public void saveAvatars() { diff --git a/src/main/java/emu/grasscutter/game/World.java b/src/main/java/emu/grasscutter/game/World.java index eefaabc16..4f47db42a 100644 --- a/src/main/java/emu/grasscutter/game/World.java +++ b/src/main/java/emu/grasscutter/game/World.java @@ -8,19 +8,19 @@ import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; -import emu.grasscutter.game.entity.GenshinEntity; +import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.game.props.ClimateType; import emu.grasscutter.game.props.EnterReason; import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.SceneData; -import emu.grasscutter.game.GenshinPlayer.SceneLoadState; +import emu.grasscutter.game.Player.SceneLoadState; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.entity.EntityClientGadget; import emu.grasscutter.game.entity.EntityGadget; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.proto.AttackResultOuterClass.AttackResult; import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; import emu.grasscutter.net.proto.VisionTypeOuterClass.VisionType; @@ -40,10 +40,10 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMaps; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -public class World implements Iterable<GenshinPlayer> { - private final GenshinPlayer owner; - private final List<GenshinPlayer> players; - private final Int2ObjectMap<GenshinScene> scenes; +public class World implements Iterable<Player> { + private final Player owner; + private final List<Player> players; + private final Int2ObjectMap<Scene> scenes; private int levelEntityId; private int nextEntityId = 0; @@ -52,11 +52,11 @@ public class World implements Iterable<GenshinPlayer> { private boolean isMultiplayer; - public World(GenshinPlayer player) { + public World(Player player) { this(player, false); } - public World(GenshinPlayer player, boolean isMultiplayer) { + public World(Player player, boolean isMultiplayer) { this.owner = player; this.players = Collections.synchronizedList(new ArrayList<>()); this.scenes = Int2ObjectMaps.synchronize(new Int2ObjectOpenHashMap<>()); @@ -68,7 +68,7 @@ public class World implements Iterable<GenshinPlayer> { this.owner.getServer().registerWorld(this); } - public GenshinPlayer getHost() { + public Player getHost() { return owner; } @@ -95,25 +95,25 @@ public class World implements Iterable<GenshinPlayer> { this.worldLevel = worldLevel; } - public List<GenshinPlayer> getPlayers() { + public List<Player> getPlayers() { return players; } - public Int2ObjectMap<GenshinScene> getScenes() { + public Int2ObjectMap<Scene> getScenes() { return this.scenes; } - public GenshinScene getSceneById(int sceneId) { + public Scene getSceneById(int sceneId) { // Get scene normally - GenshinScene scene = getScenes().get(sceneId); + Scene scene = getScenes().get(sceneId); if (scene != null) { return scene; } // Create scene from scene data if it doesnt exist - SceneData sceneData = GenshinData.getSceneDataMap().get(sceneId); + SceneData sceneData = GameData.getSceneDataMap().get(sceneId); if (sceneData != null) { - scene = new GenshinScene(this, sceneData); + scene = new Scene(this, sceneData); this.registerScene(scene); return scene; } @@ -133,7 +133,7 @@ public class World implements Iterable<GenshinPlayer> { return (idType.getId() << 24) + ++this.nextEntityId; } - public synchronized void addPlayer(GenshinPlayer player) { + public synchronized void addPlayer(Player player) { // Check if player already in if (getPlayers().contains(player)) { return; @@ -159,7 +159,7 @@ public class World implements Iterable<GenshinPlayer> { } // Add to scene - GenshinScene scene = this.getSceneById(player.getSceneId()); + Scene scene = this.getSceneById(player.getSceneId()); scene.addPlayer(player); // Info packet for other players @@ -168,7 +168,7 @@ public class World implements Iterable<GenshinPlayer> { } } - public synchronized void removePlayer(GenshinPlayer player) { + public synchronized void removePlayer(Player player) { // Remove team entities player.sendPacket( new PacketDelTeamEntityNotify( @@ -182,7 +182,7 @@ public class World implements Iterable<GenshinPlayer> { player.setWorld(null); // Remove from scene - GenshinScene scene = this.getSceneById(player.getSceneId()); + Scene scene = this.getSceneById(player.getSceneId()); scene.removePlayer(player); // Info packet for other players @@ -192,8 +192,8 @@ public class World implements Iterable<GenshinPlayer> { // Disband world if host leaves if (getHost() == player) { - List<GenshinPlayer> kicked = new ArrayList<>(this.getPlayers()); - for (GenshinPlayer victim : kicked) { + List<Player> kicked = new ArrayList<>(this.getPlayers()); + for (Player victim : kicked) { World world = new World(victim); world.addPlayer(victim); @@ -202,20 +202,20 @@ public class World implements Iterable<GenshinPlayer> { } } - public void registerScene(GenshinScene scene) { + public void registerScene(Scene scene) { this.getScenes().put(scene.getId(), scene); } - public void deregisterScene(GenshinScene scene) { + public void deregisterScene(Scene scene) { this.getScenes().remove(scene.getId()); } - public boolean transferPlayerToScene(GenshinPlayer player, int sceneId, Position pos) { - if (GenshinData.getSceneDataMap().get(sceneId) == null) { + public boolean transferPlayerToScene(Player player, int sceneId, Position pos) { + if (GameData.getSceneDataMap().get(sceneId) == null) { return false; } - GenshinScene oldScene = null; + Scene oldScene = null; if (player.getScene() != null) { oldScene = player.getScene(); @@ -228,7 +228,7 @@ public class World implements Iterable<GenshinPlayer> { oldScene.removePlayer(player); } - GenshinScene newScene = this.getSceneById(sceneId); + Scene newScene = this.getSceneById(sceneId); newScene.addPlayer(player); player.getPos().set(pos); @@ -245,8 +245,8 @@ public class World implements Iterable<GenshinPlayer> { return true; } - private void updatePlayerInfos(GenshinPlayer paramPlayer) { - for (GenshinPlayer player : getPlayers()) { + private void updatePlayerInfos(Player paramPlayer) { + for (Player player : getPlayers()) { // Dont send packets if player is loading in and filter out joining player if (!player.hasSentAvatarDataNotify() || player.getSceneLoadState().getValue() < SceneLoadState.INIT.getValue() || player == paramPlayer) { continue; @@ -269,15 +269,15 @@ public class World implements Iterable<GenshinPlayer> { } } - public void broadcastPacket(GenshinPacket packet) { + public void broadcastPacket(BasePacket packet) { // Send to all players - might have to check if player has been sent data packets - for (GenshinPlayer player : this.getPlayers()) { + for (Player player : this.getPlayers()) { player.getSession().send(packet); } } public void onTick() { - for (GenshinScene scene : this.getScenes().values()) { + for (Scene scene : this.getScenes().values()) { scene.onTick(); } } @@ -287,7 +287,7 @@ public class World implements Iterable<GenshinPlayer> { } @Override - public Iterator<GenshinPlayer> iterator() { + public Iterator<Player> iterator() { return getPlayers().iterator(); } } diff --git a/src/main/java/emu/grasscutter/game/avatar/GenshinAvatar.java b/src/main/java/emu/grasscutter/game/avatar/Avatar.java similarity index 88% rename from src/main/java/emu/grasscutter/game/avatar/GenshinAvatar.java rename to src/main/java/emu/grasscutter/game/avatar/Avatar.java index a68e2683e..642f5b139 100644 --- a/src/main/java/emu/grasscutter/game/avatar/GenshinAvatar.java +++ b/src/main/java/emu/grasscutter/game/avatar/Avatar.java @@ -16,7 +16,7 @@ import dev.morphia.annotations.PostLoad; import dev.morphia.annotations.PrePersist; import dev.morphia.annotations.Transient; import emu.grasscutter.Grasscutter; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.common.FightPropData; import emu.grasscutter.data.custom.OpenConfigEntry; import emu.grasscutter.data.def.AvatarData; @@ -35,10 +35,10 @@ import emu.grasscutter.data.def.WeaponPromoteData; import emu.grasscutter.data.def.ItemData.WeaponProperty; import emu.grasscutter.data.def.ProudSkillData; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.inventory.EquipType; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.props.ElementType; import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.FetterState; @@ -57,11 +57,11 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; @Entity(value = "avatars", useDiscriminator = false) -public class GenshinAvatar { +public class Avatar { @Id private ObjectId id; @Indexed private int ownerId; // Id of player that this avatar belongs to - @Transient private GenshinPlayer owner; + @Transient private Player owner; @Transient private AvatarData data; @Transient private long guid; // Player unique id private int avatarId; // Id of avatar @@ -73,7 +73,7 @@ public class GenshinAvatar { private int satiationPenalty; // ? private float currentHp; - @Transient private final Int2ObjectMap<GenshinItem> equips; + @Transient private final Int2ObjectMap<GameItem> equips; @Transient private final Int2FloatOpenHashMap fightProp; @Transient private Set<String> extraAbilityEmbryos; @@ -96,21 +96,21 @@ public class GenshinAvatar { private int nameCardRewardId; private int nameCardId; - public GenshinAvatar() { + public Avatar() { // Morhpia only! this.equips = new Int2ObjectOpenHashMap<>(); this.fightProp = new Int2FloatOpenHashMap(); this.extraAbilityEmbryos = new HashSet<>(); this.proudSkillBonusMap = new HashMap<>(); - this.fetters = new ArrayList<>(); // TODO Move to genshin avatar + this.fetters = new ArrayList<>(); // TODO Move to avatar } // On creation - public GenshinAvatar(int avatarId) { - this(GenshinData.getAvatarDataMap().get(avatarId)); + public Avatar(int avatarId) { + this(GameData.getAvatarDataMap().get(avatarId)); } - public GenshinAvatar(AvatarData data) { + public Avatar(AvatarData data) { this(); this.avatarId = data.getId(); this.nameCardRewardId = data.getNameCardRewardId(); @@ -143,7 +143,7 @@ public class GenshinAvatar { this.onLoad(); } - public GenshinPlayer getPlayer() { + public Player getPlayer() { return this.owner; } @@ -163,10 +163,10 @@ public class GenshinAvatar { return ownerId; } - public void setOwner(GenshinPlayer player) { + public void setOwner(Player player) { this.owner = player; this.ownerId = player.getUid(); - this.guid = player.getNextGenshinGuid(); + this.guid = player.getNextGameGuid(); } public int getSatiation() { @@ -229,19 +229,19 @@ public class GenshinAvatar { this.promoteLevel = promoteLevel; } - public Int2ObjectMap<GenshinItem> getEquips() { + public Int2ObjectMap<GameItem> getEquips() { return equips; } - public GenshinItem getEquipBySlot(EquipType slot) { + public GameItem getEquipBySlot(EquipType slot) { return this.getEquips().get(slot.getValue()); } - private GenshinItem getEquipBySlot(int slotId) { + private GameItem getEquipBySlot(int slotId) { return this.getEquips().get(slotId); } - public GenshinItem getWeapon() { + public GameItem getWeapon() { return this.getEquipBySlot(EquipType.EQUIP_WEAPON); } @@ -270,7 +270,7 @@ public class GenshinAvatar { } if (openData.getNeedAvatarPromoteLevel() <= this.getPromoteLevel()) { int proudSkillId = (openData.getProudSkillGroupId() * 100) + 1; - if (GenshinData.getProudSkillDataMap().containsKey(proudSkillId)) { + if (GameData.getProudSkillDataMap().containsKey(proudSkillId)) { this.getProudSkillList().add(proudSkillId); } } @@ -385,7 +385,7 @@ public class GenshinAvatar { return bornTime; } - public boolean equipItem(GenshinItem item, boolean shouldRecalc) { + public boolean equipItem(GameItem item, boolean shouldRecalc) { EquipType itemEquipType = item.getItemData().getEquipType(); if (itemEquipType == EquipType.EQUIP_NONE) { return false; @@ -416,7 +416,7 @@ public class GenshinAvatar { } public boolean unequipItem(EquipType slot) { - GenshinItem item = getEquips().remove(slot.getValue()); + GameItem item = getEquips().remove(slot.getValue()); if (item != null) { item.setEquipCharacter(0); @@ -434,7 +434,7 @@ public class GenshinAvatar { public void recalcStats(boolean forceSendAbilityChange) { // Setup AvatarData data = this.getAvatarData(); - AvatarPromoteData promoteData = GenshinData.getAvatarPromoteData(data.getAvatarPromoteId(), this.getPromoteLevel()); + AvatarPromoteData promoteData = GameData.getAvatarPromoteData(data.getAvatarPromoteId(), this.getPromoteLevel()); Int2IntOpenHashMap setMap = new Int2IntOpenHashMap(); // Extra ability embryos @@ -476,21 +476,21 @@ public class GenshinAvatar { // Artifacts for (int slotId = 1; slotId <= 5; slotId++) { // Get artifact - GenshinItem equip = this.getEquipBySlot(slotId); + GameItem equip = this.getEquipBySlot(slotId); if (equip == null) { continue; } // Artifact main stat - ReliquaryMainPropData mainPropData = GenshinData.getReliquaryMainPropDataMap().get(equip.getMainPropId()); + ReliquaryMainPropData mainPropData = GameData.getReliquaryMainPropDataMap().get(equip.getMainPropId()); if (mainPropData != null) { - ReliquaryLevelData levelData = GenshinData.getRelicLevelData(equip.getItemData().getRankLevel(), equip.getLevel()); + ReliquaryLevelData levelData = GameData.getRelicLevelData(equip.getItemData().getRankLevel(), equip.getLevel()); if (levelData != null) { this.addFightProperty(mainPropData.getFightProp(), levelData.getPropValue(mainPropData.getFightProp())); } } // Artifact sub stats for (int appendPropId : equip.getAppendPropIdList()) { - ReliquaryAffixData affixData = GenshinData.getReliquaryAffixDataMap().get(appendPropId); + ReliquaryAffixData affixData = GameData.getReliquaryAffixDataMap().get(appendPropId); if (affixData != null) { this.addFightProperty(affixData.getFightProp(), affixData.getPropValue()); } @@ -503,7 +503,7 @@ public class GenshinAvatar { // Set stuff for (Int2IntOpenHashMap.Entry e : setMap.int2IntEntrySet()) { - ReliquarySetData setData = GenshinData.getReliquarySetDataMap().get(e.getIntKey()); + ReliquarySetData setData = GameData.getReliquarySetDataMap().get(e.getIntKey()); if (setData == null) { continue; } @@ -516,7 +516,7 @@ public class GenshinAvatar { if (amount >= setData.getSetNeedNum()[setIndex]) { int affixId = (setData.getEquipAffixId() * 10) + setIndex; - EquipAffixData affix = GenshinData.getEquipAffixDataMap().get(affixId); + EquipAffixData affix = GameData.getEquipAffixDataMap().get(affixId); if (affix == null) { continue; } @@ -535,17 +535,17 @@ public class GenshinAvatar { } // Weapon - GenshinItem weapon = this.getWeapon(); + GameItem weapon = this.getWeapon(); if (weapon != null) { // Add stats - WeaponCurveData curveData = GenshinData.getWeaponCurveDataMap().get(weapon.getLevel()); + WeaponCurveData curveData = GameData.getWeaponCurveDataMap().get(weapon.getLevel()); if (curveData != null) { for (WeaponProperty weaponProperty : weapon.getItemData().getWeaponProperties()) { this.addFightProperty(weaponProperty.getFightProp(), weaponProperty.getInitValue() * curveData.getMultByProp(weaponProperty.getType())); } } // Weapon promotion stats - WeaponPromoteData wepPromoteData = GenshinData.getWeaponPromoteData(weapon.getItemData().getWeaponPromoteId(), weapon.getPromoteLevel()); + WeaponPromoteData wepPromoteData = GameData.getWeaponPromoteData(weapon.getItemData().getWeaponPromoteId(), weapon.getPromoteLevel()); if (wepPromoteData != null) { for (FightPropData prop : wepPromoteData.getAddProps()) { if (prop.getValue() == 0f || prop.getProp() == null) { @@ -563,7 +563,7 @@ public class GenshinAvatar { } // Calculate affix id int affixId = (af * 10) + weapon.getRefinement(); - EquipAffixData affix = GenshinData.getEquipAffixDataMap().get(affixId); + EquipAffixData affix = GameData.getEquipAffixDataMap().get(affixId); if (affix == null) { continue; } @@ -580,7 +580,7 @@ public class GenshinAvatar { } // Add proud skills and unlock them if needed - AvatarSkillDepotData skillDepot = GenshinData.getAvatarSkillDepotDataMap().get(this.getSkillDepotId()); + AvatarSkillDepotData skillDepot = GameData.getAvatarSkillDepotDataMap().get(this.getSkillDepotId()); this.getProudSkillList().clear(); for (InherentProudSkillOpens openData : skillDepot.getInherentProudSkillOpens()) { if (openData.getProudSkillGroupId() == 0) { @@ -588,7 +588,7 @@ public class GenshinAvatar { } if (openData.getNeedAvatarPromoteLevel() <= this.getPromoteLevel()) { int proudSkillId = (openData.getProudSkillGroupId() * 100) + 1; - if (GenshinData.getProudSkillDataMap().containsKey(proudSkillId)) { + if (GameData.getProudSkillDataMap().containsKey(proudSkillId)) { this.getProudSkillList().add(proudSkillId); } } @@ -596,7 +596,7 @@ public class GenshinAvatar { // Proud skills for (int proudSkillId : this.getProudSkillList()) { - ProudSkillData proudSkillData = GenshinData.getProudSkillDataMap().get(proudSkillId); + ProudSkillData proudSkillData = GameData.getProudSkillDataMap().get(proudSkillId); if (proudSkillData == null) { continue; } @@ -613,7 +613,7 @@ public class GenshinAvatar { // Constellations if (this.getTalentIdList().size() > 0) { for (int talentId : this.getTalentIdList()) { - AvatarTalentData avatarTalentData = GenshinData.getAvatarTalentDataMap().get(talentId); + AvatarTalentData avatarTalentData = GameData.getAvatarTalentDataMap().get(talentId); if (avatarTalentData == null) { return; } @@ -657,7 +657,7 @@ public class GenshinAvatar { return; } - OpenConfigEntry entry = GenshinData.getOpenConfigEntries().get(openConfig); + OpenConfigEntry entry = GameData.getOpenConfigEntries().get(openConfig); if (entry == null) { if (forceAdd) { // Add config string to ability skill list anyways @@ -684,14 +684,14 @@ public class GenshinAvatar { if (this.getTalentIdList().size() > 0) { for (int talentId : this.getTalentIdList()) { - AvatarTalentData avatarTalentData = GenshinData.getAvatarTalentDataMap().get(talentId); + AvatarTalentData avatarTalentData = GameData.getAvatarTalentDataMap().get(talentId); if (avatarTalentData == null || avatarTalentData.getOpenConfig() == null || avatarTalentData.getOpenConfig().length() == 0) { continue; } // Get open config to find which skill should be boosted - OpenConfigEntry entry = GenshinData.getOpenConfigEntries().get(avatarTalentData.getOpenConfig()); + OpenConfigEntry entry = GameData.getOpenConfigEntries().get(avatarTalentData.getOpenConfig()); if (entry == null) { continue; } @@ -712,7 +712,7 @@ public class GenshinAvatar { } // Get proud skill group id - AvatarSkillData skillData = GenshinData.getAvatarSkillDataMap().get(skillId); + AvatarSkillData skillData = GameData.getAvatarSkillDataMap().get(skillId); if (skillData == null) { continue; @@ -785,7 +785,7 @@ public class GenshinAvatar { .setWearingFlycloakId(this.getFlyCloak()) .setCostumeId(this.getCostume()); - for (GenshinItem item : this.getEquips().values()) { + for (GameItem item : this.getEquips().values()) { avatarInfo.addEquipGuidList(item.getGuid()); } diff --git a/src/main/java/emu/grasscutter/game/avatar/AvatarProfileData.java b/src/main/java/emu/grasscutter/game/avatar/AvatarProfileData.java index d04c9d326..b38855b81 100644 --- a/src/main/java/emu/grasscutter/game/avatar/AvatarProfileData.java +++ b/src/main/java/emu/grasscutter/game/avatar/AvatarProfileData.java @@ -7,7 +7,7 @@ public class AvatarProfileData { private int avatarId; private int level; - public AvatarProfileData(GenshinAvatar avatar) { + public AvatarProfileData(Avatar avatar) { this.update(avatar); } @@ -19,7 +19,7 @@ public class AvatarProfileData { return level; } - public void update(GenshinAvatar avatar) { + public void update(Avatar avatar) { this.avatarId = avatar.getAvatarId(); this.level = avatar.getLevel(); } diff --git a/src/main/java/emu/grasscutter/game/avatar/AvatarStorage.java b/src/main/java/emu/grasscutter/game/avatar/AvatarStorage.java index 5162156bc..2e55dc8b2 100644 --- a/src/main/java/emu/grasscutter/game/avatar/AvatarStorage.java +++ b/src/main/java/emu/grasscutter/game/avatar/AvatarStorage.java @@ -3,12 +3,12 @@ package emu.grasscutter.game.avatar; import java.util.Iterator; import java.util.List; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.AvatarData; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.server.packet.send.PacketAvatarChangeCostumeNotify; import emu.grasscutter.server.packet.send.PacketAvatarFlycloakChangeNotify; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; @@ -16,22 +16,22 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; -public class AvatarStorage implements Iterable<GenshinAvatar> { - private final GenshinPlayer player; - private final Int2ObjectMap<GenshinAvatar> avatars; - private final Long2ObjectMap<GenshinAvatar> avatarsGuid; +public class AvatarStorage implements Iterable<Avatar> { + private final Player player; + private final Int2ObjectMap<Avatar> avatars; + private final Long2ObjectMap<Avatar> avatarsGuid; - public AvatarStorage(GenshinPlayer player) { + public AvatarStorage(Player player) { this.player = player; this.avatars = new Int2ObjectOpenHashMap<>(); this.avatarsGuid = new Long2ObjectOpenHashMap<>(); } - public GenshinPlayer getPlayer() { + public Player getPlayer() { return player; } - public Int2ObjectMap<GenshinAvatar> getAvatars() { + public Int2ObjectMap<Avatar> getAvatars() { return avatars; } @@ -39,11 +39,11 @@ public class AvatarStorage implements Iterable<GenshinAvatar> { return this.avatars.size(); } - public GenshinAvatar getAvatarById(int id) { + public Avatar getAvatarById(int id) { return getAvatars().get(id); } - public GenshinAvatar getAvatarByGuid(long id) { + public Avatar getAvatarByGuid(long id) { return avatarsGuid.get(id); } @@ -51,7 +51,7 @@ public class AvatarStorage implements Iterable<GenshinAvatar> { return getAvatars().containsKey(id); } - public boolean addAvatar(GenshinAvatar avatar) { + public boolean addAvatar(Avatar avatar) { if (avatar.getAvatarData() == null || this.hasAvatar(avatar.getAvatarId())) { return false; } @@ -68,14 +68,14 @@ public class AvatarStorage implements Iterable<GenshinAvatar> { return true; } - public void addStartingWeapon(GenshinAvatar avatar) { + public void addStartingWeapon(Avatar avatar) { // Make sure avatar owner is this player if (avatar.getPlayer() != this.getPlayer()) { return; } // Create weapon - GenshinItem weapon = new GenshinItem(avatar.getAvatarData().getInitialWeapon()); + GameItem weapon = new GameItem(avatar.getAvatarData().getInitialWeapon()); if (weapon.getItemData() != null) { this.getPlayer().getInventory().addItem(weapon); @@ -85,7 +85,7 @@ public class AvatarStorage implements Iterable<GenshinAvatar> { } public boolean wearFlycloak(long avatarGuid, int flycloakId) { - GenshinAvatar avatar = this.getAvatarByGuid(avatarGuid); + Avatar avatar = this.getAvatarByGuid(avatarGuid); if (avatar == null || !getPlayer().getFlyCloakList().contains(flycloakId)) { return false; @@ -101,7 +101,7 @@ public class AvatarStorage implements Iterable<GenshinAvatar> { } public boolean changeCostume(long avatarGuid, int costumeId) { - GenshinAvatar avatar = this.getAvatarByGuid(avatarGuid); + Avatar avatar = this.getAvatarByGuid(avatarGuid); if (avatar == null) { return false; @@ -130,15 +130,15 @@ public class AvatarStorage implements Iterable<GenshinAvatar> { } public void loadFromDatabase() { - List<GenshinAvatar> avatars = DatabaseHelper.getAvatars(getPlayer()); + List<Avatar> avatars = DatabaseHelper.getAvatars(getPlayer()); - for (GenshinAvatar avatar : avatars) { + for (Avatar avatar : avatars) { // Should never happen if (avatar.getObjectId() == null) { continue; } - AvatarData avatarData = GenshinData.getAvatarDataMap().get(avatar.getAvatarId()); + AvatarData avatarData = GameData.getAvatarDataMap().get(avatar.getAvatarId()); if (avatarData == null) { continue; } @@ -157,7 +157,7 @@ public class AvatarStorage implements Iterable<GenshinAvatar> { } public void postLoad() { - for (GenshinAvatar avatar : this) { + for (Avatar avatar : this) { // Weapon check if (avatar.getWeapon() == null) { this.addStartingWeapon(avatar); @@ -168,7 +168,7 @@ public class AvatarStorage implements Iterable<GenshinAvatar> { } @Override - public Iterator<GenshinAvatar> iterator() { + public Iterator<Avatar> iterator() { return getAvatars().values().iterator(); } } diff --git a/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java b/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java index 7788f932a..a69d91fa0 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java @@ -1,15 +1,15 @@ package emu.grasscutter.game.entity; -import emu.grasscutter.GenshinConstants; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.GameConstants; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.AvatarData; import emu.grasscutter.data.def.AvatarSkillDepotData; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.GenshinScene; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.Scene; import emu.grasscutter.game.World; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.inventory.EquipType; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.PlayerProperty; @@ -34,29 +34,29 @@ import emu.grasscutter.utils.Utils; import it.unimi.dsi.fastutil.ints.Int2FloatMap; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; -public class EntityAvatar extends GenshinEntity { - private final GenshinAvatar avatar; +public class EntityAvatar extends GameEntity { + private final Avatar avatar; private PlayerDieType killedType; private int killedBy; - public EntityAvatar(GenshinScene scene, GenshinAvatar avatar) { + public EntityAvatar(Scene scene, Avatar avatar) { super(scene); this.avatar = avatar; this.id = getScene().getWorld().getNextEntityId(EntityIdType.AVATAR); - GenshinItem weapon = this.getAvatar().getWeapon(); + GameItem weapon = this.getAvatar().getWeapon(); if (weapon != null) { weapon.setWeaponEntityId(getScene().getWorld().getNextEntityId(EntityIdType.WEAPON)); } } - public EntityAvatar(GenshinAvatar avatar) { + public EntityAvatar(Avatar avatar) { super(null); this.avatar = avatar; } - public GenshinPlayer getPlayer() { + public Player getPlayer() { return avatar.getPlayer(); } @@ -70,7 +70,7 @@ public class EntityAvatar extends GenshinEntity { return getPlayer().getRotation(); } - public GenshinAvatar getAvatar() { + public Avatar getAvatar() { return avatar; } @@ -122,7 +122,7 @@ public class EntityAvatar extends GenshinEntity { .setCostumeId(this.getAvatar().getCostume()) .setBornTime(this.getAvatar().getBornTime()); - for (GenshinItem item : avatar.getEquips().values()) { + for (GameItem item : avatar.getEquips().values()) { if (item.getItemData().getEquipType() == EquipType.EQUIP_WEAPON) { avatarInfo.setWeapon(item.createSceneWeaponInfo()); } else { @@ -187,17 +187,17 @@ public class EntityAvatar extends GenshinEntity { AbilityEmbryo emb = AbilityEmbryo.newBuilder() .setAbilityId(++embryoId) .setAbilityNameHash(id) - .setAbilityOverrideNameHash(GenshinConstants.DEFAULT_ABILITY_NAME) + .setAbilityOverrideNameHash(GameConstants.DEFAULT_ABILITY_NAME) .build(); abilityControlBlock.addAbilityEmbryoList(emb); } } // Add default abilities - for (int id : GenshinConstants.DEFAULT_ABILITY_HASHES) { + for (int id : GameConstants.DEFAULT_ABILITY_HASHES) { AbilityEmbryo emb = AbilityEmbryo.newBuilder() .setAbilityId(++embryoId) .setAbilityNameHash(id) - .setAbilityOverrideNameHash(GenshinConstants.DEFAULT_ABILITY_NAME) + .setAbilityOverrideNameHash(GameConstants.DEFAULT_ABILITY_NAME) .build(); abilityControlBlock.addAbilityEmbryoList(emb); } @@ -206,18 +206,18 @@ public class EntityAvatar extends GenshinEntity { AbilityEmbryo emb = AbilityEmbryo.newBuilder() .setAbilityId(++embryoId) .setAbilityNameHash(id) - .setAbilityOverrideNameHash(GenshinConstants.DEFAULT_ABILITY_NAME) + .setAbilityOverrideNameHash(GameConstants.DEFAULT_ABILITY_NAME) .build(); abilityControlBlock.addAbilityEmbryoList(emb); } // Add skill depot abilities - AvatarSkillDepotData skillDepot = GenshinData.getAvatarSkillDepotDataMap().get(this.getAvatar().getSkillDepotId()); + AvatarSkillDepotData skillDepot = GameData.getAvatarSkillDepotDataMap().get(this.getAvatar().getSkillDepotId()); if (skillDepot != null && skillDepot.getAbilities() != null) { for (int id : skillDepot.getAbilities()) { AbilityEmbryo emb = AbilityEmbryo.newBuilder() .setAbilityId(++embryoId) .setAbilityNameHash(id) - .setAbilityOverrideNameHash(GenshinConstants.DEFAULT_ABILITY_NAME) + .setAbilityOverrideNameHash(GameConstants.DEFAULT_ABILITY_NAME) .build(); abilityControlBlock.addAbilityEmbryoList(emb); } @@ -228,7 +228,7 @@ public class EntityAvatar extends GenshinEntity { AbilityEmbryo emb = AbilityEmbryo.newBuilder() .setAbilityId(++embryoId) .setAbilityNameHash(Utils.abilityHash(skill)) - .setAbilityOverrideNameHash(GenshinConstants.DEFAULT_ABILITY_NAME) + .setAbilityOverrideNameHash(GameConstants.DEFAULT_ABILITY_NAME) .build(); abilityControlBlock.addAbilityEmbryoList(emb); } diff --git a/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java b/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java index 04f045c03..d51e45e5e 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java @@ -1,7 +1,7 @@ package emu.grasscutter.game.entity; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.GenshinScene; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.Scene; import emu.grasscutter.game.World; import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; @@ -24,7 +24,7 @@ import emu.grasscutter.utils.ProtoHelper; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; public class EntityClientGadget extends EntityGadget { - private final GenshinPlayer owner; + private final Player owner; private final Position pos; private final Position rot; @@ -36,7 +36,7 @@ public class EntityClientGadget extends EntityGadget { private int targetEntityId; private boolean asyncLoad; - public EntityClientGadget(GenshinScene scene, GenshinPlayer player, EvtCreateGadgetNotify notify) { + public EntityClientGadget(Scene scene, Player player, EvtCreateGadgetNotify notify) { super(scene); this.owner = player; this.id = notify.getEntityId(); @@ -55,7 +55,7 @@ public class EntityClientGadget extends EntityGadget { return configId; } - public GenshinPlayer getOwner() { + public Player getOwner() { return owner; } diff --git a/src/main/java/emu/grasscutter/game/entity/EntityGadget.java b/src/main/java/emu/grasscutter/game/entity/EntityGadget.java index 081c2fe3f..ec3279761 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityGadget.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityGadget.java @@ -1,11 +1,11 @@ package emu.grasscutter.game.entity; -import emu.grasscutter.game.GenshinScene; +import emu.grasscutter.game.Scene; import emu.grasscutter.game.World; -public abstract class EntityGadget extends GenshinEntity { +public abstract class EntityGadget extends GameEntity { - public EntityGadget(GenshinScene scene) { + public EntityGadget(Scene scene) { super(scene); } diff --git a/src/main/java/emu/grasscutter/game/entity/EntityItem.java b/src/main/java/emu/grasscutter/game/entity/EntityItem.java index ebd8051e6..a690d106b 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityItem.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityItem.java @@ -1,10 +1,10 @@ package emu.grasscutter.game.entity; import emu.grasscutter.data.def.ItemData; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.GenshinScene; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.Scene; import emu.grasscutter.game.World; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; @@ -28,16 +28,16 @@ public class EntityItem extends EntityGadget { private final Position pos; private final Position rot; - private final GenshinItem item; + private final GameItem item; private final long guid; - public EntityItem(GenshinScene scene, GenshinPlayer player, ItemData itemData, Position pos, int count) { + public EntityItem(Scene scene, Player player, ItemData itemData, Position pos, int count) { super(scene); this.id = getScene().getWorld().getNextEntityId(EntityIdType.GADGET); this.pos = new Position(pos); this.rot = new Position(); - this.guid = player.getNextGenshinGuid(); - this.item = new GenshinItem(itemData, count); + this.guid = player.getNextGameGuid(); + this.item = new GameItem(itemData, count); } @Override @@ -45,7 +45,7 @@ public class EntityItem extends EntityGadget { return this.id; } - private GenshinItem getItem() { + private GameItem getItem() { return this.item; } diff --git a/src/main/java/emu/grasscutter/game/entity/EntityMonster.java b/src/main/java/emu/grasscutter/game/entity/EntityMonster.java index a1900f5c9..c3ee16b3f 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityMonster.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityMonster.java @@ -1,10 +1,10 @@ package emu.grasscutter.game.entity; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.common.PropGrowCurve; import emu.grasscutter.data.def.MonsterCurveData; import emu.grasscutter.data.def.MonsterData; -import emu.grasscutter.game.GenshinScene; +import emu.grasscutter.game.Scene; import emu.grasscutter.game.World; import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.FightProperty; @@ -27,7 +27,7 @@ import emu.grasscutter.utils.ProtoHelper; import it.unimi.dsi.fastutil.ints.Int2FloatMap; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; -public class EntityMonster extends GenshinEntity { +public class EntityMonster extends GameEntity { private final MonsterData monsterData; private final Int2FloatOpenHashMap fightProp; @@ -41,7 +41,7 @@ public class EntityMonster extends GenshinEntity { private int configId; private int poseId; - public EntityMonster(GenshinScene scene, MonsterData monsterData, Position pos, int level) { + public EntityMonster(Scene scene, MonsterData monsterData, Position pos, int level) { super(scene); this.id = getWorld().getNextEntityId(EntityIdType.MONSTER); this.monsterData = monsterData; @@ -160,7 +160,7 @@ public class EntityMonster extends GenshinEntity { this.setFightProperty(FightProperty.FIGHT_PROP_ICE_SUB_HURT, data.getIceSubHurt()); // Level curve - MonsterCurveData curve = GenshinData.getMonsterCurveDataMap().get(this.getLevel()); + MonsterCurveData curve = GameData.getMonsterCurveDataMap().get(this.getLevel()); if (curve != null) { for (PropGrowCurve growCurve : data.getPropGrowCurves()) { FightProperty prop = FightProperty.getPropByName(growCurve.getType()); diff --git a/src/main/java/emu/grasscutter/game/entity/GenshinEntity.java b/src/main/java/emu/grasscutter/game/entity/GameEntity.java similarity index 93% rename from src/main/java/emu/grasscutter/game/entity/GenshinEntity.java rename to src/main/java/emu/grasscutter/game/entity/GameEntity.java index c766f493c..b4fe2d14f 100644 --- a/src/main/java/emu/grasscutter/game/entity/GenshinEntity.java +++ b/src/main/java/emu/grasscutter/game/entity/GameEntity.java @@ -1,6 +1,6 @@ package emu.grasscutter.game.entity; -import emu.grasscutter.game.GenshinScene; +import emu.grasscutter.game.Scene; import emu.grasscutter.game.World; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; @@ -12,16 +12,16 @@ import emu.grasscutter.net.proto.VectorOuterClass.Vector; import emu.grasscutter.utils.Position; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; -public abstract class GenshinEntity { +public abstract class GameEntity { protected int id; - private final GenshinScene scene; + private final Scene scene; private SpawnDataEntry spawnEntry; private MotionState moveState; private int lastMoveSceneTimeMs; private int lastMoveReliableSeq; - public GenshinEntity(GenshinScene scene) { + public GameEntity(Scene scene) { this.scene = scene; this.moveState = MotionState.MOTION_NONE; } @@ -34,7 +34,7 @@ public abstract class GenshinEntity { return this.getScene().getWorld(); } - public GenshinScene getScene() { + public Scene getScene() { return this.scene; } diff --git a/src/main/java/emu/grasscutter/game/friends/FriendsList.java b/src/main/java/emu/grasscutter/game/friends/FriendsList.java index c7756763c..2d6f3105f 100644 --- a/src/main/java/emu/grasscutter/game/friends/FriendsList.java +++ b/src/main/java/emu/grasscutter/game/friends/FriendsList.java @@ -3,7 +3,7 @@ package emu.grasscutter.game.friends; import java.util.List; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.net.proto.DealAddFriendResultTypeOuterClass.DealAddFriendResultType; import emu.grasscutter.server.packet.send.PacketAskAddFriendNotify; import emu.grasscutter.server.packet.send.PacketAskAddFriendRsp; @@ -14,20 +14,20 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; public class FriendsList { - private final GenshinPlayer player; + private final Player player; private final Int2ObjectMap<Friendship> friends; private final Int2ObjectMap<Friendship> pendingFriends; private boolean loaded = false; - public FriendsList(GenshinPlayer player) { + public FriendsList(Player player) { this.player = player; this.friends = new Int2ObjectOpenHashMap<Friendship>(); this.pendingFriends = new Int2ObjectOpenHashMap<Friendship>(); } - public GenshinPlayer getPlayer() { + public Player getPlayer() { return player; } @@ -83,7 +83,7 @@ public class FriendsList { return; } - GenshinPlayer target = getPlayer().getSession().getServer().getPlayerByUid(targetUid, true); + Player target = getPlayer().getSession().getServer().getPlayerByUid(targetUid, true); if (target == null) { return; // Should never happen } @@ -143,7 +143,7 @@ public class FriendsList { myFriendship.delete(); Friendship theirFriendship = null; - GenshinPlayer friend = myFriendship.getFriendProfile().getPlayer(); + Player friend = myFriendship.getFriendProfile().getPlayer(); if (friend != null) { // Friend online theirFriendship = friend.getFriendsList().getFriendById(this.getPlayer().getUid()); @@ -165,7 +165,7 @@ public class FriendsList { } public synchronized void sendFriendRequest(int targetUid) { - GenshinPlayer target = getPlayer().getSession().getServer().getPlayerByUid(targetUid, true); + Player target = getPlayer().getSession().getServer().getPlayerByUid(targetUid, true); if (target == null || target == this.getPlayer()) { return; @@ -220,7 +220,7 @@ public class FriendsList { friendship.setOwner(getPlayer()); // Check if friend is online - GenshinPlayer friend = getPlayer().getSession().getServer().getPlayerByUid(friendship.getFriendProfile().getUid()); + Player friend = getPlayer().getSession().getServer().getPlayerByUid(friendship.getFriendProfile().getUid()); if (friend != null) { // Set friend to online mode friendship.setFriendProfile(friend); diff --git a/src/main/java/emu/grasscutter/game/friends/Friendship.java b/src/main/java/emu/grasscutter/game/friends/Friendship.java index 81d219901..c5af51dce 100644 --- a/src/main/java/emu/grasscutter/game/friends/Friendship.java +++ b/src/main/java/emu/grasscutter/game/friends/Friendship.java @@ -5,7 +5,7 @@ import org.bson.types.ObjectId; import dev.morphia.annotations.*; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.net.proto.FriendBriefOuterClass.FriendBrief; import emu.grasscutter.net.proto.FriendOnlineStateOuterClass.FriendOnlineState; import emu.grasscutter.net.proto.HeadImageOuterClass.HeadImage; @@ -14,7 +14,7 @@ import emu.grasscutter.net.proto.HeadImageOuterClass.HeadImage; public class Friendship { @Id private ObjectId id; - @Transient private GenshinPlayer owner; + @Transient private Player owner; @Indexed private int ownerId; @Indexed private int friendId; @@ -26,7 +26,7 @@ public class Friendship { @Deprecated // Morphia use only public Friendship() { } - public Friendship(GenshinPlayer owner, GenshinPlayer friend, GenshinPlayer asker) { + public Friendship(Player owner, Player friend, Player asker) { this.setOwner(owner); this.ownerId = owner.getUid(); this.friendId = friend.getUid(); @@ -34,11 +34,11 @@ public class Friendship { this.askerId = asker.getUid(); } - public GenshinPlayer getOwner() { + public Player getOwner() { return owner; } - public void setOwner(GenshinPlayer owner) { + public void setOwner(Player owner) { this.owner = owner; } @@ -70,7 +70,7 @@ public class Friendship { return profile; } - public void setFriendProfile(GenshinPlayer character) { + public void setFriendProfile(Player character) { if (character == null || this.friendId != character.getUid()) return; this.profile = character.getProfile(); } diff --git a/src/main/java/emu/grasscutter/game/friends/PlayerProfile.java b/src/main/java/emu/grasscutter/game/friends/PlayerProfile.java index 4af5f570e..b8f3f445a 100644 --- a/src/main/java/emu/grasscutter/game/friends/PlayerProfile.java +++ b/src/main/java/emu/grasscutter/game/friends/PlayerProfile.java @@ -1,12 +1,12 @@ package emu.grasscutter.game.friends; import dev.morphia.annotations.*; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.utils.Utils; @Entity public class PlayerProfile { - @Transient private GenshinPlayer player; + @Transient private Player player; @AlsoLoad("id") private int uid; private int nameCard; @@ -22,7 +22,7 @@ public class PlayerProfile { @Deprecated // Morphia only public PlayerProfile() { } - public PlayerProfile(GenshinPlayer player) { + public PlayerProfile(Player player) { this.uid = player.getUid(); this.syncWithCharacter(player); } @@ -31,11 +31,11 @@ public class PlayerProfile { return uid; } - public GenshinPlayer getPlayer() { + public Player getPlayer() { return player; } - public synchronized void setPlayer(GenshinPlayer player) { + public synchronized void setPlayer(Player player) { this.player = player; } @@ -83,7 +83,7 @@ public class PlayerProfile { return this.getPlayer() != null; } - public void syncWithCharacter(GenshinPlayer player) { + public void syncWithCharacter(Player player) { if (player == null) { return; } diff --git a/src/main/java/emu/grasscutter/game/gacha/GachaManager.java b/src/main/java/emu/grasscutter/game/gacha/GachaManager.java index ffb68a1d7..2a623f049 100644 --- a/src/main/java/emu/grasscutter/game/gacha/GachaManager.java +++ b/src/main/java/emu/grasscutter/game/gacha/GachaManager.java @@ -12,11 +12,11 @@ import com.google.gson.reflect.TypeToken; import com.sun.nio.file.SensitivityWatchEventModifier; import emu.grasscutter.Grasscutter; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.ItemData; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.inventory.ItemType; import emu.grasscutter.game.inventory.MaterialType; import emu.grasscutter.net.proto.GachaItemOuterClass.GachaItem; @@ -89,7 +89,7 @@ public class GachaManager { } } - public synchronized void doPulls(GenshinPlayer player, int gachaType, int times) { + public synchronized void doPulls(Player player, int gachaType, int times) { // Sanity check if (times != 10 && times != 1) { return; @@ -108,7 +108,7 @@ public class GachaManager { // Spend currency if (banner.getCostItem() > 0) { - GenshinItem costItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(banner.getCostItem()); + GameItem costItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(banner.getCostItem()); if (costItem == null || costItem.getCount() < times) { return; } @@ -191,7 +191,7 @@ public class GachaManager { int stardust = 0, starglitter = 0; for (int itemId : wonItems) { - ItemData itemData = GenshinData.getItemDataMap().get(itemId); + ItemData itemData = GameData.getItemDataMap().get(itemId); if (itemData == null) { continue; } @@ -204,11 +204,11 @@ public class GachaManager { // Const check if (itemData.getMaterialType() == MaterialType.MATERIAL_AVATAR) { int avatarId = (itemData.getId() % 1000) + 10000000; - GenshinAvatar avatar = player.getAvatars().getAvatarById(avatarId); + Avatar avatar = player.getAvatars().getAvatarById(avatarId); if (avatar != null) { int constLevel = avatar.getCoreProudSkillLevel(); int constItemId = itemData.getId() + 100; - GenshinItem constItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(constItemId); + GameItem constItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(constItemId); if (constItem != null) { constLevel += constItem.getCount(); } @@ -249,7 +249,7 @@ public class GachaManager { } // Create item - GenshinItem item = new GenshinItem(itemData); + GameItem item = new GameItem(itemData); gachaItem.setGachaItem(item.toItemParam()); player.getInventory().addItem(item); diff --git a/src/main/java/emu/grasscutter/game/inventory/EquipInventoryTab.java b/src/main/java/emu/grasscutter/game/inventory/EquipInventoryTab.java index af33558c8..e1d6c062f 100644 --- a/src/main/java/emu/grasscutter/game/inventory/EquipInventoryTab.java +++ b/src/main/java/emu/grasscutter/game/inventory/EquipInventoryTab.java @@ -4,26 +4,26 @@ import java.util.HashSet; import java.util.Set; public class EquipInventoryTab implements InventoryTab { - private final Set<GenshinItem> items; + private final Set<GameItem> items; private final int maxCapacity; public EquipInventoryTab(int maxCapacity) { - this.items = new HashSet<GenshinItem>(); + this.items = new HashSet<GameItem>(); this.maxCapacity = maxCapacity; } @Override - public GenshinItem getItemById(int id) { + public GameItem getItemById(int id) { return null; } @Override - public void onAddItem(GenshinItem item) { + public void onAddItem(GameItem item) { this.items.add(item); } @Override - public void onRemoveItem(GenshinItem item) { + public void onRemoveItem(GameItem item) { this.items.remove(item); } diff --git a/src/main/java/emu/grasscutter/game/inventory/GenshinItem.java b/src/main/java/emu/grasscutter/game/inventory/GameItem.java similarity index 88% rename from src/main/java/emu/grasscutter/game/inventory/GenshinItem.java rename to src/main/java/emu/grasscutter/game/inventory/GameItem.java index 89c0e7169..ed0221260 100644 --- a/src/main/java/emu/grasscutter/game/inventory/GenshinItem.java +++ b/src/main/java/emu/grasscutter/game/inventory/GameItem.java @@ -13,13 +13,13 @@ import dev.morphia.annotations.Indexed; import dev.morphia.annotations.PostLoad; import dev.morphia.annotations.Transient; -import emu.grasscutter.data.GenshinData; -import emu.grasscutter.data.GenshinDepot; +import emu.grasscutter.data.GameData; +import emu.grasscutter.data.GameDepot; import emu.grasscutter.data.def.ItemData; import emu.grasscutter.data.def.ReliquaryAffixData; import emu.grasscutter.data.def.ReliquaryMainPropData; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; import emu.grasscutter.net.proto.EquipOuterClass.Equip; @@ -35,7 +35,7 @@ import emu.grasscutter.net.proto.WeaponOuterClass.Weapon; import emu.grasscutter.utils.WeightedList; @Entity(value = "items", useDiscriminator = false) -public class GenshinItem { +public class GameItem { @Id private ObjectId id; @Indexed private int ownerId; private int itemId; @@ -62,23 +62,23 @@ public class GenshinItem { private int equipCharacter; @Transient private int weaponEntityId; - public GenshinItem() { + public GameItem() { // Morphia only } - public GenshinItem(int itemId) { - this(GenshinData.getItemDataMap().get(itemId)); + public GameItem(int itemId) { + this(GameData.getItemDataMap().get(itemId)); } - public GenshinItem(int itemId, int count) { - this(GenshinData.getItemDataMap().get(itemId), count); + public GameItem(int itemId, int count) { + this(GameData.getItemDataMap().get(itemId), count); } - public GenshinItem(ItemData data) { + public GameItem(ItemData data) { this(data, 1); } - public GenshinItem(ItemData data, int count) { + public GameItem(ItemData data, int count) { this.itemId = data.getId(); this.itemData = data; @@ -103,7 +103,7 @@ public class GenshinItem { this.level = 1; this.appendPropIdList = new ArrayList<>(); // Create main property - ReliquaryMainPropData mainPropData = GenshinDepot.getRandomRelicMainProp(getItemData().getMainPropDepotId()); + ReliquaryMainPropData mainPropData = GameDepot.getRandomRelicMainProp(getItemData().getMainPropDepotId()); if (mainPropData != null) { this.mainPropId = mainPropData.getId(); } @@ -124,9 +124,9 @@ public class GenshinItem { return ownerId; } - public void setOwner(GenshinPlayer player) { + public void setOwner(Player player) { this.ownerId = player.getUid(); - this.guid = player.getNextGenshinGuid(); + this.guid = player.getNextGameGuid(); } public int getItemId() { return itemId; @@ -261,7 +261,7 @@ public class GenshinItem { } private void addNewAppendProp() { - List<ReliquaryAffixData> affixList = GenshinDepot.getRandomRelicAffixList(getItemData().getAppendPropDepotId()); + List<ReliquaryAffixData> affixList = GameDepot.getRandomRelicAffixList(getItemData().getAppendPropDepotId()); if (affixList == null) { return; @@ -269,13 +269,13 @@ public class GenshinItem { // Build blacklist - Dont add same stat as main/sub stat Set<FightProperty> blacklist = new HashSet<>(); - ReliquaryMainPropData mainPropData = GenshinData.getReliquaryMainPropDataMap().get(this.getMainPropId()); + ReliquaryMainPropData mainPropData = GameData.getReliquaryMainPropDataMap().get(this.getMainPropId()); if (mainPropData != null) { blacklist.add(mainPropData.getFightProp()); } int len = Math.min(4, this.getAppendPropIdList().size()); for (int i = 0; i < len; i++) { - ReliquaryAffixData affixData = GenshinData.getReliquaryAffixDataMap().get((int) this.getAppendPropIdList().get(i)); + ReliquaryAffixData affixData = GameData.getReliquaryAffixDataMap().get((int) this.getAppendPropIdList().get(i)); if (affixData != null) { blacklist.add(affixData.getFightProp()); } @@ -299,7 +299,7 @@ public class GenshinItem { } private void upgradeRandomAppendProp() { - List<ReliquaryAffixData> affixList = GenshinDepot.getRandomRelicAffixList(getItemData().getAppendPropDepotId()); + List<ReliquaryAffixData> affixList = GameDepot.getRandomRelicAffixList(getItemData().getAppendPropDepotId()); if (affixList == null) { return; @@ -309,7 +309,7 @@ public class GenshinItem { Set<FightProperty> whitelist = new HashSet<>(); int len = Math.min(4, this.getAppendPropIdList().size()); for (int i = 0; i < len; i++) { - ReliquaryAffixData affixData = GenshinData.getReliquaryAffixDataMap().get((int) this.getAppendPropIdList().get(i)); + ReliquaryAffixData affixData = GameData.getReliquaryAffixDataMap().get((int) this.getAppendPropIdList().get(i)); if (affixData != null) { whitelist.add(affixData.getFightProp()); } @@ -331,7 +331,7 @@ public class GenshinItem { @PostLoad public void onLoad() { if (this.itemData == null) { - this.itemData = GenshinData.getItemDataMap().get(getItemId()); + this.itemData = GameData.getItemDataMap().get(getItemId()); } } diff --git a/src/main/java/emu/grasscutter/game/inventory/Inventory.java b/src/main/java/emu/grasscutter/game/inventory/Inventory.java index a41386530..c8bddd439 100644 --- a/src/main/java/emu/grasscutter/game/inventory/Inventory.java +++ b/src/main/java/emu/grasscutter/game/inventory/Inventory.java @@ -5,17 +5,17 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import emu.grasscutter.GenshinConstants; +import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.AvatarCostumeData; import emu.grasscutter.data.def.AvatarData; import emu.grasscutter.data.def.AvatarFlycloakData; import emu.grasscutter.data.def.ItemData; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.AvatarStorage; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam; @@ -28,13 +28,13 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; -public class Inventory implements Iterable<GenshinItem> { - private final GenshinPlayer player; +public class Inventory implements Iterable<GameItem> { + private final Player player; - private final Long2ObjectMap<GenshinItem> store; + private final Long2ObjectMap<GameItem> store; private final Int2ObjectMap<InventoryTab> inventoryTypes; - public Inventory(GenshinPlayer player) { + public Inventory(Player player) { this.player = player; this.store = new Long2ObjectOpenHashMap<>(); this.inventoryTypes = new Int2ObjectOpenHashMap<>(); @@ -45,7 +45,7 @@ public class Inventory implements Iterable<GenshinItem> { this.createInventoryTab(ItemType.ITEM_FURNITURE, new MaterialInventoryTab(Grasscutter.getConfig().getGameServerOptions().InventoryLimitFurniture)); } - public GenshinPlayer getPlayer() { + public Player getPlayer() { return player; } @@ -53,7 +53,7 @@ public class Inventory implements Iterable<GenshinItem> { return this.getPlayer().getAvatars(); } - public Long2ObjectMap<GenshinItem> getItems() { + public Long2ObjectMap<GameItem> getItems() { return store; } @@ -69,7 +69,7 @@ public class Inventory implements Iterable<GenshinItem> { this.getInventoryTypes().put(type.getValue(), tab); } - public GenshinItem getItemByGuid(long id) { + public GameItem getItemByGuid(long id) { return this.getItems().get(id); } @@ -78,19 +78,19 @@ public class Inventory implements Iterable<GenshinItem> { } public boolean addItem(int itemId, int count) { - ItemData itemData = GenshinData.getItemDataMap().get(itemId); + ItemData itemData = GameData.getItemDataMap().get(itemId); if (itemData == null) { return false; } - GenshinItem item = new GenshinItem(itemData, count); + GameItem item = new GameItem(itemData, count); return addItem(item); } - public boolean addItem(GenshinItem item) { - GenshinItem result = putItem(item); + public boolean addItem(GameItem item) { + GameItem result = putItem(item); if (result != null) { getPlayer().sendPacket(new PacketStoreItemChangeNotify(result)); @@ -100,7 +100,7 @@ public class Inventory implements Iterable<GenshinItem> { return false; } - public boolean addItem(GenshinItem item, ActionReason reason) { + public boolean addItem(GameItem item, ActionReason reason) { boolean result = addItem(item); if (result && reason != null) { @@ -110,15 +110,15 @@ public class Inventory implements Iterable<GenshinItem> { return result; } - public void addItems(Collection<GenshinItem> items) { + public void addItems(Collection<GameItem> items) { this.addItems(items, null); } - public void addItems(Collection<GenshinItem> items, ActionReason reason) { - List<GenshinItem> changedItems = new LinkedList<>(); + public void addItems(Collection<GameItem> items, ActionReason reason) { + List<GameItem> changedItems = new LinkedList<>(); - for (GenshinItem item : items) { - GenshinItem result = putItem(item); + for (GameItem item : items) { + GameItem result = putItem(item); if (result != null) { changedItems.add(result); } @@ -136,10 +136,10 @@ public class Inventory implements Iterable<GenshinItem> { } public void addItemParams(Collection<ItemParam> items) { - addItems(items.stream().map(param -> new GenshinItem(param.getItemId(), param.getCount())).toList(), null); + addItems(items.stream().map(param -> new GameItem(param.getItemId(), param.getCount())).toList(), null); } - private synchronized GenshinItem putItem(GenshinItem item) { + private synchronized GameItem putItem(GameItem item) { // Dont add items that dont have a valid item definition. if (item.getItemData() == null) { return null; @@ -163,23 +163,23 @@ public class Inventory implements Iterable<GenshinItem> { // Get avatar id int avatarId = (item.getItemId() % 1000) + 10000000; // Dont let people give themselves extra main characters - if (avatarId == GenshinConstants.MAIN_CHARACTER_MALE || avatarId == GenshinConstants.MAIN_CHARACTER_FEMALE) { + if (avatarId == GameConstants.MAIN_CHARACTER_MALE || avatarId == GameConstants.MAIN_CHARACTER_FEMALE) { return null; } // Add avatar - AvatarData avatarData = GenshinData.getAvatarDataMap().get(avatarId); + AvatarData avatarData = GameData.getAvatarDataMap().get(avatarId); if (avatarData != null && !player.getAvatars().hasAvatar(avatarId)) { - this.getPlayer().addAvatar(new GenshinAvatar(avatarData)); + this.getPlayer().addAvatar(new Avatar(avatarData)); } return null; } else if (item.getItemData().getMaterialType() == MaterialType.MATERIAL_FLYCLOAK) { - AvatarFlycloakData flycloakData = GenshinData.getAvatarFlycloakDataMap().get(item.getItemId()); + AvatarFlycloakData flycloakData = GameData.getAvatarFlycloakDataMap().get(item.getItemId()); if (flycloakData != null && !player.getFlyCloakList().contains(item.getItemId())) { getPlayer().addFlycloak(item.getItemId()); } return null; } else if (item.getItemData().getMaterialType() == MaterialType.MATERIAL_COSTUME) { - AvatarCostumeData costumeData = GenshinData.getAvatarCostumeDataItemIdMap().get(item.getItemId()); + AvatarCostumeData costumeData = GameData.getAvatarCostumeDataItemIdMap().get(item.getItemId()); if (costumeData != null && !player.getCostumeList().contains(costumeData.getId())) { getPlayer().addCostume(costumeData.getId()); } @@ -190,7 +190,7 @@ public class Inventory implements Iterable<GenshinItem> { } return null; } else if (tab != null) { - GenshinItem existingItem = tab.getItemById(item.getItemId()); + GameItem existingItem = tab.getItemById(item.getItemId()); if (existingItem == null) { // Item type didnt exist before, we will add it to main inventory map if there is enough space if (tab.getSize() >= tab.getMaxCapacity()) { @@ -213,7 +213,7 @@ public class Inventory implements Iterable<GenshinItem> { return item; } - private synchronized void putItem(GenshinItem item, InventoryTab tab) { + private synchronized void putItem(GameItem item, InventoryTab tab) { // Set owner and guid FIRST! item.setOwner(getPlayer()); // Put in item store @@ -242,9 +242,9 @@ public class Inventory implements Iterable<GenshinItem> { } } - public void removeItems(List<GenshinItem> items) { + public void removeItems(List<GameItem> items) { // TODO Bulk delete - for (GenshinItem item : items) { + for (GameItem item : items) { this.removeItem(item, item.getCount()); } } @@ -254,7 +254,7 @@ public class Inventory implements Iterable<GenshinItem> { } public synchronized boolean removeItem(long guid, int count) { - GenshinItem item = this.getItemByGuid(guid); + GameItem item = this.getItemByGuid(guid); if (item == null) { return false; @@ -263,11 +263,11 @@ public class Inventory implements Iterable<GenshinItem> { return removeItem(item, count); } - public synchronized boolean removeItem(GenshinItem item) { + public synchronized boolean removeItem(GameItem item) { return removeItem(item, item.getCount()); } - public synchronized boolean removeItem(GenshinItem item, int count) { + public synchronized boolean removeItem(GameItem item, int count) { // Sanity check if (count <= 0 || item == null) { return false; @@ -296,7 +296,7 @@ public class Inventory implements Iterable<GenshinItem> { return true; } - private void deleteItem(GenshinItem item, InventoryTab tab) { + private void deleteItem(GameItem item, InventoryTab tab) { getItems().remove(item.getGuid()); if (tab != null) { tab.onRemoveItem(item); @@ -304,8 +304,8 @@ public class Inventory implements Iterable<GenshinItem> { } public boolean equipItem(long avatarGuid, long equipGuid) { - GenshinAvatar avatar = getPlayer().getAvatars().getAvatarByGuid(avatarGuid); - GenshinItem item = this.getItemByGuid(equipGuid); + Avatar avatar = getPlayer().getAvatars().getAvatarByGuid(avatarGuid); + GameItem item = this.getItemByGuid(equipGuid); if (avatar != null && item != null) { return avatar.equipItem(item, true); @@ -315,7 +315,7 @@ public class Inventory implements Iterable<GenshinItem> { } public boolean unequipItem(long avatarGuid, int slot) { - GenshinAvatar avatar = getPlayer().getAvatars().getAvatarByGuid(avatarGuid); + Avatar avatar = getPlayer().getAvatars().getAvatarByGuid(avatarGuid); EquipType equipType = EquipType.getTypeByValue(slot); if (avatar != null && equipType != EquipType.EQUIP_WEAPON) { @@ -330,15 +330,15 @@ public class Inventory implements Iterable<GenshinItem> { } public void loadFromDatabase() { - List<GenshinItem> items = DatabaseHelper.getInventoryItems(getPlayer()); + List<GameItem> items = DatabaseHelper.getInventoryItems(getPlayer()); - for (GenshinItem item : items) { + for (GameItem item : items) { // Should never happen if (item.getObjectId() == null) { continue; } - ItemData itemData = GenshinData.getItemDataMap().get(item.getItemId()); + ItemData itemData = GameData.getItemDataMap().get(item.getItemId()); if (itemData == null) { continue; } @@ -354,7 +354,7 @@ public class Inventory implements Iterable<GenshinItem> { // Equip to a character if possible if (item.isEquipped()) { - GenshinAvatar avatar = getPlayer().getAvatars().getAvatarById(item.getEquipCharacter()); + Avatar avatar = getPlayer().getAvatars().getAvatarById(item.getEquipCharacter()); boolean hasEquipped = false; if (avatar != null) { @@ -370,7 +370,7 @@ public class Inventory implements Iterable<GenshinItem> { } @Override - public Iterator<GenshinItem> iterator() { + public Iterator<GameItem> iterator() { return this.getItems().values().iterator(); } } diff --git a/src/main/java/emu/grasscutter/game/inventory/InventoryTab.java b/src/main/java/emu/grasscutter/game/inventory/InventoryTab.java index 72099642b..465c3cffa 100644 --- a/src/main/java/emu/grasscutter/game/inventory/InventoryTab.java +++ b/src/main/java/emu/grasscutter/game/inventory/InventoryTab.java @@ -1,11 +1,11 @@ package emu.grasscutter.game.inventory; public interface InventoryTab { - public GenshinItem getItemById(int id); + public GameItem getItemById(int id); - public void onAddItem(GenshinItem item); + public void onAddItem(GameItem item); - public void onRemoveItem(GenshinItem item); + public void onRemoveItem(GameItem item); public int getSize(); diff --git a/src/main/java/emu/grasscutter/game/inventory/MaterialInventoryTab.java b/src/main/java/emu/grasscutter/game/inventory/MaterialInventoryTab.java index f5ebfc5d7..7cea186db 100644 --- a/src/main/java/emu/grasscutter/game/inventory/MaterialInventoryTab.java +++ b/src/main/java/emu/grasscutter/game/inventory/MaterialInventoryTab.java @@ -4,7 +4,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; public class MaterialInventoryTab implements InventoryTab { - private final Int2ObjectMap<GenshinItem> items; + private final Int2ObjectMap<GameItem> items; private final int maxCapacity; public MaterialInventoryTab(int maxCapacity) { @@ -13,17 +13,17 @@ public class MaterialInventoryTab implements InventoryTab { } @Override - public GenshinItem getItemById(int id) { + public GameItem getItemById(int id) { return this.items.get(id); } @Override - public void onAddItem(GenshinItem item) { + public void onAddItem(GameItem item) { this.items.put(item.getItemId(), item); } @Override - public void onRemoveItem(GenshinItem item) { + public void onRemoveItem(GameItem item) { this.items.remove(item.getItemId()); } diff --git a/src/main/java/emu/grasscutter/game/managers/ChatManager.java b/src/main/java/emu/grasscutter/game/managers/ChatManager.java index d9867e875..2e2d02184 100644 --- a/src/main/java/emu/grasscutter/game/managers/ChatManager.java +++ b/src/main/java/emu/grasscutter/game/managers/ChatManager.java @@ -1,8 +1,8 @@ package emu.grasscutter.game.managers; import emu.grasscutter.command.CommandMap; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.server.game.GameServer; import emu.grasscutter.server.packet.send.PacketPlayerChatNotify; import emu.grasscutter.server.packet.send.PacketPrivateChatNotify; @@ -23,7 +23,7 @@ public class ChatManager { return server; } - public void sendPrivateMessage(GenshinPlayer player, int targetUid, String message) { + public void sendPrivateMessage(Player player, int targetUid, String message) { // Sanity checks if (message == null || message.length() == 0) { return; @@ -36,35 +36,35 @@ public class ChatManager { } // Get target - GenshinPlayer target = getServer().getPlayerByUid(targetUid); + Player target = getServer().getPlayerByUid(targetUid); if (target == null) { return; } // Create chat packet - GenshinPacket packet = new PacketPrivateChatNotify(player.getUid(), target.getUid(), message); + BasePacket packet = new PacketPrivateChatNotify(player.getUid(), target.getUid(), message); player.sendPacket(packet); target.sendPacket(packet); } - public void sendPrivateMessage(GenshinPlayer player, int targetUid, int emote) { + public void sendPrivateMessage(Player player, int targetUid, int emote) { // Get target - GenshinPlayer target = getServer().getPlayerByUid(targetUid); + Player target = getServer().getPlayerByUid(targetUid); if (target == null) { return; } // Create chat packet - GenshinPacket packet = new PacketPrivateChatNotify(player.getUid(), target.getUid(), emote); + BasePacket packet = new PacketPrivateChatNotify(player.getUid(), target.getUid(), emote); player.sendPacket(packet); target.sendPacket(packet); } - public void sendTeamMessage(GenshinPlayer player, int channel, String message) { + public void sendTeamMessage(Player player, int channel, String message) { // Sanity checks if (message == null || message.length() == 0) { return; @@ -80,7 +80,7 @@ public class ChatManager { player.getWorld().broadcastPacket(new PacketPlayerChatNotify(player, channel, message)); } - public void sendTeamMessage(GenshinPlayer player, int channel, int icon) { + public void sendTeamMessage(Player player, int channel, int icon) { // Create and send chat packet player.getWorld().broadcastPacket(new PacketPlayerChatNotify(player, channel, icon)); } diff --git a/src/main/java/emu/grasscutter/game/managers/InventoryManager.java b/src/main/java/emu/grasscutter/game/managers/InventoryManager.java index 4b71db904..6db9b5fe3 100644 --- a/src/main/java/emu/grasscutter/game/managers/InventoryManager.java +++ b/src/main/java/emu/grasscutter/game/managers/InventoryManager.java @@ -5,7 +5,7 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.common.ItemParamData; import emu.grasscutter.data.custom.OpenConfigEntry; import emu.grasscutter.data.def.AvatarPromoteData; @@ -15,9 +15,9 @@ import emu.grasscutter.data.def.WeaponPromoteData; import emu.grasscutter.data.def.AvatarSkillDepotData.InherentProudSkillOpens; import emu.grasscutter.data.def.AvatarTalentData; import emu.grasscutter.data.def.ProudSkillData; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.inventory.ItemType; import emu.grasscutter.game.inventory.MaterialType; import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam; @@ -72,8 +72,8 @@ public class InventoryManager { return server; } - public void lockEquip(GenshinPlayer player, long targetEquipGuid, boolean isLocked) { - GenshinItem equip = player.getInventory().getItemByGuid(targetEquipGuid); + public void lockEquip(Player player, long targetEquipGuid, boolean isLocked) { + GameItem equip = player.getInventory().getItemByGuid(targetEquipGuid); if (equip == null || !equip.getItemData().isEquip()) { return; @@ -86,8 +86,8 @@ public class InventoryManager { player.sendPacket(new PacketSetEquipLockStateRsp(equip)); } - public void upgradeRelic(GenshinPlayer player, long targetGuid, List<Long> foodRelicList, List<ItemParam> list) { - GenshinItem relic = player.getInventory().getItemByGuid(targetGuid); + public void upgradeRelic(Player player, long targetGuid, List<Long> foodRelicList, List<ItemParam> list) { + GameItem relic = player.getInventory().getItemByGuid(targetGuid); if (relic == null || relic.getItemType() != ItemType.ITEM_RELIQUARY) { return; @@ -98,7 +98,7 @@ public class InventoryManager { for (long guid : foodRelicList) { // Add to delete queue - GenshinItem food = player.getInventory().getItemByGuid(guid); + GameItem food = player.getInventory().getItemByGuid(guid); if (food == null || !food.isDestroyable()) { continue; } @@ -111,7 +111,7 @@ public class InventoryManager { } } for (ItemParam itemParam : list) { - GenshinItem food = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(itemParam.getItemId()); + GameItem food = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(itemParam.getItemId()); if (food == null || food.getItemData().getMaterialType() != MaterialType.MATERIAL_RELIQUARY_MATERIAL) { continue; } @@ -139,14 +139,14 @@ public class InventoryManager { // Consume food items for (long guid : foodRelicList) { - GenshinItem food = player.getInventory().getItemByGuid(guid); + GameItem food = player.getInventory().getItemByGuid(guid); if (food == null || !food.isDestroyable()) { continue; } player.getInventory().removeItem(food); } for (ItemParam itemParam : list) { - GenshinItem food = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(itemParam.getItemId()); + GameItem food = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(itemParam.getItemId()); if (food == null || food.getItemData().getMaterialType() != MaterialType.MATERIAL_RELIQUARY_MATERIAL) { continue; } @@ -169,7 +169,7 @@ public class InventoryManager { int oldLevel = level; int exp = relic.getExp(); int totalExp = relic.getTotalExp(); - int reqExp = GenshinData.getRelicExpRequired(relic.getItemData().getRankLevel(), level); + int reqExp = GameData.getRelicExpRequired(relic.getItemData().getRankLevel(), level); int upgrades = 0; List<Integer> oldAppendPropIdList = relic.getAppendPropIdList(); @@ -189,7 +189,7 @@ public class InventoryManager { upgrades += 1; } // Set req exp - reqExp = GenshinData.getRelicExpRequired(relic.getItemData().getRankLevel(), level); + reqExp = GameData.getRelicExpRequired(relic.getItemData().getRankLevel(), level); } } @@ -209,7 +209,7 @@ public class InventoryManager { // Avatar if (oldLevel != level) { - GenshinAvatar avatar = relic.getEquipCharacter() > 0 ? player.getAvatars().getAvatarById(relic.getEquipCharacter()) : null; + Avatar avatar = relic.getEquipCharacter() > 0 ? player.getAvatars().getAvatarById(relic.getEquipCharacter()) : null; if (avatar != null) { avatar.recalcStats(); } @@ -220,15 +220,15 @@ public class InventoryManager { player.sendPacket(new PacketReliquaryUpgradeRsp(relic, rate, oldLevel, oldAppendPropIdList)); } - public List<ItemParam> calcWeaponUpgradeReturnItems(GenshinPlayer player, long targetGuid, List<Long> foodWeaponGuidList, List<ItemParam> itemParamList) { - GenshinItem weapon = player.getInventory().getItemByGuid(targetGuid); + public List<ItemParam> calcWeaponUpgradeReturnItems(Player player, long targetGuid, List<Long> foodWeaponGuidList, List<ItemParam> itemParamList) { + GameItem weapon = player.getInventory().getItemByGuid(targetGuid); // Sanity checks if (weapon == null || weapon.getItemType() != ItemType.ITEM_WEAPON) { return null; } - WeaponPromoteData promoteData = GenshinData.getWeaponPromoteData(weapon.getItemData().getWeaponPromoteId(), weapon.getPromoteLevel()); + WeaponPromoteData promoteData = GameData.getWeaponPromoteData(weapon.getItemData().getWeaponPromoteId(), weapon.getPromoteLevel()); if (promoteData == null) { return null; } @@ -236,7 +236,7 @@ public class InventoryManager { // Get exp gain int expGain = 0; for (long guid : foodWeaponGuidList) { - GenshinItem food = player.getInventory().getItemByGuid(guid); + GameItem food = player.getInventory().getItemByGuid(guid); if (food == null) { continue; } @@ -246,7 +246,7 @@ public class InventoryManager { } } for (ItemParam param : itemParamList) { - GenshinItem food = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(param.getItemId()); + GameItem food = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(param.getItemId()); if (food == null || food.getItemData().getMaterialType() != MaterialType.MATERIAL_WEAPON_EXP_STONE) { continue; } @@ -264,7 +264,7 @@ public class InventoryManager { int maxLevel = promoteData.getUnlockMaxLevel(); int level = weapon.getLevel(); int exp = weapon.getExp(); - int reqExp = GenshinData.getWeaponExpRequired(weapon.getItemData().getRankLevel(), level); + int reqExp = GameData.getWeaponExpRequired(weapon.getItemData().getRankLevel(), level); while (expGain > 0 && reqExp > 0 && level < maxLevel) { // Do calculations @@ -277,7 +277,7 @@ public class InventoryManager { exp = 0; level += 1; // Set req exp - reqExp = GenshinData.getWeaponExpRequired(weapon.getItemData().getRankLevel(), level); + reqExp = GameData.getWeaponExpRequired(weapon.getItemData().getRankLevel(), level); } } @@ -285,15 +285,15 @@ public class InventoryManager { } - public void upgradeWeapon(GenshinPlayer player, long targetGuid, List<Long> foodWeaponGuidList, List<ItemParam> itemParamList) { - GenshinItem weapon = player.getInventory().getItemByGuid(targetGuid); + public void upgradeWeapon(Player player, long targetGuid, List<Long> foodWeaponGuidList, List<ItemParam> itemParamList) { + GameItem weapon = player.getInventory().getItemByGuid(targetGuid); // Sanity checks if (weapon == null || weapon.getItemType() != ItemType.ITEM_WEAPON) { return; } - WeaponPromoteData promoteData = GenshinData.getWeaponPromoteData(weapon.getItemData().getWeaponPromoteId(), weapon.getPromoteLevel()); + WeaponPromoteData promoteData = GameData.getWeaponPromoteData(weapon.getItemData().getWeaponPromoteId(), weapon.getPromoteLevel()); if (promoteData == null) { return; } @@ -302,7 +302,7 @@ public class InventoryManager { int expGain = 0, moraCost = 0; for (long guid : foodWeaponGuidList) { - GenshinItem food = player.getInventory().getItemByGuid(guid); + GameItem food = player.getInventory().getItemByGuid(guid); if (food == null || !food.isDestroyable()) { continue; } @@ -313,7 +313,7 @@ public class InventoryManager { } } for (ItemParam param : itemParamList) { - GenshinItem food = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(param.getItemId()); + GameItem food = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(param.getItemId()); if (food == null || food.getItemData().getMaterialType() != MaterialType.MATERIAL_WEAPON_EXP_STONE) { continue; } @@ -344,14 +344,14 @@ public class InventoryManager { // Consume weapon/items used to feed for (long guid : foodWeaponGuidList) { - GenshinItem food = player.getInventory().getItemByGuid(guid); + GameItem food = player.getInventory().getItemByGuid(guid); if (food == null || !food.isDestroyable()) { continue; } player.getInventory().removeItem(food); } for (ItemParam param : itemParamList) { - GenshinItem food = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(param.getItemId()); + GameItem food = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(param.getItemId()); if (food == null || food.getItemData().getMaterialType() != MaterialType.MATERIAL_WEAPON_EXP_STONE) { continue; } @@ -365,7 +365,7 @@ public class InventoryManager { int oldLevel = level; int exp = weapon.getExp(); int totalExp = weapon.getTotalExp(); - int reqExp = GenshinData.getWeaponExpRequired(weapon.getItemData().getRankLevel(), level); + int reqExp = GameData.getWeaponExpRequired(weapon.getItemData().getRankLevel(), level); while (expGain > 0 && reqExp > 0 && level < maxLevel) { // Do calculations @@ -379,7 +379,7 @@ public class InventoryManager { exp = 0; level += 1; // Set req exp - reqExp = GenshinData.getWeaponExpRequired(weapon.getItemData().getRankLevel(), level); + reqExp = GameData.getWeaponExpRequired(weapon.getItemData().getRankLevel(), level); } } @@ -393,7 +393,7 @@ public class InventoryManager { // Avatar if (oldLevel != level) { - GenshinAvatar avatar = weapon.getEquipCharacter() > 0 ? player.getAvatars().getAvatarById(weapon.getEquipCharacter()) : null; + Avatar avatar = weapon.getEquipCharacter() > 0 ? player.getAvatars().getAvatarById(weapon.getEquipCharacter()) : null; if (avatar != null) { avatar.recalcStats(); } @@ -429,9 +429,9 @@ public class InventoryManager { return leftoverOreList; } - public void refineWeapon(GenshinPlayer player, long targetGuid, long feedGuid) { - GenshinItem weapon = player.getInventory().getItemByGuid(targetGuid); - GenshinItem feed = player.getInventory().getItemByGuid(feedGuid); + public void refineWeapon(Player player, long targetGuid, long feedGuid) { + GameItem weapon = player.getInventory().getItemByGuid(targetGuid); + GameItem feed = player.getInventory().getItemByGuid(feedGuid); // Sanity checks if (weapon == null || feed == null || !feed.isDestroyable()) { @@ -478,7 +478,7 @@ public class InventoryManager { weapon.save(); // Avatar - GenshinAvatar avatar = weapon.getEquipCharacter() > 0 ? player.getAvatars().getAvatarById(weapon.getEquipCharacter()) : null; + Avatar avatar = weapon.getEquipCharacter() > 0 ? player.getAvatars().getAvatarById(weapon.getEquipCharacter()) : null; if (avatar != null) { avatar.recalcStats(); } @@ -488,16 +488,16 @@ public class InventoryManager { player.sendPacket(new PacketWeaponAwakenRsp(avatar, weapon, feed, oldRefineLevel)); } - public void promoteWeapon(GenshinPlayer player, long targetGuid) { - GenshinItem weapon = player.getInventory().getItemByGuid(targetGuid); + public void promoteWeapon(Player player, long targetGuid) { + GameItem weapon = player.getInventory().getItemByGuid(targetGuid); if (weapon == null || weapon.getItemType() != ItemType.ITEM_WEAPON) { return; } int nextPromoteLevel = weapon.getPromoteLevel() + 1; - WeaponPromoteData currentPromoteData = GenshinData.getWeaponPromoteData(weapon.getItemData().getWeaponPromoteId(), weapon.getPromoteLevel()); - WeaponPromoteData nextPromoteData = GenshinData.getWeaponPromoteData(weapon.getItemData().getWeaponPromoteId(), nextPromoteLevel); + WeaponPromoteData currentPromoteData = GameData.getWeaponPromoteData(weapon.getItemData().getWeaponPromoteId(), weapon.getPromoteLevel()); + WeaponPromoteData nextPromoteData = GameData.getWeaponPromoteData(weapon.getItemData().getWeaponPromoteId(), nextPromoteLevel); if (currentPromoteData == null || nextPromoteData == null) { return; } @@ -509,7 +509,7 @@ public class InventoryManager { // Make sure player has promote items for (ItemParamData cost : nextPromoteData.getCostItems()) { - GenshinItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); + GameItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); if (feedItem == null || feedItem.getCount() < cost.getCount()) { return; } @@ -524,7 +524,7 @@ public class InventoryManager { // Consume promote filler items for (ItemParamData cost : nextPromoteData.getCostItems()) { - GenshinItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); + GameItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); player.getInventory().removeItem(feedItem, cost.getCount()); } @@ -533,7 +533,7 @@ public class InventoryManager { weapon.save(); // Avatar - GenshinAvatar avatar = weapon.getEquipCharacter() > 0 ? player.getAvatars().getAvatarById(weapon.getEquipCharacter()) : null; + Avatar avatar = weapon.getEquipCharacter() > 0 ? player.getAvatars().getAvatarById(weapon.getEquipCharacter()) : null; if (avatar != null) { avatar.recalcStats(); } @@ -543,8 +543,8 @@ public class InventoryManager { player.sendPacket(new PacketWeaponPromoteRsp(weapon, oldPromoteLevel)); } - public void promoteAvatar(GenshinPlayer player, long guid) { - GenshinAvatar avatar = player.getAvatars().getAvatarByGuid(guid); + public void promoteAvatar(Player player, long guid) { + Avatar avatar = player.getAvatars().getAvatarByGuid(guid); // Sanity checks if (avatar == null) { @@ -552,8 +552,8 @@ public class InventoryManager { } int nextPromoteLevel = avatar.getPromoteLevel() + 1; - AvatarPromoteData currentPromoteData = GenshinData.getAvatarPromoteData(avatar.getAvatarData().getAvatarPromoteId(), avatar.getPromoteLevel()); - AvatarPromoteData nextPromoteData = GenshinData.getAvatarPromoteData(avatar.getAvatarData().getAvatarPromoteId(), nextPromoteLevel); + AvatarPromoteData currentPromoteData = GameData.getAvatarPromoteData(avatar.getAvatarData().getAvatarPromoteId(), avatar.getPromoteLevel()); + AvatarPromoteData nextPromoteData = GameData.getAvatarPromoteData(avatar.getAvatarData().getAvatarPromoteId(), nextPromoteLevel); if (currentPromoteData == null || nextPromoteData == null) { return; } @@ -565,7 +565,7 @@ public class InventoryManager { // Make sure player has cost items for (ItemParamData cost : nextPromoteData.getCostItems()) { - GenshinItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); + GameItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); if (feedItem == null || feedItem.getCount() < cost.getCount()) { return; } @@ -580,7 +580,7 @@ public class InventoryManager { // Consume promote filler items for (ItemParamData cost : nextPromoteData.getCostItems()) { - GenshinItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); + GameItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); player.getInventory().removeItem(feedItem, cost.getCount()); } @@ -588,7 +588,7 @@ public class InventoryManager { avatar.setPromoteLevel(nextPromoteLevel); // Update proud skills - AvatarSkillDepotData skillDepot = GenshinData.getAvatarSkillDepotDataMap().get(avatar.getSkillDepotId()); + AvatarSkillDepotData skillDepot = GameData.getAvatarSkillDepotDataMap().get(avatar.getSkillDepotId()); if (skillDepot != null && skillDepot.getInherentProudSkillOpens() != null) { for (InherentProudSkillOpens openData : skillDepot.getInherentProudSkillOpens()) { @@ -597,7 +597,7 @@ public class InventoryManager { } if (openData.getNeedAvatarPromoteLevel() == avatar.getPromoteLevel()) { int proudSkillId = (openData.getProudSkillGroupId() * 100) + 1; - if (GenshinData.getProudSkillDataMap().containsKey(proudSkillId)) { + if (GameData.getProudSkillDataMap().containsKey(proudSkillId)) { avatar.getProudSkillList().add(proudSkillId); player.sendPacket(new PacketProudSkillChangeNotify(avatar)); } @@ -614,20 +614,20 @@ public class InventoryManager { avatar.save(); } - public void upgradeAvatar(GenshinPlayer player, long guid, int itemId, int count) { - GenshinAvatar avatar = player.getAvatars().getAvatarByGuid(guid); + public void upgradeAvatar(Player player, long guid, int itemId, int count) { + Avatar avatar = player.getAvatars().getAvatarByGuid(guid); // Sanity checks if (avatar == null) { return; } - AvatarPromoteData promoteData = GenshinData.getAvatarPromoteData(avatar.getAvatarData().getAvatarPromoteId(), avatar.getPromoteLevel()); + AvatarPromoteData promoteData = GameData.getAvatarPromoteData(avatar.getAvatarData().getAvatarPromoteId(), avatar.getPromoteLevel()); if (promoteData == null) { return; } - GenshinItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(itemId); + GameItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(itemId); if (feedItem == null || feedItem.getItemData().getMaterialType() != MaterialType.MATERIAL_EXP_FRUIT || feedItem.getCount() < count) { return; @@ -660,8 +660,8 @@ public class InventoryManager { upgradeAvatar(player, avatar, promoteData, expGain); } - public void upgradeAvatar(GenshinPlayer player, GenshinAvatar avatar, int expGain) { - AvatarPromoteData promoteData = GenshinData.getAvatarPromoteData(avatar.getAvatarData().getAvatarPromoteId(), avatar.getPromoteLevel()); + public void upgradeAvatar(Player player, Avatar avatar, int expGain) { + AvatarPromoteData promoteData = GameData.getAvatarPromoteData(avatar.getAvatarData().getAvatarPromoteId(), avatar.getPromoteLevel()); if (promoteData == null) { return; } @@ -669,12 +669,12 @@ public class InventoryManager { upgradeAvatar(player, avatar, promoteData, expGain); } - public void upgradeAvatar(GenshinPlayer player, GenshinAvatar avatar, AvatarPromoteData promoteData, int expGain) { + public void upgradeAvatar(Player player, Avatar avatar, AvatarPromoteData promoteData, int expGain) { int maxLevel = promoteData.getUnlockMaxLevel(); int level = avatar.getLevel(); int oldLevel = level; int exp = avatar.getExp(); - int reqExp = GenshinData.getAvatarLevelExpRequired(level); + int reqExp = GameData.getAvatarLevelExpRequired(level); while (expGain > 0 && reqExp > 0 && level < maxLevel) { // Do calculations @@ -687,7 +687,7 @@ public class InventoryManager { exp = 0; level += 1; // Set req exp - reqExp = GenshinData.getAvatarLevelExpRequired(level); + reqExp = GameData.getAvatarLevelExpRequired(level); } } @@ -711,12 +711,12 @@ public class InventoryManager { player.sendPacket(new PacketAvatarUpgradeRsp(avatar, oldLevel, oldPropMap)); } - public void upgradeAvatarFetterLevel(GenshinPlayer player, GenshinAvatar avatar, int expGain) { + public void upgradeAvatarFetterLevel(Player player, Avatar avatar, int expGain) { // May work. Not test. int maxLevel = 10; // Keep it until I think of a more "elegant" way int level = avatar.getFetterLevel(); int exp = avatar.getFetterExp(); - int reqExp = GenshinData.getAvatarFetterLevelExpRequired(level); + int reqExp = GameData.getAvatarFetterLevelExpRequired(level); while (expGain > 0 && reqExp > 0 && level < maxLevel) { int toGain = Math.min(expGain, reqExp - exp); @@ -725,7 +725,7 @@ public class InventoryManager { if (exp >= reqExp) { exp = 0; level += 1; - reqExp = GenshinData.getAvatarFetterLevelExpRequired(level); + reqExp = GameData.getAvatarFetterLevelExpRequired(level); } } @@ -736,9 +736,9 @@ public class InventoryManager { player.sendPacket(new PacketAvatarPropNotify(avatar)); } - public void upgradeAvatarSkill(GenshinPlayer player, long guid, int skillId) { + public void upgradeAvatarSkill(Player player, long guid, int skillId) { // Sanity checks - GenshinAvatar avatar = player.getAvatars().getAvatarByGuid(guid); + Avatar avatar = player.getAvatars().getAvatarByGuid(guid); if (avatar == null) { return; } @@ -748,7 +748,7 @@ public class InventoryManager { return; } - AvatarSkillData skillData = GenshinData.getAvatarSkillDataMap().get(skillId); + AvatarSkillData skillData = GameData.getAvatarSkillDataMap().get(skillId); if (skillData == null) { return; } @@ -764,7 +764,7 @@ public class InventoryManager { } // Proud skill data - ProudSkillData proudSkill = GenshinData.getProudSkillDataMap().get(proudSkillId); + ProudSkillData proudSkill = GameData.getProudSkillDataMap().get(proudSkillId); if (proudSkill == null) { return; } @@ -779,7 +779,7 @@ public class InventoryManager { if (cost.getId() == 0) { continue; } - GenshinItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); + GameItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); if (feedItem == null || feedItem.getCount() < cost.getCount()) { return; } @@ -797,7 +797,7 @@ public class InventoryManager { if (cost.getId() == 0) { continue; } - GenshinItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); + GameItem feedItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(cost.getId()); player.getInventory().removeItem(feedItem, cost.getCount()); } @@ -810,9 +810,9 @@ public class InventoryManager { player.sendPacket(new PacketAvatarSkillUpgradeRsp(avatar, skillId, currentLevel, nextLevel)); } - public void unlockAvatarConstellation(GenshinPlayer player, long guid) { + public void unlockAvatarConstellation(Player player, long guid) { // Sanity checks - GenshinAvatar avatar = player.getAvatars().getAvatarByGuid(guid); + Avatar avatar = player.getAvatars().getAvatarByGuid(guid); if (avatar == null) { return; } @@ -826,13 +826,13 @@ public class InventoryManager { nextTalentId = 40 + currentTalentLevel + 1; } - AvatarTalentData talentData = GenshinData.getAvatarTalentDataMap().get(nextTalentId); + AvatarTalentData talentData = GameData.getAvatarTalentDataMap().get(nextTalentId); if (talentData == null) { return; } - GenshinItem costItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(talentData.getMainCostItemId()); + GameItem costItem = player.getInventory().getInventoryTab(ItemType.ITEM_MATERIAL).getItemById(talentData.getMainCostItemId()); if (costItem == null || costItem.getCount() < talentData.getMainCostItemCount()) { return; } @@ -849,7 +849,7 @@ public class InventoryManager { player.sendPacket(new PacketUnlockAvatarTalentRsp(avatar, nextTalentId)); // Proud skill bonus map (Extra skills) - OpenConfigEntry entry = GenshinData.getOpenConfigEntries().get(talentData.getOpenConfig()); + OpenConfigEntry entry = GameData.getOpenConfigEntries().get(talentData.getOpenConfig()); if (entry != null && entry.getExtraTalentIndex() > 0) { avatar.recalcProudSkillBonusMap(); player.sendPacket(new PacketProudSkillExtraLevelNotify(avatar, entry.getExtraTalentIndex())); @@ -860,7 +860,7 @@ public class InventoryManager { avatar.save(); } - public void destroyMaterial(GenshinPlayer player, List<MaterialInfo> list) { + public void destroyMaterial(Player player, List<MaterialInfo> list) { // Return materials Int2IntOpenHashMap returnMaterialMap = new Int2IntOpenHashMap(); @@ -870,7 +870,7 @@ public class InventoryManager { continue; } - GenshinItem item = player.getInventory().getItemByGuid(info.getGuid()); + GameItem item = player.getInventory().getItemByGuid(info.getGuid()); if (item == null || !item.isDestroyable()) { continue; } @@ -890,7 +890,7 @@ public class InventoryManager { // Give back items if (returnMaterialMap.size() > 0) { for (Int2IntMap.Entry e : returnMaterialMap.int2IntEntrySet()) { - player.getInventory().addItem(new GenshinItem(e.getIntKey(), e.getIntValue())); + player.getInventory().addItem(new GameItem(e.getIntKey(), e.getIntValue())); } } @@ -898,9 +898,9 @@ public class InventoryManager { player.sendPacket(new PacketDestroyMaterialRsp(returnMaterialMap)); } - public GenshinItem useItem(GenshinPlayer player, long targetGuid, long itemGuid, int count) { - GenshinAvatar target = player.getAvatars().getAvatarByGuid(targetGuid); - GenshinItem useItem = player.getInventory().getItemByGuid(itemGuid); + public GameItem useItem(Player player, long targetGuid, long itemGuid, int count) { + Avatar target = player.getAvatars().getAvatarByGuid(targetGuid); + GameItem useItem = player.getInventory().getItemByGuid(itemGuid); if (useItem == null) { return null; diff --git a/src/main/java/emu/grasscutter/game/managers/MultiplayerManager.java b/src/main/java/emu/grasscutter/game/managers/MultiplayerManager.java index e42f7a789..4d048148f 100644 --- a/src/main/java/emu/grasscutter/game/managers/MultiplayerManager.java +++ b/src/main/java/emu/grasscutter/game/managers/MultiplayerManager.java @@ -1,8 +1,8 @@ package emu.grasscutter.game.managers; import emu.grasscutter.game.CoopRequest; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.GenshinPlayer.SceneLoadState; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.Player.SceneLoadState; import emu.grasscutter.game.props.EnterReason; import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; import emu.grasscutter.net.proto.PlayerApplyEnterMpReasonOuterClass.PlayerApplyEnterMpReason; @@ -24,8 +24,8 @@ public class MultiplayerManager { return server; } - public void applyEnterMp(GenshinPlayer player, int targetUid) { - GenshinPlayer target = getServer().getPlayerByUid(targetUid); + public void applyEnterMp(Player player, int targetUid) { + Player target = getServer().getPlayerByUid(targetUid); if (target == null) { player.sendPacket(new PacketPlayerApplyEnterMpResultNotify(targetUid, "", false, PlayerApplyEnterMpResultNotifyOuterClass.PlayerApplyEnterMpResultNotify.Reason.PLAYER_CANNOT_ENTER_MP)); return; @@ -59,7 +59,7 @@ public class MultiplayerManager { target.sendPacket(new PacketPlayerApplyEnterMpNotify(player)); } - public void applyEnterMpReply(GenshinPlayer hostPlayer, int applyUid, boolean isAgreed) { + public void applyEnterMpReply(Player hostPlayer, int applyUid, boolean isAgreed) { // Checks CoopRequest request = hostPlayer.getCoopRequests().get(applyUid); if (request == null || request.isExpired()) { @@ -67,7 +67,7 @@ public class MultiplayerManager { } // Remove now that we are handling it - GenshinPlayer requester = request.getRequester(); + Player requester = request.getRequester(); hostPlayer.getCoopRequests().remove(applyUid); // Sanity checks - Dont let the requesting player join if they are already in multiplayer @@ -108,14 +108,14 @@ public class MultiplayerManager { requester.sendPacket(new PacketPlayerEnterSceneNotify(requester, hostPlayer, EnterType.ENTER_OTHER, EnterReason.TeamJoin, hostPlayer.getScene().getId(), hostPlayer.getPos())); } - public boolean leaveCoop(GenshinPlayer player) { + public boolean leaveCoop(Player player) { // Make sure player's world is multiplayer if (!player.getWorld().isMultiplayer()) { return false; } // Make sure everyone's scene is loaded - for (GenshinPlayer p : player.getWorld().getPlayers()) { + for (Player p : player.getWorld().getPlayers()) { if (p.getSceneLoadState() != SceneLoadState.LOADED) { return false; } @@ -131,14 +131,14 @@ public class MultiplayerManager { return true; } - public boolean kickPlayer(GenshinPlayer player, int targetUid) { + public boolean kickPlayer(Player player, int targetUid) { // Make sure player's world is multiplayer and that player is owner if (!player.getWorld().isMultiplayer() || player.getWorld().getHost() != player) { return false; } // Get victim and sanity checks - GenshinPlayer victim = player.getServer().getPlayerByUid(targetUid); + Player victim = player.getServer().getPlayerByUid(targetUid); if (victim == null || victim == player) { return false; diff --git a/src/main/java/emu/grasscutter/net/packet/GenshinPacket.java b/src/main/java/emu/grasscutter/net/packet/BasePacket.java similarity index 93% rename from src/main/java/emu/grasscutter/net/packet/GenshinPacket.java rename to src/main/java/emu/grasscutter/net/packet/BasePacket.java index 158c0d3c0..7fae74c8a 100644 --- a/src/main/java/emu/grasscutter/net/packet/GenshinPacket.java +++ b/src/main/java/emu/grasscutter/net/packet/BasePacket.java @@ -7,7 +7,7 @@ import com.google.protobuf.GeneratedMessageV3; import emu.grasscutter.net.proto.PacketHeadOuterClass.PacketHead; import emu.grasscutter.utils.Crypto; -public class GenshinPacket { +public class BasePacket { private static final int const1 = 17767; // 0x4567 private static final int const2 = -30293; // 0x89ab @@ -21,16 +21,16 @@ public class GenshinPacket { private boolean useDispatchKey; public boolean shouldEncrypt = true; - public GenshinPacket(int opcode) { + public BasePacket(int opcode) { this.opcode = opcode; } - public GenshinPacket(int opcode, int clientSequence) { + public BasePacket(int opcode, int clientSequence) { this.opcode = opcode; this.buildHeader(clientSequence); } - public GenshinPacket(int opcode, boolean buildHeader) { + public BasePacket(int opcode, boolean buildHeader) { this.opcode = opcode; this.shouldBuildHeader = buildHeader; } @@ -80,7 +80,7 @@ public class GenshinPacket { this.data = proto.build().toByteArray(); } - public GenshinPacket buildHeader(int clientSequence) { + public BasePacket buildHeader(int clientSequence) { if (this.getHeader() != null && clientSequence == 0) { return this; } diff --git a/src/main/java/emu/grasscutter/netty/MihoyoKcpChannel.java b/src/main/java/emu/grasscutter/netty/KcpChannel.java similarity index 96% rename from src/main/java/emu/grasscutter/netty/MihoyoKcpChannel.java rename to src/main/java/emu/grasscutter/netty/KcpChannel.java index 233579199..2c234ae7c 100644 --- a/src/main/java/emu/grasscutter/netty/MihoyoKcpChannel.java +++ b/src/main/java/emu/grasscutter/netty/KcpChannel.java @@ -8,7 +8,7 @@ import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; -public abstract class MihoyoKcpChannel extends ChannelInboundHandlerAdapter { +public abstract class KcpChannel extends ChannelInboundHandlerAdapter { private UkcpChannel kcpChannel; private ChannelHandlerContext ctx; private boolean isActive; diff --git a/src/main/java/emu/grasscutter/netty/MihoyoKcpHandshaker.java b/src/main/java/emu/grasscutter/netty/KcpHandshaker.java similarity index 91% rename from src/main/java/emu/grasscutter/netty/MihoyoKcpHandshaker.java rename to src/main/java/emu/grasscutter/netty/KcpHandshaker.java index cf94c7c75..9940402f1 100644 --- a/src/main/java/emu/grasscutter/netty/MihoyoKcpHandshaker.java +++ b/src/main/java/emu/grasscutter/netty/KcpHandshaker.java @@ -10,9 +10,9 @@ import io.netty.channel.ChannelMetadata; import io.netty.channel.ChannelOutboundBuffer; import io.netty.channel.nio.AbstractNioMessageChannel; -public class MihoyoKcpHandshaker extends AbstractNioMessageChannel { +public class KcpHandshaker extends AbstractNioMessageChannel { - protected MihoyoKcpHandshaker(Channel parent, SelectableChannel ch, int readInterestOp) { + protected KcpHandshaker(Channel parent, SelectableChannel ch, int readInterestOp) { super(parent, ch, readInterestOp); } diff --git a/src/main/java/emu/grasscutter/netty/MihoyoKcpServer.java b/src/main/java/emu/grasscutter/netty/KcpServer.java similarity index 93% rename from src/main/java/emu/grasscutter/netty/MihoyoKcpServer.java rename to src/main/java/emu/grasscutter/netty/KcpServer.java index 41e8ad412..4825a1b85 100644 --- a/src/main/java/emu/grasscutter/netty/MihoyoKcpServer.java +++ b/src/main/java/emu/grasscutter/netty/KcpServer.java @@ -13,14 +13,14 @@ import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; @SuppressWarnings("rawtypes") -public class MihoyoKcpServer extends Thread { +public class KcpServer extends Thread { private EventLoopGroup group; private UkcpServerBootstrap bootstrap; private ChannelInitializer serverInitializer; private InetSocketAddress address; - public MihoyoKcpServer(InetSocketAddress address) { + public KcpServer(InetSocketAddress address) { this.address = address; this.setName("Netty Server Thread"); } @@ -40,7 +40,7 @@ public class MihoyoKcpServer extends Thread { @Override public void run() { if (getServerInitializer() == null) { - this.setServerInitializer(new MihoyoKcpServerInitializer()); + this.setServerInitializer(new KcpServerInitializer()); } try { diff --git a/src/main/java/emu/grasscutter/netty/MihoyoKcpServerInitializer.java b/src/main/java/emu/grasscutter/netty/KcpServerInitializer.java similarity index 79% rename from src/main/java/emu/grasscutter/netty/MihoyoKcpServerInitializer.java rename to src/main/java/emu/grasscutter/netty/KcpServerInitializer.java index 7d4e58926..86d871c5f 100644 --- a/src/main/java/emu/grasscutter/netty/MihoyoKcpServerInitializer.java +++ b/src/main/java/emu/grasscutter/netty/KcpServerInitializer.java @@ -5,7 +5,7 @@ import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; @SuppressWarnings("unused") -public class MihoyoKcpServerInitializer extends ChannelInitializer<UkcpChannel> { +public class KcpServerInitializer extends ChannelInitializer<UkcpChannel> { @Override protected void initChannel(UkcpChannel ch) throws Exception { diff --git a/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java b/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java index 3f2961e19..ff124d788 100644 --- a/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java +++ b/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java @@ -1,11 +1,11 @@ package emu.grasscutter.plugin.api; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.props.EnterReason; import emu.grasscutter.game.props.FightProperty; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; import emu.grasscutter.server.packet.send.PacketAvatarFightPropUpdateNotify; import emu.grasscutter.server.packet.send.PacketAvatarLifeStateChangeNotify; @@ -13,16 +13,16 @@ import emu.grasscutter.server.packet.send.PacketPlayerEnterSceneNotify; import emu.grasscutter.utils.Position; /** - * Hooks into the {@link GenshinPlayer} class, adding convenient ways to do certain things. + * Hooks into the {@link Player} class, adding convenient ways to do certain things. */ public final class PlayerHook { - private final GenshinPlayer player; + private final Player player; /** * Hooks into the player. * @param player The player to hook into. */ - public PlayerHook(GenshinPlayer player) { + public PlayerHook(Player player) { this.player = player; } @@ -53,7 +53,7 @@ public final class PlayerHook { * Broadcasts the packet sent to all world players. * @param packet The packet to send. */ - public void broadcastPacketToWorld(GenshinPacket packet) { + public void broadcastPacketToWorld(BasePacket packet) { this.player.getWorld().broadcastPacket(packet); } @@ -70,7 +70,7 @@ public final class PlayerHook { * Revives the specified avatar. * @param avatar The avatar to revive. */ - public void reviveAvatar(GenshinAvatar avatar) { + public void reviveAvatar(Avatar avatar) { this.broadcastPacketToWorld(new PacketAvatarLifeStateChangeNotify(avatar)); } @@ -105,9 +105,9 @@ public final class PlayerHook { /** * Gets the currently selected avatar. - * @return The avatar as an {@link GenshinAvatar}. + * @return The avatar as an {@link Avatar}. */ - public GenshinAvatar getCurrentAvatar() { + public Avatar getCurrentAvatar() { return this.getCurrentAvatarEntity().getAvatar(); } } \ No newline at end of file diff --git a/src/main/java/emu/grasscutter/plugin/api/ServerHook.java b/src/main/java/emu/grasscutter/plugin/api/ServerHook.java index 34ceb25f4..022e0699f 100644 --- a/src/main/java/emu/grasscutter/plugin/api/ServerHook.java +++ b/src/main/java/emu/grasscutter/plugin/api/ServerHook.java @@ -1,6 +1,6 @@ package emu.grasscutter.plugin.api; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.server.game.GameServer; import java.util.LinkedList; @@ -35,7 +35,7 @@ public final class ServerHook { * Gets all online players. * @return Players connected to the server. */ - public List<GenshinPlayer> getOnlinePlayers() { + public List<Player> getOnlinePlayers() { return new LinkedList<>(this.server.getPlayers().values()); } } \ No newline at end of file diff --git a/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java b/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java index 6ba087ab1..1ac721ce2 100644 --- a/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java +++ b/src/main/java/emu/grasscutter/server/dispatch/DispatchServer.java @@ -55,6 +55,7 @@ public final class DispatchServer { this.initRegion(); } + @Deprecated public HttpServer getServer() { return server; } diff --git a/src/main/java/emu/grasscutter/server/event/game/SendPacketEvent.java b/src/main/java/emu/grasscutter/server/event/game/SendPacketEvent.java index 7a25b4e10..b78e0d0c8 100644 --- a/src/main/java/emu/grasscutter/server/event/game/SendPacketEvent.java +++ b/src/main/java/emu/grasscutter/server/event/game/SendPacketEvent.java @@ -1,15 +1,15 @@ package emu.grasscutter.server.event.game; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.server.event.Cancellable; import emu.grasscutter.server.event.ServerEvent; import emu.grasscutter.server.game.GameSession; public final class SendPacketEvent extends ServerEvent implements Cancellable { private final GameSession gameSession; - private GenshinPacket packet; + private BasePacket packet; - public SendPacketEvent(GameSession gameSession, GenshinPacket packet) { + public SendPacketEvent(GameSession gameSession, BasePacket packet) { super(Type.GAME); this.gameSession = gameSession; @@ -20,11 +20,11 @@ public final class SendPacketEvent extends ServerEvent implements Cancellable { return this.gameSession; } - public void setPacket(GenshinPacket packet) { + public void setPacket(BasePacket packet) { this.packet = packet; } - public GenshinPacket getPacket() { + public BasePacket getPacket() { return this.packet; } } diff --git a/src/main/java/emu/grasscutter/server/game/GameServer.java b/src/main/java/emu/grasscutter/server/game/GameServer.java index 77f64fb88..8700712f0 100644 --- a/src/main/java/emu/grasscutter/server/game/GameServer.java +++ b/src/main/java/emu/grasscutter/server/game/GameServer.java @@ -5,12 +5,12 @@ import java.time.OffsetDateTime; import java.util.*; import java.util.concurrent.ConcurrentHashMap; -import emu.grasscutter.GenshinConstants; +import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.CommandMap; import emu.grasscutter.database.DatabaseHelper; import emu.grasscutter.game.Account; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.World; import emu.grasscutter.game.dungeons.DungeonManager; import emu.grasscutter.game.gacha.GachaManager; @@ -20,18 +20,18 @@ import emu.grasscutter.game.managers.MultiplayerManager; import emu.grasscutter.game.shop.ShopManager; import emu.grasscutter.net.packet.PacketHandler; import emu.grasscutter.net.proto.SocialDetailOuterClass.SocialDetail; -import emu.grasscutter.netty.MihoyoKcpServer; +import emu.grasscutter.netty.KcpServer; import emu.grasscutter.server.event.ServerEvent; import emu.grasscutter.server.event.game.ServerTickEvent; import emu.grasscutter.server.event.internal.ServerStartEvent; import emu.grasscutter.server.event.internal.ServerStopEvent; import emu.grasscutter.task.TaskMap; -public final class GameServer extends MihoyoKcpServer { +public final class GameServer extends KcpServer { private final InetSocketAddress address; private final GameServerPacketHandler packetHandler; - private final Map<Integer, GenshinPlayer> players; + private final Map<Integer, Player> players; private final Set<World> worlds; private final ChatManager chatManager; @@ -82,7 +82,7 @@ public final class GameServer extends MihoyoKcpServer { return packetHandler; } - public Map<Integer, GenshinPlayer> getPlayers() { + public Map<Integer, Player> getPlayers() { return players; } @@ -122,22 +122,22 @@ public final class GameServer extends MihoyoKcpServer { return this.taskMap; } - public void registerPlayer(GenshinPlayer player) { + public void registerPlayer(Player player) { getPlayers().put(player.getUid(), player); } - public GenshinPlayer getPlayerByUid(int id) { + public Player getPlayerByUid(int id) { return this.getPlayerByUid(id, false); } - public GenshinPlayer getPlayerByUid(int id, boolean allowOfflinePlayers) { + public Player getPlayerByUid(int id, boolean allowOfflinePlayers) { // Console check - if (id == GenshinConstants.SERVER_CONSOLE_UID) { + if (id == GameConstants.SERVER_CONSOLE_UID) { return null; } // Get from online players - GenshinPlayer player = this.getPlayers().get(id); + Player player = this.getPlayers().get(id); if (!allowOfflinePlayers) { return player; @@ -153,7 +153,7 @@ public final class GameServer extends MihoyoKcpServer { public SocialDetail.Builder getSocialDetailByUid(int id) { // Get from online players - GenshinPlayer player = this.getPlayerByUid(id, true); + Player player = this.getPlayerByUid(id, true); if (player == null) { return null; @@ -163,7 +163,7 @@ public final class GameServer extends MihoyoKcpServer { } public Account getAccountByName(String username) { - Optional<GenshinPlayer> playerOpt = getPlayers().values().stream().filter(player -> player.getAccount().getUsername().equals(username)).findFirst(); + Optional<Player> playerOpt = getPlayers().values().stream().filter(player -> player.getAccount().getUsername().equals(username)).findFirst(); if (playerOpt.isPresent()) { return playerOpt.get().getAccount(); } @@ -204,10 +204,10 @@ public final class GameServer extends MihoyoKcpServer { ServerStopEvent event = new ServerStopEvent(ServerEvent.Type.GAME, OffsetDateTime.now()); event.call(); // Kick and save all players - List<GenshinPlayer> list = new ArrayList<>(this.getPlayers().size()); + List<Player> list = new ArrayList<>(this.getPlayers().size()); list.addAll(this.getPlayers().values()); - for (GenshinPlayer player : list) { + for (Player player : list) { player.getSession().close(); } } diff --git a/src/main/java/emu/grasscutter/server/game/GameServerInitializer.java b/src/main/java/emu/grasscutter/server/game/GameServerInitializer.java index 5472c1db5..1c5f51388 100644 --- a/src/main/java/emu/grasscutter/server/game/GameServerInitializer.java +++ b/src/main/java/emu/grasscutter/server/game/GameServerInitializer.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.game; -import emu.grasscutter.netty.MihoyoKcpServerInitializer; +import emu.grasscutter.netty.KcpServerInitializer; import io.jpower.kcp.netty.UkcpChannel; import io.netty.channel.ChannelPipeline; -public class GameServerInitializer extends MihoyoKcpServerInitializer { +public class GameServerInitializer extends KcpServerInitializer { private GameServer server; public GameServerInitializer(GameServer server) { diff --git a/src/main/java/emu/grasscutter/server/game/GameSession.java b/src/main/java/emu/grasscutter/server/game/GameSession.java index 1beea2f3a..7e9753ca7 100644 --- a/src/main/java/emu/grasscutter/server/game/GameSession.java +++ b/src/main/java/emu/grasscutter/server/game/GameSession.java @@ -8,11 +8,11 @@ import java.util.Set; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.Account; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.packet.PacketOpcodesUtil; -import emu.grasscutter.netty.MihoyoKcpChannel; +import emu.grasscutter.netty.KcpChannel; import emu.grasscutter.server.event.game.SendPacketEvent; import emu.grasscutter.utils.Crypto; import emu.grasscutter.utils.FileUtils; @@ -21,11 +21,11 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; -public class GameSession extends MihoyoKcpChannel { +public class GameSession extends KcpChannel { private GameServer server; private Account account; - private GenshinPlayer player; + private Player player; private boolean useSecretKey; private SessionState state; @@ -67,11 +67,11 @@ public class GameSession extends MihoyoKcpChannel { return this.getAccount().getId(); } - public GenshinPlayer getPlayer() { + public Player getPlayer() { return player; } - public synchronized void setPlayer(GenshinPlayer player) { + public synchronized void setPlayer(Player player) { this.player = player; this.player.setSession(this); this.player.setAccount(this.getAccount()); @@ -144,43 +144,35 @@ public class GameSession extends MihoyoKcpChannel { byte[] packet = FileUtils.read(p); - GenshinPacket genshinPacket = new GenshinPacket(opcode); - genshinPacket.setData(packet); + BasePacket basePacket = new BasePacket(opcode); + basePacket.setData(packet); - // Log - logPacket(genshinPacket.getOpcode()); - - send(genshinPacket); + send(basePacket); } - public void send(GenshinPacket genshinPacket) { + public void send(BasePacket packet) { // Test - if (genshinPacket.getOpcode() <= 0) { + if (packet.getOpcode() <= 0) { Grasscutter.getLogger().warn("Tried to send packet with missing cmd id!"); return; } // Header - if (genshinPacket.shouldBuildHeader()) { - genshinPacket.buildHeader(this.getNextClientSequence()); + if (packet.shouldBuildHeader()) { + packet.buildHeader(this.getNextClientSequence()); } // Log if (Grasscutter.getConfig().getGameServerOptions().LOG_PACKETS) { - logPacket(genshinPacket); + logPacket(packet); } // Invoke event. - SendPacketEvent event = new SendPacketEvent(this, genshinPacket); event.call(); + SendPacketEvent event = new SendPacketEvent(this, packet); event.call(); if(!event.isCanceled()) // If event is not cancelled, continue. this.send(event.getPacket().build()); } - private void logPacket(int opcode) { - //Grasscutter.getLogger().info("SEND: " + PacketOpcodesUtil.getOpcodeName(opcode)); - //System.out.println(Utils.bytesToHex(genshinPacket.getData())); - } - private static final Set<Integer> loopPacket = Set.of( PacketOpcodes.PingReq, PacketOpcodes.PingRsp, @@ -189,10 +181,10 @@ public class GameSession extends MihoyoKcpChannel { PacketOpcodes.QueryPathReq ); - private void logPacket(GenshinPacket genshinPacket) { - if (!loopPacket.contains(genshinPacket.getOpcode())) { - Grasscutter.getLogger().info("SEND: " + PacketOpcodesUtil.getOpcodeName(genshinPacket.getOpcode()) + " (" + genshinPacket.getOpcode() + ")"); - System.out.println(Utils.bytesToHex(genshinPacket.getData())); + private void logPacket(BasePacket packet) { + if (!loopPacket.contains(packet.getOpcode())) { + Grasscutter.getLogger().info("SEND: " + PacketOpcodesUtil.getOpcodeName(packet.getOpcode()) + " (" + packet.getOpcode() + ")"); + System.out.println(Utils.bytesToHex(packet.getData())); } } diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerAvatarFetterLevelRewardReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerAvatarFetterLevelRewardReq.java index b0d45027d..fa760a7a8 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerAvatarFetterLevelRewardReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerAvatarFetterLevelRewardReq.java @@ -1,9 +1,9 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.RewardData; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; @@ -27,14 +27,14 @@ public class HandlerAvatarFetterLevelRewardReq extends PacketHandler { } else { long avatarGuid = req.getAvatarGuid(); - GenshinAvatar avatar = session + Avatar avatar = session .getPlayer() .getAvatars() .getAvatarByGuid(avatarGuid); int rewardId = avatar.getNameCardRewardId(); - RewardData card = GenshinData.getRewardDataMap().get(rewardId); + RewardData card = GameData.getRewardDataMap().get(rewardId); int cardId = card.getRewardItemList().get(0).getItemId(); if (session.getPlayer().getNameCardList().contains(cardId)) { @@ -43,7 +43,7 @@ public class HandlerAvatarFetterLevelRewardReq extends PacketHandler { return; } - GenshinItem item = new GenshinItem(cardId); + GameItem item = new GameItem(cardId); session.getPlayer().getInventory().addItem(item, ActionReason.FetterLevelReward); session.getPlayer().sendPacket(new PacketUnlockNameCardNotify(cardId)); session.send(new PacketAvatarFetterDataNotify(avatar)); diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java index e06cd51da..a5a3fd4c3 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.game.entity.GenshinEntity; +import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.CombatInvocationsNotifyOuterClass.CombatInvocationsNotify; @@ -27,7 +27,7 @@ public class HandlerCombatInvocationsNotify extends PacketHandler { case ENTITY_MOVE: // Handle movement EntityMoveInfo moveInfo = EntityMoveInfo.parseFrom(entry.getCombatData()); - GenshinEntity entity = session.getPlayer().getScene().getEntityById(moveInfo.getEntityId()); + GameEntity entity = session.getPlayer().getScene().getEntityById(moveInfo.getEntityId()); if (entity != null) { entity.getPosition().set(moveInfo.getMotionInfo().getPos()); entity.getRotation().set(moveInfo.getMotionInfo().getRot()); diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerEnterSceneDoneReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerEnterSceneDoneReq.java index 2f7da6884..760116ea4 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerEnterSceneDoneReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerEnterSceneDoneReq.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.game.GenshinPlayer.SceneLoadState; +import emu.grasscutter.game.Player.SceneLoadState; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.packet.PacketHandler; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetPlayerBlacklistReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetPlayerBlacklistReq.java index 2d0b650d8..7036aff6a 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetPlayerBlacklistReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetPlayerBlacklistReq.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.packet.PacketHandler; @@ -11,7 +11,7 @@ public class HandlerGetPlayerBlacklistReq extends PacketHandler { @Override public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { - session.send(new GenshinPacket(PacketOpcodes.GetPlayerBlacklistRsp).buildHeader(3)); + session.send(new BasePacket(PacketOpcodes.GetPlayerBlacklistRsp).buildHeader(3)); } } diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerNpcTalkReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerNpcTalkReq.java index 588e1c4e1..309d7e2e2 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerNpcTalkReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerNpcTalkReq.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.NpcTalkReqOuterClass.NpcTalkReq; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerLoginReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerLoginReq.java index 05753aec0..06b8c9491 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerLoginReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerLoginReq.java @@ -1,8 +1,8 @@ package emu.grasscutter.server.packet.recv; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerLoginReqOuterClass.PlayerLoginReq; @@ -30,12 +30,12 @@ public class HandlerPlayerLoginReq extends PacketHandler { } // Load character from db - GenshinPlayer player = DatabaseHelper.getPlayerById(session.getAccount().getPlayerUid()); + Player player = DatabaseHelper.getPlayerById(session.getAccount().getPlayerUid()); if (player == null) { // Send packets session.setState(SessionState.PICKING_CHARACTER); - session.send(new GenshinPacket(PacketOpcodes.DoSetPlayerBornDataNotify)); + session.send(new BasePacket(PacketOpcodes.DoSetPlayerBornDataNotify)); } else { // Set character session.setPlayer(player); diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerPrivateChatReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerPrivateChatReq.java index b576bbb20..89c0621cb 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerPrivateChatReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerPrivateChatReq.java @@ -19,8 +19,6 @@ public class HandlerPrivateChatReq extends PacketHandler { } else if (content == PrivateChatReq.ContentCase.ICON) { session.getServer().getChatManager().sendPrivateMessage(session.getPlayer(), req.getTargetUid(), req.getIcon()); } - - //session.send(new GenshinPacket(PacketOpcodes.PrivateChatRsp)); // Unused by server } } diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java index 4a602157d..fefbee3b6 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java @@ -2,7 +2,7 @@ package emu.grasscutter.server.packet.recv; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.entity.EntityMonster; -import emu.grasscutter.game.entity.GenshinEntity; +import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; import emu.grasscutter.net.packet.Opcodes; @@ -19,7 +19,7 @@ public class HandlerSceneEntityDrownReq extends PacketHandler { public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { SceneEntityDrownReq req = SceneEntityDrownReq.parseFrom(payload); - GenshinEntity entity = session.getPlayer().getScene().getEntityById(req.getEntityId()); + GameEntity entity = session.getPlayer().getScene().getEntityById(req.getEntityId()); if (entity == null || !(entity instanceof EntityMonster || entity instanceof EntityAvatar)) { return; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneInitFinishReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneInitFinishReq.java index 4a4dbfcf1..62333dc55 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneInitFinishReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneInitFinishReq.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.game.GenshinPlayer.SceneLoadState; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player.SceneLoadState; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.packet.PacketHandler; @@ -31,7 +31,7 @@ public class HandlerSceneInitFinishReq extends PacketHandler { session.send(new PacketWorldPlayerInfoNotify(session.getPlayer().getWorld())); session.send(new PacketWorldDataNotify(session.getPlayer().getWorld())); session.send(new PacketSceneUnlockInfoNotify()); - session.send(new GenshinPacket(PacketOpcodes.SceneForceUnlockNotify)); + session.send(new BasePacket(PacketOpcodes.SceneForceUnlockNotify)); session.send(new PacketHostPlayerNotify(session.getPlayer().getWorld())); session.send(new PacketSceneTimeNotify(session.getPlayer())); diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneTransToPointReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneTransToPointReq.java index f01f5980d..65783d01b 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneTransToPointReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneTransToPointReq.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.custom.ScenePointEntry; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; @@ -19,7 +19,7 @@ public class HandlerSceneTransToPointReq extends PacketHandler { SceneTransToPointReq req = SceneTransToPointReq.parseFrom(payload); String code = req.getSceneId() + "_" + req.getPointId(); - ScenePointEntry scenePointEntry = GenshinData.getScenePointEntries().get(code); + ScenePointEntry scenePointEntry = GameData.getScenePointEntries().get(code); if (scenePointEntry != null) { float x = scenePointEntry.getPointData().getTranPos().getX(); diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetEntityClientDataNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetEntityClientDataNotify.java index d194e1465..5151034f2 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetEntityClientDataNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetEntityClientDataNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetEntityClientDataNotifyOuterClass.SetEntityClientDataNotify; @@ -20,7 +20,7 @@ public class HandlerSetEntityClientDataNotify extends PacketHandler { // Make sure packet is a valid proto before replaying it to the other players SetEntityClientDataNotify notif = SetEntityClientDataNotify.parseFrom(payload); - GenshinPacket packet = new GenshinPacket(PacketOpcodes.SetEntityClientDataNotify, true); + BasePacket packet = new BasePacket(PacketOpcodes.SetEntityClientDataNotify, true); packet.setData(notif); session.getPlayer().getScene().broadcastPacketToOthers(session.getPlayer(), packet); diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetPlayerBornDataReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetPlayerBornDataReq.java index 72fc709d9..8a7cdeb5d 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetPlayerBornDataReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetPlayerBornDataReq.java @@ -1,12 +1,12 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.GenshinConstants; +import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetPlayerBornDataReqOuterClass.SetPlayerBornDataReq; @@ -24,9 +24,9 @@ public class HandlerSetPlayerBornDataReq extends PacketHandler { // Sanity checks int avatarId = req.getAvatarId(); int startingSkillDepot = 0; - if (avatarId == GenshinConstants.MAIN_CHARACTER_MALE) { + if (avatarId == GameConstants.MAIN_CHARACTER_MALE) { startingSkillDepot = 504; - } else if (avatarId == GenshinConstants.MAIN_CHARACTER_FEMALE) { + } else if (avatarId == GameConstants.MAIN_CHARACTER_FEMALE) { startingSkillDepot = 704; } else { return; @@ -38,7 +38,7 @@ public class HandlerSetPlayerBornDataReq extends PacketHandler { } // Create character - GenshinPlayer player = new GenshinPlayer(session); + Player player = new Player(session); player.setNickname(nickname); try { @@ -47,8 +47,8 @@ public class HandlerSetPlayerBornDataReq extends PacketHandler { // Create avatar if (player.getAvatars().getAvatarCount() == 0) { - GenshinAvatar mainCharacter = new GenshinAvatar(avatarId); - mainCharacter.setSkillDepot(GenshinData.getAvatarSkillDepotDataMap().get(startingSkillDepot)); + Avatar mainCharacter = new Avatar(avatarId); + mainCharacter.setSkillDepot(GameData.getAvatarSkillDepotDataMap().get(startingSkillDepot)); player.addAvatar(mainCharacter); player.setMainCharacterId(avatarId); player.setHeadImage(avatarId); @@ -68,7 +68,7 @@ public class HandlerSetPlayerBornDataReq extends PacketHandler { session.setState(SessionState.ACTIVE); // Born resp packet - session.send(new GenshinPacket(PacketOpcodes.SetPlayerBornDataRsp)); + session.send(new BasePacket(PacketOpcodes.SetPlayerBornDataRsp)); } catch (Exception e) { Grasscutter.getLogger().error("Error creating player object: ", e); session.close(); diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerTakePlayerLevelRewardReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerTakePlayerLevelRewardReq.java index a81da7758..8ee2d934b 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerTakePlayerLevelRewardReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerTakePlayerLevelRewardReq.java @@ -5,9 +5,9 @@ import java.util.List; import java.util.Set; import emu.grasscutter.Grasscutter; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.common.RewardItemData; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketHandler; @@ -24,15 +24,15 @@ public class HandlerTakePlayerLevelRewardReq extends PacketHandler { TakePlayerLevelRewardReq req = TakePlayerLevelRewardReq.parseFrom(payload); int level = req.getLevel(); - int rewardId = GenshinData.getPlayerLevelDataMap().get(level).getRewardId(); + int rewardId = GameData.getPlayerLevelDataMap().get(level).getRewardId(); if (rewardId != 0) { - List<RewardItemData> rewardItems = GenshinData.getRewardDataMap().get(rewardId).getRewardItemList(); - List<GenshinItem> items = new LinkedList<>(); + List<RewardItemData> rewardItems = GameData.getRewardDataMap().get(rewardId).getRewardItemList(); + List<GameItem> items = new LinkedList<>(); for (RewardItemData rewardItem : rewardItems) { if (rewardItem != null) { if (rewardItem.getItemId() != 0) { - items.add(new GenshinItem(rewardItem.getItemId(), rewardItem.getItemCount())); + items.add(new GameItem(rewardItem.getItemId(), rewardItem.getItemCount())); } } } diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerUseItemReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerUseItemReq.java index 8a1f4a70c..81a1f160b 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerUseItemReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerUseItemReq.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.UseItemReqOuterClass.UseItemReq; @@ -15,7 +15,7 @@ public class HandlerUseItemReq extends PacketHandler { public void handle(GameSession session, byte[] header, byte[] payload) throws Exception { UseItemReq req = UseItemReq.parseFrom(payload); - GenshinItem useItem = session.getServer().getInventoryManager().useItem(session.getPlayer(), req.getTargetGuid(), req.getGuid(), req.getCount()); + GameItem useItem = session.getServer().getInventoryManager().useItem(session.getPlayer(), req.getTargetGuid(), req.getGuid(), req.getCount()); if (useItem != null) { session.send(new PacketUseItemRsp(req.getTargetGuid(), useItem)); } else { diff --git a/src/main/java/emu/grasscutter/server/packet/send/Packet.java b/src/main/java/emu/grasscutter/server/packet/send/Packet.java index 70306892d..22f4924a1 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/Packet.java +++ b/src/main/java/emu/grasscutter/server/packet/send/Packet.java @@ -1,9 +1,9 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; -public class Packet extends GenshinPacket { +public class Packet extends BasePacket { public Packet() { super(PacketOpcodes.NONE); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAbilityChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAbilityChangeNotify.java index d8cdfdef8..e6ce9ee00 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAbilityChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAbilityChangeNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.entity.EntityAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AbilityChangeNotifyOuterClass.AbilityChangeNotify; -public class PacketAbilityChangeNotify extends GenshinPacket { +public class PacketAbilityChangeNotify extends BasePacket { public PacketAbilityChangeNotify(EntityAvatar entity) { super(PacketOpcodes.AbilityChangeNotify, true); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAbilityInvocationsNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAbilityInvocationsNotify.java index 5b1b19a4b..c674fb9d6 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAbilityInvocationsNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAbilityInvocationsNotify.java @@ -2,12 +2,12 @@ package emu.grasscutter.server.packet.send; import java.util.List; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AbilityInvocationsNotifyOuterClass.AbilityInvocationsNotify; import emu.grasscutter.net.proto.AbilityInvokeEntryOuterClass.AbilityInvokeEntry; -public class PacketAbilityInvocationsNotify extends GenshinPacket { +public class PacketAbilityInvocationsNotify extends BasePacket { public PacketAbilityInvocationsNotify(AbilityInvokeEntry entry) { super(PacketOpcodes.AbilityInvocationsNotify, true); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAskAddFriendNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAskAddFriendNotify.java index a0f2e428f..c71ea4beb 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAskAddFriendNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAskAddFriendNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.friends.Friendship; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AskAddFriendNotifyOuterClass.AskAddFriendNotify; -public class PacketAskAddFriendNotify extends GenshinPacket { +public class PacketAskAddFriendNotify extends BasePacket { public PacketAskAddFriendNotify(Friendship friendship) { super(PacketOpcodes.AskAddFriendNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAskAddFriendRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAskAddFriendRsp.java index df46ac296..3f258b75a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAskAddFriendRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAskAddFriendRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AskAddFriendRspOuterClass.AskAddFriendRsp; -public class PacketAskAddFriendRsp extends GenshinPacket { +public class PacketAskAddFriendRsp extends BasePacket { public PacketAskAddFriendRsp(int targetUid) { super(PacketOpcodes.AskAddFriendRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarAddNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarAddNotify.java index 620165d5c..5ee2fb803 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarAddNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarAddNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarAddNotifyOuterClass.AvatarAddNotify; -public class PacketAvatarAddNotify extends GenshinPacket { +public class PacketAvatarAddNotify extends BasePacket { - public PacketAvatarAddNotify(GenshinAvatar avatar, boolean addedToTeam) { + public PacketAvatarAddNotify(Avatar avatar, boolean addedToTeam) { super(PacketOpcodes.AvatarAddNotify); AvatarAddNotify proto = AvatarAddNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarChangeCostumeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarChangeCostumeNotify.java index 4176bf71d..a14be26d1 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarChangeCostumeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarChangeCostumeNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.entity.EntityAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarChangeCostumeNotifyOuterClass.AvatarChangeCostumeNotify; -public class PacketAvatarChangeCostumeNotify extends GenshinPacket { +public class PacketAvatarChangeCostumeNotify extends BasePacket { public PacketAvatarChangeCostumeNotify(EntityAvatar entity) { super(PacketOpcodes.AvatarChangeCostumeNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarChangeCostumeRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarChangeCostumeRsp.java index cb39f6bbd..da5848378 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarChangeCostumeRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarChangeCostumeRsp.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarChangeCostumeRspOuterClass.AvatarChangeCostumeRsp; import emu.grasscutter.net.proto.RetcodeOuterClass; -public class PacketAvatarChangeCostumeRsp extends GenshinPacket { +public class PacketAvatarChangeCostumeRsp extends BasePacket { public PacketAvatarChangeCostumeRsp(long avatarGuid, int costumeId) { super(PacketOpcodes.AvatarChangeCostumeRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDataNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDataNotify.java index a05a2dabb..627fbfaa1 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDataNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDataNotify.java @@ -2,17 +2,17 @@ package emu.grasscutter.server.packet.send; import java.util.Map.Entry; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.TeamInfo; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarDataNotifyOuterClass.AvatarDataNotify; import emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam; -public class PacketAvatarDataNotify extends GenshinPacket { +public class PacketAvatarDataNotify extends BasePacket { - public PacketAvatarDataNotify(GenshinPlayer player) { + public PacketAvatarDataNotify(Player player) { super(PacketOpcodes.AvatarDataNotify, 2); AvatarDataNotify.Builder proto = AvatarDataNotify.newBuilder() @@ -21,7 +21,7 @@ public class PacketAvatarDataNotify extends GenshinPacket { .addAllOwnedFlycloakList(player.getFlyCloakList()) .addAllOwnedCostumeList(player.getCostumeList()); - for (GenshinAvatar avatar : player.getAvatars()) { + for (Avatar avatar : player.getAvatars()) { proto.addAvatarList(avatar.toProto()); } @@ -31,7 +31,7 @@ public class PacketAvatarDataNotify extends GenshinPacket { .setTeamName(teamInfo.getName()); for (int i = 0; i < teamInfo.getAvatars().size(); i++) { - GenshinAvatar avatar = player.getAvatars().getAvatarById(teamInfo.getAvatars().get(i)); + Avatar avatar = player.getAvatars().getAvatarById(teamInfo.getAvatars().get(i)); avatarTeam.addAvatarGuidList(avatar.getGuid()); } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDieAnimationEndRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDieAnimationEndRsp.java index 3fa913a0a..b057ef34d 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDieAnimationEndRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDieAnimationEndRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarDieAnimationEndRspOuterClass.AvatarDieAnimationEndRsp; -public class PacketAvatarDieAnimationEndRsp extends GenshinPacket { +public class PacketAvatarDieAnimationEndRsp extends BasePacket { public PacketAvatarDieAnimationEndRsp(long dieGuid, int skillId) { super(PacketOpcodes.AvatarDieAnimationEndRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarEquipChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarEquipChangeNotify.java index 000c72d38..dc00ad75c 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarEquipChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarEquipChangeNotify.java @@ -1,15 +1,15 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.inventory.EquipType; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarEquipChangeNotifyOuterClass.AvatarEquipChangeNotify; -public class PacketAvatarEquipChangeNotify extends GenshinPacket { +public class PacketAvatarEquipChangeNotify extends BasePacket { - public PacketAvatarEquipChangeNotify(GenshinAvatar avatar, GenshinItem item) { + public PacketAvatarEquipChangeNotify(Avatar avatar, GameItem item) { super(PacketOpcodes.AvatarEquipChangeNotify); AvatarEquipChangeNotify.Builder proto = AvatarEquipChangeNotify.newBuilder() @@ -27,7 +27,7 @@ public class PacketAvatarEquipChangeNotify extends GenshinPacket { this.setData(proto); } - public PacketAvatarEquipChangeNotify(GenshinAvatar avatar, EquipType slot) { + public PacketAvatarEquipChangeNotify(Avatar avatar, EquipType slot) { super(PacketOpcodes.AvatarEquipChangeNotify); AvatarEquipChangeNotify.Builder proto = AvatarEquipChangeNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFetterDataNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFetterDataNotify.java index 68d3dbeac..816fec64b 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFetterDataNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFetterDataNotify.java @@ -1,16 +1,16 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.props.FetterState; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarFetterDataNotifyOuterClass.AvatarFetterDataNotify; import emu.grasscutter.net.proto.AvatarFetterInfoOuterClass.AvatarFetterInfo; import emu.grasscutter.net.proto.FetterDataOuterClass.FetterData; -public class PacketAvatarFetterDataNotify extends GenshinPacket { +public class PacketAvatarFetterDataNotify extends BasePacket { - public PacketAvatarFetterDataNotify(GenshinAvatar avatar) { + public PacketAvatarFetterDataNotify(Avatar avatar) { super(PacketOpcodes.AvatarFetterDataNotify); int fetterLevel = avatar.getFetterLevel(); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFetterLevelRewardRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFetterLevelRewardRsp.java index e9d4895ff..481cdb620 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFetterLevelRewardRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFetterLevelRewardRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarFetterLevelRewardRspOuterClass.AvatarFetterLevelRewardRsp; -public class PacketAvatarFetterLevelRewardRsp extends GenshinPacket { +public class PacketAvatarFetterLevelRewardRsp extends BasePacket { public PacketAvatarFetterLevelRewardRsp(long guid, int fetterLevel, int rewardId) { super(PacketOpcodes.AvatarFetterLevelRewardRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFightPropNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFightPropNotify.java index bb68c5d12..556ba8626 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFightPropNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFightPropNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarFightPropNotifyOuterClass.AvatarFightPropNotify; -public class PacketAvatarFightPropNotify extends GenshinPacket { +public class PacketAvatarFightPropNotify extends BasePacket { - public PacketAvatarFightPropNotify(GenshinAvatar avatar) { + public PacketAvatarFightPropNotify(Avatar avatar) { super(PacketOpcodes.AvatarFightPropNotify); AvatarFightPropNotify proto = AvatarFightPropNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFightPropUpdateNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFightPropUpdateNotify.java index a939ba057..9b9f4e9dd 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFightPropUpdateNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFightPropUpdateNotify.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.props.FightProperty; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarFightPropUpdateNotifyOuterClass.AvatarFightPropUpdateNotify; -public class PacketAvatarFightPropUpdateNotify extends GenshinPacket { +public class PacketAvatarFightPropUpdateNotify extends BasePacket { - public PacketAvatarFightPropUpdateNotify(GenshinAvatar avatar, FightProperty prop) { + public PacketAvatarFightPropUpdateNotify(Avatar avatar, FightProperty prop) { super(PacketOpcodes.AvatarFightPropUpdateNotify); AvatarFightPropUpdateNotify proto = AvatarFightPropUpdateNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFlycloakChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFlycloakChangeNotify.java index 88efecfe7..23a35c815 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFlycloakChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarFlycloakChangeNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarFlycloakChangeNotifyOuterClass.AvatarFlycloakChangeNotify; -public class PacketAvatarFlycloakChangeNotify extends GenshinPacket { +public class PacketAvatarFlycloakChangeNotify extends BasePacket { - public PacketAvatarFlycloakChangeNotify(GenshinAvatar avatar) { + public PacketAvatarFlycloakChangeNotify(Avatar avatar) { super(PacketOpcodes.AvatarFlycloakChangeNotify); AvatarFlycloakChangeNotify proto = AvatarFlycloakChangeNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarGainCostumeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarGainCostumeNotify.java index 74946d959..f8b14cda7 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarGainCostumeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarGainCostumeNotify.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarGainCostumeNotifyOuterClass.AvatarGainCostumeNotify; -public class PacketAvatarGainCostumeNotify extends GenshinPacket { +public class PacketAvatarGainCostumeNotify extends BasePacket { public PacketAvatarGainCostumeNotify(int costumeId) { super(PacketOpcodes.AvatarGainCostumeNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarGainFlycloakNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarGainFlycloakNotify.java index a3dfacc13..88856ad25 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarGainFlycloakNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarGainFlycloakNotify.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarGainFlycloakNotifyOuterClass.AvatarGainFlycloakNotify; -public class PacketAvatarGainFlycloakNotify extends GenshinPacket { +public class PacketAvatarGainFlycloakNotify extends BasePacket { public PacketAvatarGainFlycloakNotify(int flycloak) { super(PacketOpcodes.AvatarGainFlycloakNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarLifeStateChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarLifeStateChangeNotify.java index d9acb5d4e..fcdce2b9a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarLifeStateChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarLifeStateChangeNotify.java @@ -1,15 +1,15 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarLifeStateChangeNotifyOuterClass.AvatarLifeStateChangeNotify; -public class PacketAvatarLifeStateChangeNotify extends GenshinPacket { +public class PacketAvatarLifeStateChangeNotify extends BasePacket { - public PacketAvatarLifeStateChangeNotify(GenshinAvatar avatar) { + public PacketAvatarLifeStateChangeNotify(Avatar avatar) { super(PacketOpcodes.AvatarLifeStateChangeNotify); AvatarLifeStateChangeNotify proto = AvatarLifeStateChangeNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarPromoteRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarPromoteRsp.java index feef149e7..80d7d6ca9 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarPromoteRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarPromoteRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarPromoteRspOuterClass.AvatarPromoteRsp; -public class PacketAvatarPromoteRsp extends GenshinPacket { +public class PacketAvatarPromoteRsp extends BasePacket { - public PacketAvatarPromoteRsp(GenshinAvatar avatar) { + public PacketAvatarPromoteRsp(Avatar avatar) { super(PacketOpcodes.AvatarPromoteRsp); AvatarPromoteRsp proto = AvatarPromoteRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarPropNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarPropNotify.java index d1c04d9db..21d373838 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarPropNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarPropNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; +import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.props.PlayerProperty; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarPropNotifyOuterClass.AvatarPropNotify; -public class PacketAvatarPropNotify extends GenshinPacket { - public PacketAvatarPropNotify(GenshinAvatar avatar) { +public class PacketAvatarPropNotify extends BasePacket { + public PacketAvatarPropNotify(Avatar avatar) { super(PacketOpcodes.AvatarPropNotify); AvatarPropNotify proto = AvatarPropNotify.newBuilder() @@ -22,7 +22,7 @@ public class PacketAvatarPropNotify extends GenshinPacket { this.setData(proto); } - public PacketAvatarPropNotify(GenshinAvatar avatar, PlayerProperty prop, int value) { + public PacketAvatarPropNotify(Avatar avatar, PlayerProperty prop, int value) { super(PacketOpcodes.AvatarPropNotify); AvatarPropNotify proto = AvatarPropNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarSkillChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarSkillChangeNotify.java index ba787ee7c..ba260ce6c 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarSkillChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarSkillChangeNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarSkillChangeNotifyOuterClass.AvatarSkillChangeNotify; -public class PacketAvatarSkillChangeNotify extends GenshinPacket { +public class PacketAvatarSkillChangeNotify extends BasePacket { - public PacketAvatarSkillChangeNotify(GenshinAvatar avatar, int skillId, int oldLevel, int curLevel) { + public PacketAvatarSkillChangeNotify(Avatar avatar, int skillId, int oldLevel, int curLevel) { super(PacketOpcodes.AvatarSkillChangeNotify); AvatarSkillChangeNotify proto = AvatarSkillChangeNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarSkillUpgradeRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarSkillUpgradeRsp.java index 21163e901..22678db64 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarSkillUpgradeRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarSkillUpgradeRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarSkillUpgradeRspOuterClass.AvatarSkillUpgradeRsp; -public class PacketAvatarSkillUpgradeRsp extends GenshinPacket { +public class PacketAvatarSkillUpgradeRsp extends BasePacket { - public PacketAvatarSkillUpgradeRsp(GenshinAvatar avatar, int skillId, int oldLevel, int newLevel) { + public PacketAvatarSkillUpgradeRsp(Avatar avatar, int skillId, int oldLevel, int newLevel) { super(PacketOpcodes.AvatarSkillUpgradeRsp); AvatarSkillUpgradeRsp proto = AvatarSkillUpgradeRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarTeamUpdateNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarTeamUpdateNotify.java index 519584cc3..6c063d318 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarTeamUpdateNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarTeamUpdateNotify.java @@ -2,17 +2,17 @@ package emu.grasscutter.server.packet.send; import java.util.Map.Entry; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.TeamInfo; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam; import emu.grasscutter.net.proto.AvatarTeamUpdateNotifyOuterClass.AvatarTeamUpdateNotify; -public class PacketAvatarTeamUpdateNotify extends GenshinPacket { +public class PacketAvatarTeamUpdateNotify extends BasePacket { - public PacketAvatarTeamUpdateNotify(GenshinPlayer player) { + public PacketAvatarTeamUpdateNotify(Player player) { super(PacketOpcodes.AvatarTeamUpdateNotify); AvatarTeamUpdateNotify.Builder proto = AvatarTeamUpdateNotify.newBuilder(); @@ -23,7 +23,7 @@ public class PacketAvatarTeamUpdateNotify extends GenshinPacket { .setTeamName(teamInfo.getName()); for (int i = 0; i < teamInfo.getAvatars().size(); i++) { - GenshinAvatar avatar = player.getAvatars().getAvatarById(teamInfo.getAvatars().get(i)); + Avatar avatar = player.getAvatars().getAvatarById(teamInfo.getAvatars().get(i)); avatarTeam.addAvatarGuidList(avatar.getGuid()); } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarUnlockTalentNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarUnlockTalentNotify.java index 4c0b11ae9..baa93bccf 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarUnlockTalentNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarUnlockTalentNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarUnlockTalentNotifyOuterClass.AvatarUnlockTalentNotify; -public class PacketAvatarUnlockTalentNotify extends GenshinPacket { +public class PacketAvatarUnlockTalentNotify extends BasePacket { - public PacketAvatarUnlockTalentNotify(GenshinAvatar avatar, int talentId) { + public PacketAvatarUnlockTalentNotify(Avatar avatar, int talentId) { super(PacketOpcodes.AvatarUnlockTalentNotify); AvatarUnlockTalentNotify proto = AvatarUnlockTalentNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarUpgradeRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarUpgradeRsp.java index 031313ea6..99ac311fd 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarUpgradeRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarUpgradeRsp.java @@ -2,14 +2,14 @@ package emu.grasscutter.server.packet.send; import java.util.Map; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarUpgradeRspOuterClass.AvatarUpgradeRsp; -public class PacketAvatarUpgradeRsp extends GenshinPacket { +public class PacketAvatarUpgradeRsp extends BasePacket { - public PacketAvatarUpgradeRsp(GenshinAvatar avatar, int oldLevel, Map<Integer, Float> oldFightPropMap) { + public PacketAvatarUpgradeRsp(Avatar avatar, int oldLevel, Map<Integer, Float> oldFightPropMap) { super(PacketOpcodes.AvatarUpgradeRsp); this.buildHeader(0); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarWearFlycloakRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarWearFlycloakRsp.java index 6cb513a7a..0995e5d18 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarWearFlycloakRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarWearFlycloakRsp.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarWearFlycloakRspOuterClass.AvatarWearFlycloakRsp; import emu.grasscutter.net.proto.RetcodeOuterClass; -public class PacketAvatarWearFlycloakRsp extends GenshinPacket { +public class PacketAvatarWearFlycloakRsp extends BasePacket { public PacketAvatarWearFlycloakRsp(long avatarGuid, int costumeId) { super(PacketOpcodes.AvatarWearFlycloakRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketCalcWeaponUpgradeReturnItemsRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketCalcWeaponUpgradeReturnItemsRsp.java index 874f7da73..8d2bfacfb 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketCalcWeaponUpgradeReturnItemsRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketCalcWeaponUpgradeReturnItemsRsp.java @@ -2,13 +2,13 @@ package emu.grasscutter.server.packet.send; import java.util.List; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.CalcWeaponUpgradeReturnItemsRspOuterClass.CalcWeaponUpgradeReturnItemsRsp; import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam; import emu.grasscutter.net.proto.RetcodeOuterClass; -public class PacketCalcWeaponUpgradeReturnItemsRsp extends GenshinPacket { +public class PacketCalcWeaponUpgradeReturnItemsRsp extends BasePacket { public PacketCalcWeaponUpgradeReturnItemsRsp(long itemGuid, List<ItemParam> returnItems) { super(PacketOpcodes.CalcWeaponUpgradeReturnItemsRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketCardProductRewardNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketCardProductRewardNotify.java index ca5a5fc00..606c77fff 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketCardProductRewardNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketCardProductRewardNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.CardProductRewardNotifyOuterClass.CardProductRewardNotify; -public class PacketCardProductRewardNotify extends GenshinPacket { +public class PacketCardProductRewardNotify extends BasePacket { public PacketCardProductRewardNotify(int remainsDay) { super(PacketOpcodes.CardProductRewardNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeAvatarRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeAvatarRsp.java index 720e924ec..f5efe6808 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeAvatarRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeAvatarRsp.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChangeAvatarRspOuterClass.ChangeAvatarRsp; import emu.grasscutter.net.proto.RetcodeOuterClass; -public class PacketChangeAvatarRsp extends GenshinPacket { +public class PacketChangeAvatarRsp extends BasePacket { public PacketChangeAvatarRsp(long guid) { super(PacketOpcodes.ChangeAvatarRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeGameTimeRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeGameTimeRsp.java index 45a485553..6d3b2dd54 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeGameTimeRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeGameTimeRsp.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.World; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChangeGameTimeRspOuterClass.ChangeGameTimeRsp; -public class PacketChangeGameTimeRsp extends GenshinPacket { +public class PacketChangeGameTimeRsp extends BasePacket { - public PacketChangeGameTimeRsp(GenshinPlayer player) { + public PacketChangeGameTimeRsp(Player player) { super(PacketOpcodes.ChangeGameTimeRsp); ChangeGameTimeRsp proto = ChangeGameTimeRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeMpTeamAvatarRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeMpTeamAvatarRsp.java index 36d2ed248..a52a489ac 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeMpTeamAvatarRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeMpTeamAvatarRsp.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.TeamInfo; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChangeMpTeamAvatarRspOuterClass.ChangeMpTeamAvatarRsp; -public class PacketChangeMpTeamAvatarRsp extends GenshinPacket { +public class PacketChangeMpTeamAvatarRsp extends BasePacket { - public PacketChangeMpTeamAvatarRsp(GenshinPlayer player, TeamInfo teamInfo) { + public PacketChangeMpTeamAvatarRsp(Player player, TeamInfo teamInfo) { super(PacketOpcodes.ChangeMpTeamAvatarRsp); ChangeMpTeamAvatarRsp.Builder proto = ChangeMpTeamAvatarRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeTeamNameRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeTeamNameRsp.java index 52c6bccbf..a965eb1bb 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeTeamNameRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeTeamNameRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChangeTeamNameRspOuterClass.ChangeTeamNameRsp; -public class PacketChangeTeamNameRsp extends GenshinPacket { +public class PacketChangeTeamNameRsp extends BasePacket { public PacketChangeTeamNameRsp(int teamId, String teamName) { super(PacketOpcodes.ChangeTeamNameRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketChooseCurAvatarTeamRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketChooseCurAvatarTeamRsp.java index 2af34109a..3eaecdb6d 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketChooseCurAvatarTeamRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketChooseCurAvatarTeamRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChooseCurAvatarTeamRspOuterClass.ChooseCurAvatarTeamRsp; -public class PacketChooseCurAvatarTeamRsp extends GenshinPacket { +public class PacketChooseCurAvatarTeamRsp extends BasePacket { public PacketChooseCurAvatarTeamRsp(int teamId) { super(PacketOpcodes.ChooseCurAvatarTeamRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketClientAbilityInitFinishNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketClientAbilityInitFinishNotify.java index dc676c4d1..61a682b4e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketClientAbilityInitFinishNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketClientAbilityInitFinishNotify.java @@ -2,12 +2,12 @@ package emu.grasscutter.server.packet.send; import java.util.List; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AbilityInvokeEntryOuterClass.AbilityInvokeEntry; import emu.grasscutter.net.proto.ClientAbilityInitFinishNotifyOuterClass.ClientAbilityInitFinishNotify; -public class PacketClientAbilityInitFinishNotify extends GenshinPacket { +public class PacketClientAbilityInitFinishNotify extends BasePacket { public PacketClientAbilityInitFinishNotify(List<AbilityInvokeEntry> entries) { super(PacketOpcodes.ClientAbilityInitFinishNotify, true); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketCombatInvocationsNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketCombatInvocationsNotify.java index c2031065f..7e9fba335 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketCombatInvocationsNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketCombatInvocationsNotify.java @@ -2,12 +2,12 @@ package emu.grasscutter.server.packet.send; import java.util.List; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.CombatInvocationsNotifyOuterClass.CombatInvocationsNotify; import emu.grasscutter.net.proto.CombatInvokeEntryOuterClass.CombatInvokeEntry; -public class PacketCombatInvocationsNotify extends GenshinPacket { +public class PacketCombatInvocationsNotify extends BasePacket { public PacketCombatInvocationsNotify(CombatInvokeEntry entry) { super(PacketOpcodes.CombatInvocationsNotify, true); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketCombineRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketCombineRsp.java index d5fda887b..f552d1ec7 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketCombineRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketCombineRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.CombineReqOuterClass; import emu.grasscutter.net.proto.CombineRspOuterClass; import emu.grasscutter.net.proto.ItemParamOuterClass; import emu.grasscutter.net.proto.RetcodeOuterClass; -public class PacketCombineRsp extends GenshinPacket { +public class PacketCombineRsp extends BasePacket { public PacketCombineRsp() { super(PacketOpcodes.CombineRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketDealAddFriendRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketDealAddFriendRsp.java index 590506c1f..9163797f4 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketDealAddFriendRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketDealAddFriendRsp.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.DealAddFriendResultTypeOuterClass.DealAddFriendResultType; import emu.grasscutter.net.proto.DealAddFriendRspOuterClass.DealAddFriendRsp; -public class PacketDealAddFriendRsp extends GenshinPacket { +public class PacketDealAddFriendRsp extends BasePacket { public PacketDealAddFriendRsp(int targetUid, DealAddFriendResultType result) { super(PacketOpcodes.DealAddFriendRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java index 6a11521a5..5048a7a87 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java @@ -1,16 +1,16 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp; import java.util.ArrayList; import java.util.List; -public class PacketDelMailRsp extends GenshinPacket { +public class PacketDelMailRsp extends BasePacket { - public PacketDelMailRsp(GenshinPlayer player, List<Integer> toDeleteIds) { + public PacketDelMailRsp(Player player, List<Integer> toDeleteIds) { super(PacketOpcodes.DelMailRsp); DelMailRsp.Builder proto = DelMailRsp.newBuilder(); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketDelTeamEntityNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketDelTeamEntityNotify.java index 8e6bd10f3..23f7570ac 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketDelTeamEntityNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketDelTeamEntityNotify.java @@ -2,11 +2,11 @@ package emu.grasscutter.server.packet.send; import java.util.List; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.DelTeamEntityNotifyOuterClass.DelTeamEntityNotify; -public class PacketDelTeamEntityNotify extends GenshinPacket { +public class PacketDelTeamEntityNotify extends BasePacket { public PacketDelTeamEntityNotify(int sceneId, int teamEntityId) { super(PacketOpcodes.DelTeamEntityNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketDeleteFriendNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketDeleteFriendNotify.java index 7b41b14a5..d56dd639d 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketDeleteFriendNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketDeleteFriendNotify.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.DeleteFriendNotifyOuterClass.DeleteFriendNotify; -public class PacketDeleteFriendNotify extends GenshinPacket { +public class PacketDeleteFriendNotify extends BasePacket { public PacketDeleteFriendNotify(int targetUid) { super(PacketOpcodes.DeleteFriendNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketDeleteFriendRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketDeleteFriendRsp.java index bfe7c2ced..a4181feec 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketDeleteFriendRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketDeleteFriendRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.DeleteFriendRspOuterClass.DeleteFriendRsp; -public class PacketDeleteFriendRsp extends GenshinPacket { +public class PacketDeleteFriendRsp extends BasePacket { public PacketDeleteFriendRsp(int targetUid) { super(PacketOpcodes.DeleteFriendRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketDestroyMaterialRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketDestroyMaterialRsp.java index 76bc1ebb5..95fb95b6d 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketDestroyMaterialRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketDestroyMaterialRsp.java @@ -1,12 +1,12 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.DestroyMaterialRspOuterClass.DestroyMaterialRsp; import it.unimi.dsi.fastutil.ints.Int2IntMap; import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; -public class PacketDestroyMaterialRsp extends GenshinPacket { +public class PacketDestroyMaterialRsp extends BasePacket { public PacketDestroyMaterialRsp(Int2IntOpenHashMap returnMaterialMap) { super(PacketOpcodes.DestroyMaterialRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketDoGachaRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketDoGachaRsp.java index f019239b9..9144c0d8e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketDoGachaRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketDoGachaRsp.java @@ -3,13 +3,13 @@ package emu.grasscutter.server.packet.send; import java.util.List; import emu.grasscutter.game.gacha.GachaBanner; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.DoGachaRspOuterClass.DoGachaRsp; import emu.grasscutter.net.proto.GachaItemOuterClass.GachaItem; import emu.grasscutter.net.proto.RetcodeOuterClass; -public class PacketDoGachaRsp extends GenshinPacket { +public class PacketDoGachaRsp extends BasePacket { public PacketDoGachaRsp(GachaBanner banner, List<GachaItem> list) { super(PacketOpcodes.DoGachaRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneDoneRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneDoneRsp.java index 6f1314a25..9978300a4 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneDoneRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneDoneRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterSceneDoneRspOuterClass.EnterSceneDoneRsp; -public class PacketEnterSceneDoneRsp extends GenshinPacket { +public class PacketEnterSceneDoneRsp extends BasePacket { - public PacketEnterSceneDoneRsp(GenshinPlayer player) { + public PacketEnterSceneDoneRsp(Player player) { super(PacketOpcodes.EnterSceneDoneRsp); EnterSceneDoneRsp p = EnterSceneDoneRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterScenePeerNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterScenePeerNotify.java index 07c2bbf27..ab46204fa 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterScenePeerNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterScenePeerNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterScenePeerNotifyOuterClass.EnterScenePeerNotify; -public class PacketEnterScenePeerNotify extends GenshinPacket { +public class PacketEnterScenePeerNotify extends BasePacket { - public PacketEnterScenePeerNotify(GenshinPlayer player) { + public PacketEnterScenePeerNotify(Player player) { super(PacketOpcodes.EnterScenePeerNotify); EnterScenePeerNotify proto = EnterScenePeerNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneReadyRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneReadyRsp.java index c426bc728..42850a8bc 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneReadyRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneReadyRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterSceneReadyRspOuterClass.EnterSceneReadyRsp; -public class PacketEnterSceneReadyRsp extends GenshinPacket { +public class PacketEnterSceneReadyRsp extends BasePacket { - public PacketEnterSceneReadyRsp(GenshinPlayer player) { + public PacketEnterSceneReadyRsp(Player player) { super(PacketOpcodes.EnterSceneReadyRsp, 11); EnterSceneReadyRsp p = EnterSceneReadyRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterWorldAreaRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterWorldAreaRsp.java index 0d907f318..53e57b78a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterWorldAreaRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterWorldAreaRsp.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterWorldAreaReqOuterClass.EnterWorldAreaReq; import emu.grasscutter.net.proto.EnterWorldAreaRspOuterClass.EnterWorldAreaRsp; -public class PacketEnterWorldAreaRsp extends GenshinPacket { +public class PacketEnterWorldAreaRsp extends BasePacket { public PacketEnterWorldAreaRsp(int clientSequence, EnterWorldAreaReq enterWorld) { super(PacketOpcodes.EnterWorldAreaRsp, clientSequence); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketEntityAiSyncNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketEntityAiSyncNotify.java index 36e4d813e..a3e300c25 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketEntityAiSyncNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketEntityAiSyncNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AiSyncInfoOuterClass.AiSyncInfo; import emu.grasscutter.net.proto.EntityAiSyncNotifyOuterClass.EntityAiSyncNotify; -public class PacketEntityAiSyncNotify extends GenshinPacket { +public class PacketEntityAiSyncNotify extends BasePacket { public PacketEntityAiSyncNotify(EntityAiSyncNotify notify) { super(PacketOpcodes.EntityAiSyncNotify, true); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketEntityFightPropUpdateNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketEntityFightPropUpdateNotify.java index 8d76891ef..85c207dde 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketEntityFightPropUpdateNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketEntityFightPropUpdateNotify.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.entity.GenshinEntity; +import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.game.props.FightProperty; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EntityFightPropUpdateNotifyOuterClass.EntityFightPropUpdateNotify; -public class PacketEntityFightPropUpdateNotify extends GenshinPacket { +public class PacketEntityFightPropUpdateNotify extends BasePacket { - public PacketEntityFightPropUpdateNotify(GenshinEntity entity, FightProperty prop) { + public PacketEntityFightPropUpdateNotify(GameEntity entity, FightProperty prop) { super(PacketOpcodes.EntityFightPropUpdateNotify); EntityFightPropUpdateNotify proto = EntityFightPropUpdateNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketEvtAvatarSitDownNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketEvtAvatarSitDownNotify.java index 6a051024a..f85bbfbc3 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketEvtAvatarSitDownNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketEvtAvatarSitDownNotify.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EvtAvatarSitDownNotifyOuterClass.EvtAvatarSitDownNotify; -public class PacketEvtAvatarSitDownNotify extends GenshinPacket { +public class PacketEvtAvatarSitDownNotify extends BasePacket { public PacketEvtAvatarSitDownNotify(EvtAvatarSitDownNotify notify) { super(PacketOpcodes.EvtAvatarSitDownNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGadgetInteractRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGadgetInteractRsp.java index e7847dfdb..d15cca8a8 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGadgetInteractRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGadgetInteractRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.entity.EntityGadget; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GadgetInteractRspOuterClass.GadgetInteractRsp; import emu.grasscutter.net.proto.InteractTypeOuterClass.InteractType; import emu.grasscutter.net.proto.RetcodeOuterClass; -public class PacketGadgetInteractRsp extends GenshinPacket { +public class PacketGadgetInteractRsp extends BasePacket { public PacketGadgetInteractRsp(EntityGadget gadget, InteractType interact) { super(PacketOpcodes.GadgetInteractRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetActivityInfoRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetActivityInfoRsp.java index 8b8a5cffa..1808391c6 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetActivityInfoRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetActivityInfoRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetActivityInfoRspOuterClass.GetActivityInfoRsp; -public class PacketGetActivityInfoRsp extends GenshinPacket { +public class PacketGetActivityInfoRsp extends BasePacket { public PacketGetActivityInfoRsp() { super(PacketOpcodes.GetActivityInfoRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index 1185a0df5..b11b36d54 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -1,9 +1,9 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.Mail; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; import emu.grasscutter.net.proto.ItemParamOuterClass; @@ -17,9 +17,9 @@ import java.util.ArrayList; import java.util.Base64; import java.util.List; -public class PacketGetAllMailRsp extends GenshinPacket { +public class PacketGetAllMailRsp extends BasePacket { - public PacketGetAllMailRsp(GenshinPlayer player, boolean isGiftMail) { + public PacketGetAllMailRsp(Player player, boolean isGiftMail) { super(PacketOpcodes.GetAllMailRsp); if (isGiftMail) { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllUnlockNameCardRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllUnlockNameCardRsp.java index 0ac6516de..25cef3778 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllUnlockNameCardRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllUnlockNameCardRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetAllUnlockNameCardRspOuterClass.GetAllUnlockNameCardRsp; -public class PacketGetAllUnlockNameCardRsp extends GenshinPacket { +public class PacketGetAllUnlockNameCardRsp extends BasePacket { - public PacketGetAllUnlockNameCardRsp(GenshinPlayer player) { + public PacketGetAllUnlockNameCardRsp(Player player) { super(PacketOpcodes.GetAllUnlockNameCardRsp); GetAllUnlockNameCardRsp proto = GetAllUnlockNameCardRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAuthkeyRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAuthkeyRsp.java index 2265f2f6f..0e798cd59 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAuthkeyRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAuthkeyRsp.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetAuthkeyRspOuterClass.GetAuthkeyRsp; import emu.grasscutter.net.proto.RetcodeOuterClass; -public class PacketGetAuthkeyRsp extends GenshinPacket { +public class PacketGetAuthkeyRsp extends BasePacket { public PacketGetAuthkeyRsp() { super(PacketOpcodes.GetAuthkeyRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetGachaInfoRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetGachaInfoRsp.java index 6772516a7..89af334a5 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetGachaInfoRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetGachaInfoRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.gacha.GachaManager; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; -public class PacketGetGachaInfoRsp extends GenshinPacket { +public class PacketGetGachaInfoRsp extends BasePacket { public PacketGetGachaInfoRsp(GachaManager manager) { super(PacketOpcodes.GetGachaInfoRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java index 7874acbc4..ac6afebdf 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.data.GenshinData; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.data.GameData; +import emu.grasscutter.game.Player; import emu.grasscutter.game.Mail; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.props.ActionReason; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EquipParamOuterClass; import emu.grasscutter.net.proto.GetMailItemRspOuterClass.GetMailItemRsp; @@ -14,9 +14,9 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -public class PacketGetMailItemRsp extends GenshinPacket { +public class PacketGetMailItemRsp extends BasePacket { - public PacketGetMailItemRsp(GenshinPlayer player, List<Integer> mailList) { + public PacketGetMailItemRsp(Player player, List<Integer> mailList) { super(PacketOpcodes.GetMailItemRsp); List<Mail> claimedMessages = new ArrayList<>(); @@ -50,11 +50,11 @@ public class PacketGetMailItemRsp extends GenshinPacket { item.setPromoteLevel(promoteLevel); claimedItems.add(item.build()); - GenshinItem genshinItem = new GenshinItem(GenshinData.getItemDataMap().get(mailItem.itemId)); - genshinItem.setCount(mailItem.itemCount); - genshinItem.setLevel(mailItem.itemLevel); - genshinItem.setPromoteLevel(promoteLevel); - player.getInventory().addItem(genshinItem, ActionReason.MailAttachment); + GameItem gameItem = new GameItem(GameData.getItemDataMap().get(mailItem.itemId)); + gameItem.setCount(mailItem.itemCount); + gameItem.setLevel(mailItem.itemLevel); + gameItem.setPromoteLevel(promoteLevel); + player.getInventory().addItem(gameItem, ActionReason.MailAttachment); } message.isAttachmentGot = true; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerAskFriendListRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerAskFriendListRsp.java index e0aa0601f..6ac5ddbf6 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerAskFriendListRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerAskFriendListRsp.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.friends.Friendship; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetPlayerAskFriendListRspOuterClass.GetPlayerAskFriendListRsp; -public class PacketGetPlayerAskFriendListRsp extends GenshinPacket { +public class PacketGetPlayerAskFriendListRsp extends BasePacket { - public PacketGetPlayerAskFriendListRsp(GenshinPlayer player) { + public PacketGetPlayerAskFriendListRsp(Player player) { super(PacketOpcodes.GetPlayerAskFriendListRsp); GetPlayerAskFriendListRsp.Builder proto = GetPlayerAskFriendListRsp.newBuilder(); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerFriendListRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerFriendListRsp.java index 85e0b9849..a808ea0a9 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerFriendListRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerFriendListRsp.java @@ -1,9 +1,9 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.GenshinConstants; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.GameConstants; +import emu.grasscutter.game.Player; import emu.grasscutter.game.friends.Friendship; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.FriendBriefOuterClass.FriendBrief; import emu.grasscutter.net.proto.FriendOnlineStateOuterClass.FriendOnlineState; @@ -11,16 +11,16 @@ import emu.grasscutter.net.proto.GetPlayerFriendListRspOuterClass.GetPlayerFrien import emu.grasscutter.net.proto.HeadImageOuterClass.HeadImage; import emu.grasscutter.net.proto.PlatformTypeOuterClass; -public class PacketGetPlayerFriendListRsp extends GenshinPacket { +public class PacketGetPlayerFriendListRsp extends BasePacket { - public PacketGetPlayerFriendListRsp(GenshinPlayer player) { + public PacketGetPlayerFriendListRsp(Player player) { super(PacketOpcodes.GetPlayerFriendListRsp); FriendBrief serverFriend = FriendBrief.newBuilder() - .setUid(GenshinConstants.SERVER_CONSOLE_UID) + .setUid(GameConstants.SERVER_CONSOLE_UID) .setNickname("Server") .setLevel(1) - .setAvatarId(HeadImage.newBuilder().setAvatarId(GenshinConstants.MAIN_CHARACTER_FEMALE).getAvatarId()) + .setAvatarId(HeadImage.newBuilder().setAvatarId(GameConstants.MAIN_CHARACTER_FEMALE).getAvatarId()) .setWorldLevel(0) .setSignature("") .setLastActiveTime((int) (System.currentTimeMillis() / 1000f)) diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerSocialDetailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerSocialDetailRsp.java index c704afa2f..6c36e1729 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerSocialDetailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerSocialDetailRsp.java @@ -1,12 +1,12 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetPlayerSocialDetailRspOuterClass.GetPlayerSocialDetailRsp; import emu.grasscutter.net.proto.RetcodeOuterClass; import emu.grasscutter.net.proto.SocialDetailOuterClass.SocialDetail; -public class PacketGetPlayerSocialDetailRsp extends GenshinPacket { +public class PacketGetPlayerSocialDetailRsp extends BasePacket { public PacketGetPlayerSocialDetailRsp(SocialDetail.Builder detail) { super(PacketOpcodes.GetPlayerSocialDetailRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerTokenRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerTokenRsp.java index 994987232..3a5e0f08c 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerTokenRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerTokenRsp.java @@ -2,13 +2,13 @@ package emu.grasscutter.server.packet.send; import com.google.protobuf.ByteString; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetPlayerTokenRspOuterClass.GetPlayerTokenRsp; import emu.grasscutter.server.game.GameSession; import emu.grasscutter.utils.Crypto; -public class PacketGetPlayerTokenRsp extends GenshinPacket { +public class PacketGetPlayerTokenRsp extends BasePacket { public PacketGetPlayerTokenRsp(GameSession session, boolean doesPlayerExist) { super(PacketOpcodes.GetPlayerTokenRsp, true); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetSceneAreaRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetSceneAreaRsp.java index e0f6c5a03..280b62623 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetSceneAreaRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetSceneAreaRsp.java @@ -3,12 +3,12 @@ package emu.grasscutter.server.packet.send; import java.util.Arrays; import java.util.stream.Collectors; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.CityInfoOuterClass.CityInfo; import emu.grasscutter.net.proto.GetSceneAreaRspOuterClass.GetSceneAreaRsp; -public class PacketGetSceneAreaRsp extends GenshinPacket { +public class PacketGetSceneAreaRsp extends BasePacket { public PacketGetSceneAreaRsp(int sceneId) { super(PacketOpcodes.GetSceneAreaRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetScenePointRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetScenePointRsp.java index 73807bed7..85b7ab02f 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetScenePointRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetScenePointRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetScenePointRspOuterClass.GetScenePointRsp; -public class PacketGetScenePointRsp extends GenshinPacket { +public class PacketGetScenePointRsp extends BasePacket { public PacketGetScenePointRsp(int sceneId) { super(PacketOpcodes.GetScenePointRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetShopRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetShopRsp.java index d80d445d9..64d415763 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetShopRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetShopRsp.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetShopRspOuterClass.GetShopRsp; import emu.grasscutter.net.proto.ShopOuterClass.Shop; -public class PacketGetShopRsp extends GenshinPacket { +public class PacketGetShopRsp extends BasePacket { public PacketGetShopRsp(int shopType) { super(PacketOpcodes.GetShopRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetShopmallDataRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetShopmallDataRsp.java index 38b44b5b6..17f682406 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetShopmallDataRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetShopmallDataRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetShopmallDataRspOuterClass.GetShopmallDataRsp; -public class PacketGetShopmallDataRsp extends GenshinPacket { +public class PacketGetShopmallDataRsp extends BasePacket { public PacketGetShopmallDataRsp() { super(PacketOpcodes.GetShopmallDataRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetWorldMpInfoRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetWorldMpInfoRsp.java index 1b06c2cfe..0140928a7 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetWorldMpInfoRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetWorldMpInfoRsp.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.World; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetWorldMpInfoRspOuterClass.GetWorldMpInfoRsp; -public class PacketGetWorldMpInfoRsp extends GenshinPacket { +public class PacketGetWorldMpInfoRsp extends BasePacket { public PacketGetWorldMpInfoRsp(World world) { super(PacketOpcodes.GetWorldMpInfoRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketH5ActivityIdsNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketH5ActivityIdsNotify.java index 9ce59137b..128a15133 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketH5ActivityIdsNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketH5ActivityIdsNotify.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.H5ActivityIdsNotifyOuterClass.H5ActivityIdsNotify; -public class PacketH5ActivityIdsNotify extends GenshinPacket { +public class PacketH5ActivityIdsNotify extends BasePacket { public PacketH5ActivityIdsNotify() { super(PacketOpcodes.H5ActivityIdsNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketHostPlayerNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketHostPlayerNotify.java index 9a43124e4..2542c49df 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketHostPlayerNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketHostPlayerNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.World; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.HostPlayerNotifyOuterClass.HostPlayerNotify; -public class PacketHostPlayerNotify extends GenshinPacket { +public class PacketHostPlayerNotify extends BasePacket { public PacketHostPlayerNotify(World world) { super(PacketOpcodes.HostPlayerNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketItemAddHintNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketItemAddHintNotify.java index 577e09f69..7b0275c50 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketItemAddHintNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketItemAddHintNotify.java @@ -3,15 +3,15 @@ package emu.grasscutter.server.packet.send; import java.util.Collection; import java.util.List; -import emu.grasscutter.game.inventory.GenshinItem; +import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.props.ActionReason; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ItemAddHintNotifyOuterClass.ItemAddHintNotify; -public class PacketItemAddHintNotify extends GenshinPacket { +public class PacketItemAddHintNotify extends BasePacket { - public PacketItemAddHintNotify(GenshinItem item, ActionReason reason) { + public PacketItemAddHintNotify(GameItem item, ActionReason reason) { super(PacketOpcodes.ItemAddHintNotify); ItemAddHintNotify proto = ItemAddHintNotify.newBuilder() @@ -22,13 +22,13 @@ public class PacketItemAddHintNotify extends GenshinPacket { this.setData(proto); } - public PacketItemAddHintNotify(Collection<GenshinItem> items, ActionReason reason) { + public PacketItemAddHintNotify(Collection<GameItem> items, ActionReason reason) { super(PacketOpcodes.ItemAddHintNotify); ItemAddHintNotify.Builder proto = ItemAddHintNotify.newBuilder() .setReason(reason.getValue()); - for (GenshinItem item : items) { + for (GameItem item : items) { proto.addItemList(item.toItemHintProto()); } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketLifeStateChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketLifeStateChangeNotify.java index 1f26717a3..c70d117d7 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketLifeStateChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketLifeStateChangeNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.entity.GenshinEntity; +import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.game.props.LifeState; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.LifeStateChangeNotifyOuterClass.LifeStateChangeNotify; -public class PacketLifeStateChangeNotify extends GenshinPacket { - public PacketLifeStateChangeNotify(GenshinEntity attacker, GenshinEntity target, LifeState lifeState) { +public class PacketLifeStateChangeNotify extends BasePacket { + public PacketLifeStateChangeNotify(GameEntity attacker, GameEntity target, LifeState lifeState) { super(PacketOpcodes.LifeStateChangeNotify); LifeStateChangeNotify proto = LifeStateChangeNotify.newBuilder() @@ -18,7 +18,7 @@ public class PacketLifeStateChangeNotify extends GenshinPacket { this.setData(proto); } - public PacketLifeStateChangeNotify(int attackerId, GenshinEntity target, LifeState lifeState) { + public PacketLifeStateChangeNotify(int attackerId, GameEntity target, LifeState lifeState) { super(PacketOpcodes.LifeStateChangeNotify); LifeStateChangeNotify proto = LifeStateChangeNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java index f7d50eb25..5606f398c 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -2,26 +2,26 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.Mail; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.*; import java.util.ArrayList; import java.util.List; -public class PacketMailChangeNotify extends GenshinPacket { +public class PacketMailChangeNotify extends BasePacket { - public PacketMailChangeNotify(GenshinPlayer player, Mail message) { + public PacketMailChangeNotify(Player player, Mail message) { this (player, new ArrayList<Mail>(){{add(message);}}); } - public PacketMailChangeNotify(GenshinPlayer player, List<Mail> mailList) { + public PacketMailChangeNotify(Player player, List<Mail> mailList) { this(player, mailList, null); } - public PacketMailChangeNotify(GenshinPlayer player, List<Mail> mailList, List<Integer> delMailIdList) { + public PacketMailChangeNotify(Player player, List<Mail> mailList, List<Integer> delMailIdList) { super(PacketOpcodes.MailChangeNotify); MailChangeNotifyOuterClass.MailChangeNotify.Builder proto = MailChangeNotifyOuterClass.MailChangeNotify.newBuilder(); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketNpcTalkRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketNpcTalkRsp.java index b447a19eb..f3720a60e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketNpcTalkRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketNpcTalkRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.NpcTalkRspOuterClass.NpcTalkRsp; -public class PacketNpcTalkRsp extends GenshinPacket { +public class PacketNpcTalkRsp extends BasePacket { public PacketNpcTalkRsp(int npcEntityId, int curTalkId, int entityId) { super(PacketOpcodes.NpcTalkRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketOpenStateUpdateNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketOpenStateUpdateNotify.java index c0b5fd38f..df74264ca 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketOpenStateUpdateNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketOpenStateUpdateNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.props.OpenState; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.OpenStateUpdateNotifyOuterClass.OpenStateUpdateNotify; -public class PacketOpenStateUpdateNotify extends GenshinPacket { +public class PacketOpenStateUpdateNotify extends BasePacket { public PacketOpenStateUpdateNotify() { super(PacketOpcodes.OpenStateUpdateNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPathfindingEnterSceneRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPathfindingEnterSceneRsp.java index 029b0fc7e..16caca296 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPathfindingEnterSceneRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPathfindingEnterSceneRsp.java @@ -1,9 +1,9 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; -public class PacketPathfindingEnterSceneRsp extends GenshinPacket { +public class PacketPathfindingEnterSceneRsp extends BasePacket { public PacketPathfindingEnterSceneRsp(int clientSequence) { super(PacketOpcodes.PathfindingEnterSceneRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPingRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPingRsp.java index 47151bf06..735fe855b 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPingRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPingRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PingRspOuterClass.PingRsp; -public class PacketPingRsp extends GenshinPacket { +public class PacketPingRsp extends BasePacket { public PacketPingRsp(int clientSeq, int time) { super(PacketOpcodes.PingRsp, clientSeq); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpNotify.java index 7d064aa9c..f2744df67 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerApplyEnterMpNotifyOuterClass.PlayerApplyEnterMpNotify; -public class PacketPlayerApplyEnterMpNotify extends GenshinPacket { +public class PacketPlayerApplyEnterMpNotify extends BasePacket { - public PacketPlayerApplyEnterMpNotify(GenshinPlayer srcPlayer) { + public PacketPlayerApplyEnterMpNotify(Player srcPlayer) { super(PacketOpcodes.PlayerApplyEnterMpNotify); PlayerApplyEnterMpNotify proto = PlayerApplyEnterMpNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java index e164b5d0b..7b3a87bd8 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java @@ -1,15 +1,15 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerApplyEnterMpReasonOuterClass.PlayerApplyEnterMpReason; import emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass; import emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass.PlayerApplyEnterMpResultNotify; -public class PacketPlayerApplyEnterMpResultNotify extends GenshinPacket { +public class PacketPlayerApplyEnterMpResultNotify extends BasePacket { - public PacketPlayerApplyEnterMpResultNotify(GenshinPlayer target, boolean isAgreed, PlayerApplyEnterMpResultNotifyOuterClass.PlayerApplyEnterMpResultNotify.Reason reason) { + public PacketPlayerApplyEnterMpResultNotify(Player target, boolean isAgreed, PlayerApplyEnterMpResultNotifyOuterClass.PlayerApplyEnterMpResultNotify.Reason reason) { super(PacketOpcodes.PlayerApplyEnterMpResultNotify); PlayerApplyEnterMpResultNotify proto = PlayerApplyEnterMpResultNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultRsp.java index 7fa4baa55..94fcb3150 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerApplyEnterMpResultRspOuterClass.PlayerApplyEnterMpResultRsp; -public class PacketPlayerApplyEnterMpResultRsp extends GenshinPacket { +public class PacketPlayerApplyEnterMpResultRsp extends BasePacket { public PacketPlayerApplyEnterMpResultRsp(int applyUid, boolean isAgreed) { super(PacketOpcodes.PlayerApplyEnterMpResultRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpRsp.java index 71174371d..1dce6f8b5 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerApplyEnterMpRspOuterClass.PlayerApplyEnterMpRsp; -public class PacketPlayerApplyEnterMpRsp extends GenshinPacket { +public class PacketPlayerApplyEnterMpRsp extends BasePacket { public PacketPlayerApplyEnterMpRsp(int targetUid) { super(PacketOpcodes.PlayerApplyEnterMpRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatNotify.java index 3118adf57..7624bd562 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatNotify.java @@ -1,15 +1,15 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChatInfoOuterClass.ChatInfo; import emu.grasscutter.net.proto.PlayerChatNotifyOuterClass.PlayerChatNotify; import emu.grasscutter.net.proto.SystemHintOuterClass.SystemHint; -public class PacketPlayerChatNotify extends GenshinPacket { +public class PacketPlayerChatNotify extends BasePacket { - public PacketPlayerChatNotify(GenshinPlayer sender, int channelId, String message) { + public PacketPlayerChatNotify(Player sender, int channelId, String message) { super(PacketOpcodes.PlayerChatNotify); ChatInfo info = ChatInfo.newBuilder() @@ -26,7 +26,7 @@ public class PacketPlayerChatNotify extends GenshinPacket { this.setData(proto); } - public PacketPlayerChatNotify(GenshinPlayer sender, int channelId, int emote) { + public PacketPlayerChatNotify(Player sender, int channelId, int emote) { super(PacketOpcodes.PlayerChatNotify); ChatInfo info = ChatInfo.newBuilder() @@ -43,7 +43,7 @@ public class PacketPlayerChatNotify extends GenshinPacket { this.setData(proto); } - public PacketPlayerChatNotify(GenshinPlayer sender, int channelId, ChatInfo.SystemHint systemHint) { + public PacketPlayerChatNotify(Player sender, int channelId, ChatInfo.SystemHint systemHint) { super(PacketOpcodes.PlayerChatNotify); ChatInfo info = ChatInfo.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatRsp.java index 83b51a2a2..9dbda6c88 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerChatRspOuterClass.PlayerChatRsp; -public class PacketPlayerChatRsp extends GenshinPacket { +public class PacketPlayerChatRsp extends BasePacket { public PacketPlayerChatRsp() { super(PacketOpcodes.PlayerChatRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerDataNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerDataNotify.java index c5eb76238..ae68ec934 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerDataNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerDataNotify.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerDataNotifyOuterClass.PlayerDataNotify; import emu.grasscutter.net.proto.PropValueOuterClass.PropValue; -public class PacketPlayerDataNotify extends GenshinPacket { +public class PacketPlayerDataNotify extends BasePacket { - public PacketPlayerDataNotify(GenshinPlayer player) { + public PacketPlayerDataNotify(Player player) { super(PacketOpcodes.PlayerDataNotify, 2); PlayerDataNotify.Builder p = PlayerDataNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneInfoNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneInfoNotify.java index 9668a250c..153261c1f 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneInfoNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneInfoNotify.java @@ -1,9 +1,9 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AbilityControlBlockOuterClass; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; @@ -12,9 +12,9 @@ import emu.grasscutter.net.proto.MPLevelEntityInfoOuterClass.MPLevelEntityInfo; import emu.grasscutter.net.proto.PlayerEnterSceneInfoNotifyOuterClass.PlayerEnterSceneInfoNotify; import emu.grasscutter.net.proto.TeamEnterSceneInfoOuterClass.TeamEnterSceneInfo; -public class PacketPlayerEnterSceneInfoNotify extends GenshinPacket { +public class PacketPlayerEnterSceneInfoNotify extends BasePacket { - public PacketPlayerEnterSceneInfoNotify(GenshinPlayer player) { + public PacketPlayerEnterSceneInfoNotify(Player player) { super(PacketOpcodes.PlayerEnterSceneInfoNotify); AbilitySyncStateInfo empty = AbilitySyncStateInfo.newBuilder().build(); @@ -37,7 +37,7 @@ public class PacketPlayerEnterSceneInfoNotify extends GenshinPacket { ); for (EntityAvatar avatarEntity : player.getTeamManager().getActiveTeam()) { - GenshinItem weapon = avatarEntity.getAvatar().getWeapon(); + GameItem weapon = avatarEntity.getAvatar().getWeapon(); long weaponGuid = weapon != null ? weapon.getGuid() : 0; AvatarEnterSceneInfo avatarInfo = AvatarEnterSceneInfo.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java index cd2f78a0d..c5e589af6 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java @@ -1,19 +1,19 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.GenshinPlayer.SceneLoadState; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.Player.SceneLoadState; import emu.grasscutter.game.props.EnterReason; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; import emu.grasscutter.net.proto.PlayerEnterSceneNotifyOuterClass.PlayerEnterSceneNotify; import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Utils; -public class PacketPlayerEnterSceneNotify extends GenshinPacket { +public class PacketPlayerEnterSceneNotify extends BasePacket { // Login - public PacketPlayerEnterSceneNotify(GenshinPlayer player) { + public PacketPlayerEnterSceneNotify(Player player) { super(PacketOpcodes.PlayerEnterSceneNotify); player.setSceneLoadState(SceneLoadState.LOADING); @@ -36,12 +36,12 @@ public class PacketPlayerEnterSceneNotify extends GenshinPacket { this.setData(proto); } - public PacketPlayerEnterSceneNotify(GenshinPlayer player, EnterType type, EnterReason reason, int newScene, Position newPos) { + public PacketPlayerEnterSceneNotify(Player player, EnterType type, EnterReason reason, int newScene, Position newPos) { this(player, player, type, reason, newScene, newPos); } // Teleport or go somewhere - public PacketPlayerEnterSceneNotify(GenshinPlayer player, GenshinPlayer target, EnterType type, EnterReason reason, int newScene, Position newPos) { + public PacketPlayerEnterSceneNotify(Player player, Player target, EnterType type, EnterReason reason, int newScene, Position newPos) { super(PacketOpcodes.PlayerEnterSceneNotify); player.setEnterSceneToken(Utils.randomRange(1000, 99999)); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGameTimeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGameTimeNotify.java index 1dd219e1e..08e4571f3 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGameTimeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGameTimeNotify.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.World; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerGameTimeNotifyOuterClass.PlayerGameTimeNotify; -public class PacketPlayerGameTimeNotify extends GenshinPacket { +public class PacketPlayerGameTimeNotify extends BasePacket { - public PacketPlayerGameTimeNotify(GenshinPlayer player) { + public PacketPlayerGameTimeNotify(Player player) { super(PacketOpcodes.PlayerGameTimeNotify); PlayerGameTimeNotify proto = PlayerGameTimeNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGetForceQuitBanInfoRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGetForceQuitBanInfoRsp.java index acc030817..057f9f005 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGetForceQuitBanInfoRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGetForceQuitBanInfoRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerGetForceQuitBanInfoRspOuterClass.PlayerGetForceQuitBanInfoRsp; -public class PacketPlayerGetForceQuitBanInfoRsp extends GenshinPacket { +public class PacketPlayerGetForceQuitBanInfoRsp extends BasePacket { public PacketPlayerGetForceQuitBanInfoRsp(int retcode) { super(PacketOpcodes.PlayerGetForceQuitBanInfoRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerLevelRewardUpdateNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerLevelRewardUpdateNotify.java index 6a20e288b..972e507c9 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerLevelRewardUpdateNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerLevelRewardUpdateNotify.java @@ -2,11 +2,11 @@ package emu.grasscutter.server.packet.send; import java.util.Set; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerLevelRewardUpdateNotifyOuterClass.PlayerLevelRewardUpdateNotify; -public class PacketPlayerLevelRewardUpdateNotify extends GenshinPacket { +public class PacketPlayerLevelRewardUpdateNotify extends BasePacket { public PacketPlayerLevelRewardUpdateNotify(Set<Integer> rewardedLevels) { super(PacketOpcodes.PlayerLevelRewardUpdateNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerLoginRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerLoginRsp.java index f48047633..18ff6c03e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerLoginRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerLoginRsp.java @@ -2,7 +2,7 @@ package emu.grasscutter.server.packet.send; import com.google.protobuf.ByteString; import emu.grasscutter.Grasscutter; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerLoginRspOuterClass.PlayerLoginRsp; import emu.grasscutter.net.proto.QueryCurrRegionHttpRspOuterClass; @@ -14,7 +14,7 @@ import java.io.File; import java.net.URL; import java.util.Base64; -public class PacketPlayerLoginRsp extends GenshinPacket { +public class PacketPlayerLoginRsp extends BasePacket { private static QueryCurrRegionHttpRspOuterClass.QueryCurrRegionHttpRsp regionCache; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java index 2e2812eb8..f555937d4 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java @@ -1,15 +1,15 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.props.PlayerProperty; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerPropNotifyOuterClass.PlayerPropNotify; import emu.grasscutter.utils.ProtoHelper; -public class PacketPlayerPropNotify extends GenshinPacket { +public class PacketPlayerPropNotify extends BasePacket { - public PacketPlayerPropNotify(GenshinPlayer player, PlayerProperty prop) { + public PacketPlayerPropNotify(Player player, PlayerProperty prop) { super(PacketOpcodes.PlayerPropNotify); this.buildHeader(0); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerSetPauseRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerSetPauseRsp.java index e199381f8..7f79c629a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerSetPauseRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerSetPauseRsp.java @@ -1,9 +1,9 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; -public class PacketPlayerSetPauseRsp extends GenshinPacket { +public class PacketPlayerSetPauseRsp extends BasePacket { public PacketPlayerSetPauseRsp(int clientSequence) { super(PacketOpcodes.PlayerSetPauseRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerStoreNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerStoreNotify.java index f9649d4b4..d2aded33a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerStoreNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerStoreNotify.java @@ -1,18 +1,18 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.GenshinConstants; +import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ItemOuterClass.Item; import emu.grasscutter.net.proto.PlayerStoreNotifyOuterClass.PlayerStoreNotify; import emu.grasscutter.net.proto.StoreTypeOuterClass.StoreType; -public class PacketPlayerStoreNotify extends GenshinPacket { +public class PacketPlayerStoreNotify extends BasePacket { - public PacketPlayerStoreNotify(GenshinPlayer player) { + public PacketPlayerStoreNotify(Player player) { super(PacketOpcodes.PlayerStoreNotify); this.buildHeader(2); @@ -21,7 +21,7 @@ public class PacketPlayerStoreNotify extends GenshinPacket { .setStoreType(StoreType.STORE_PACK) .setWeightLimit(Grasscutter.getConfig().getGameServerOptions().InventoryLimitAll); - for (GenshinItem item : player.getInventory()) { + for (GameItem item : player.getInventory()) { Item itemProto = item.toProto(); p.addItemList(itemProto); } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerTimeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerTimeNotify.java index ad9a869cf..536a9b891 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerTimeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerTimeNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerTimeNotifyOuterClass.PlayerTimeNotify; -public class PacketPlayerTimeNotify extends GenshinPacket { +public class PacketPlayerTimeNotify extends BasePacket { - public PacketPlayerTimeNotify(GenshinPlayer player) { + public PacketPlayerTimeNotify(Player player) { super(PacketOpcodes.PlayerTimeNotify); PlayerTimeNotify proto = PlayerTimeNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPostEnterSceneRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPostEnterSceneRsp.java index be8dede98..b5deaf417 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPostEnterSceneRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPostEnterSceneRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PostEnterSceneRspOuterClass.PostEnterSceneRsp; -public class PacketPostEnterSceneRsp extends GenshinPacket { +public class PacketPostEnterSceneRsp extends BasePacket { - public PacketPostEnterSceneRsp(GenshinPlayer player) { + public PacketPostEnterSceneRsp(Player player) { super(PacketOpcodes.PostEnterSceneRsp); PostEnterSceneRsp p = PostEnterSceneRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPrivateChatNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPrivateChatNotify.java index 60e08827b..94f389521 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPrivateChatNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPrivateChatNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChatInfoOuterClass.ChatInfo; import emu.grasscutter.net.proto.PrivateChatNotifyOuterClass.PrivateChatNotify; -public class PacketPrivateChatNotify extends GenshinPacket { +public class PacketPrivateChatNotify extends BasePacket { public PacketPrivateChatNotify(int senderId, int recvId, String message) { super(PacketOpcodes.PrivateChatNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketProudSkillChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketProudSkillChangeNotify.java index b089e5c8e..0ba63718a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketProudSkillChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketProudSkillChangeNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ProudSkillChangeNotifyOuterClass.ProudSkillChangeNotify; -public class PacketProudSkillChangeNotify extends GenshinPacket { +public class PacketProudSkillChangeNotify extends BasePacket { - public PacketProudSkillChangeNotify(GenshinAvatar avatar) { + public PacketProudSkillChangeNotify(Avatar avatar) { super(PacketOpcodes.ProudSkillChangeNotify); ProudSkillChangeNotify proto = ProudSkillChangeNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketProudSkillExtraLevelNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketProudSkillExtraLevelNotify.java index 127a0ec4f..2c8ac7867 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketProudSkillExtraLevelNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketProudSkillExtraLevelNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ProudSkillExtraLevelNotifyOuterClass.ProudSkillExtraLevelNotify; -public class PacketProudSkillExtraLevelNotify extends GenshinPacket { +public class PacketProudSkillExtraLevelNotify extends BasePacket { - public PacketProudSkillExtraLevelNotify(GenshinAvatar avatar, int talentIndex) { + public PacketProudSkillExtraLevelNotify(Avatar avatar, int talentIndex) { super(PacketOpcodes.ProudSkillExtraLevelNotify); ProudSkillExtraLevelNotify proto = ProudSkillExtraLevelNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPullPrivateChatRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPullPrivateChatRsp.java index 6d5e829c3..094a1e9c1 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPullPrivateChatRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPullPrivateChatRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PullPrivateChatRspOuterClass.PullPrivateChatRsp; -public class PacketPullPrivateChatRsp extends GenshinPacket { +public class PacketPullPrivateChatRsp extends BasePacket { public PacketPullPrivateChatRsp() { super(PacketOpcodes.PullPrivateChatRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPullRecentChatRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPullRecentChatRsp.java index 5af6999d5..c5de572a0 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPullRecentChatRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPullRecentChatRsp.java @@ -1,17 +1,17 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.Config.GameServerOptions; -import emu.grasscutter.GenshinConstants; +import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChatInfoOuterClass.ChatInfo; import emu.grasscutter.net.proto.PullRecentChatRspOuterClass.PullRecentChatRsp; import emu.grasscutter.utils.Utils; -public class PacketPullRecentChatRsp extends GenshinPacket { - public PacketPullRecentChatRsp(GenshinPlayer player) { +public class PacketPullRecentChatRsp extends BasePacket { + public PacketPullRecentChatRsp(Player player) { super(PacketOpcodes.PullRecentChatRsp); GameServerOptions serverOptions = Grasscutter.getConfig().getGameServerOptions(); @@ -20,7 +20,7 @@ public class PacketPullRecentChatRsp extends GenshinPacket { if (serverOptions.WelcomeEmotes != null && serverOptions.WelcomeEmotes.length > 0) { ChatInfo welcomeEmote = ChatInfo.newBuilder() .setTime((int) (System.currentTimeMillis() / 1000)) - .setUid(GenshinConstants.SERVER_CONSOLE_UID) + .setUid(GameConstants.SERVER_CONSOLE_UID) .setToUid(player.getUid()) .setIcon(serverOptions.WelcomeEmotes[Utils.randomRange(0, serverOptions.WelcomeEmotes.length - 1)]) .build(); @@ -31,7 +31,7 @@ public class PacketPullRecentChatRsp extends GenshinPacket { if (serverOptions.WelcomeMotd != null && serverOptions.WelcomeMotd.length() > 0) { ChatInfo welcomeMotd = ChatInfo.newBuilder() .setTime((int) (System.currentTimeMillis() / 1000)) - .setUid(GenshinConstants.SERVER_CONSOLE_UID) + .setUid(GameConstants.SERVER_CONSOLE_UID) .setToUid(player.getUid()) .setText(Grasscutter.getConfig().getGameServerOptions().WelcomeMotd) .build(); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketReliquaryUpgradeRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketReliquaryUpgradeRsp.java index 34c9c3d85..14bd76fa6 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketReliquaryUpgradeRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketReliquaryUpgradeRsp.java @@ -2,14 +2,14 @@ package emu.grasscutter.server.packet.send; import java.util.List; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ReliquaryUpgradeRspOuterClass.ReliquaryUpgradeRsp; -public class PacketReliquaryUpgradeRsp extends GenshinPacket { +public class PacketReliquaryUpgradeRsp extends BasePacket { - public PacketReliquaryUpgradeRsp(GenshinItem relic, int rate, int oldLevel, List<Integer> oldAppendPropIdList) { + public PacketReliquaryUpgradeRsp(GameItem relic, int rate, int oldLevel, List<Integer> oldAppendPropIdList) { super(PacketOpcodes.ReliquaryUpgradeRsp); ReliquaryUpgradeRsp proto = ReliquaryUpgradeRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAreaWeatherNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAreaWeatherNotify.java index 69c40dba0..58f910db2 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAreaWeatherNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAreaWeatherNotify.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.World; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneAreaWeatherNotifyOuterClass.SceneAreaWeatherNotify; -public class PacketSceneAreaWeatherNotify extends GenshinPacket { +public class PacketSceneAreaWeatherNotify extends BasePacket { - public PacketSceneAreaWeatherNotify(GenshinPlayer player) { + public PacketSceneAreaWeatherNotify(Player player) { super(PacketOpcodes.SceneAreaWeatherNotify); SceneAreaWeatherNotify proto = SceneAreaWeatherNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityAppearNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityAppearNotify.java index 10cac2453..e41e55811 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityAppearNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityAppearNotify.java @@ -2,16 +2,16 @@ package emu.grasscutter.server.packet.send; import java.util.Collection; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.entity.GenshinEntity; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.entity.GameEntity; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneEntityAppearNotifyOuterClass.SceneEntityAppearNotify; import emu.grasscutter.net.proto.VisionTypeOuterClass.VisionType; -public class PacketSceneEntityAppearNotify extends GenshinPacket { +public class PacketSceneEntityAppearNotify extends BasePacket { - public PacketSceneEntityAppearNotify(GenshinEntity entity) { + public PacketSceneEntityAppearNotify(GameEntity entity) { super(PacketOpcodes.SceneEntityAppearNotify, true); SceneEntityAppearNotify.Builder proto = SceneEntityAppearNotify.newBuilder() @@ -21,7 +21,7 @@ public class PacketSceneEntityAppearNotify extends GenshinPacket { this.setData(proto.build()); } - public PacketSceneEntityAppearNotify(GenshinEntity entity, VisionType vision, int param) { + public PacketSceneEntityAppearNotify(GameEntity entity, VisionType vision, int param) { super(PacketOpcodes.SceneEntityAppearNotify, true); SceneEntityAppearNotify.Builder proto = SceneEntityAppearNotify.newBuilder() @@ -32,11 +32,11 @@ public class PacketSceneEntityAppearNotify extends GenshinPacket { this.setData(proto.build()); } - public PacketSceneEntityAppearNotify(GenshinPlayer player) { + public PacketSceneEntityAppearNotify(Player player) { this(player.getTeamManager().getCurrentAvatarEntity()); } - public PacketSceneEntityAppearNotify(Collection<GenshinEntity> entities, VisionType visionType) { + public PacketSceneEntityAppearNotify(Collection<GameEntity> entities, VisionType visionType) { super(PacketOpcodes.SceneEntityAppearNotify, true); SceneEntityAppearNotify.Builder proto = SceneEntityAppearNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDisappearNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDisappearNotify.java index 65dd8066b..49b334666 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDisappearNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDisappearNotify.java @@ -3,15 +3,15 @@ package emu.grasscutter.server.packet.send; import java.util.Collection; import java.util.List; -import emu.grasscutter.game.entity.GenshinEntity; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.entity.GameEntity; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneEntityDisappearNotifyOuterClass.SceneEntityDisappearNotify; import emu.grasscutter.net.proto.VisionTypeOuterClass.VisionType; -public class PacketSceneEntityDisappearNotify extends GenshinPacket { +public class PacketSceneEntityDisappearNotify extends BasePacket { - public PacketSceneEntityDisappearNotify(GenshinEntity entity, VisionType disappearType) { + public PacketSceneEntityDisappearNotify(GameEntity entity, VisionType disappearType) { super(PacketOpcodes.SceneEntityDisappearNotify); SceneEntityDisappearNotify proto = SceneEntityDisappearNotify.newBuilder() @@ -22,7 +22,7 @@ public class PacketSceneEntityDisappearNotify extends GenshinPacket { this.setData(proto); } - public PacketSceneEntityDisappearNotify(Collection<GenshinEntity> entities, VisionType disappearType) { + public PacketSceneEntityDisappearNotify(Collection<GameEntity> entities, VisionType disappearType) { super(PacketOpcodes.SceneEntityDisappearNotify); SceneEntityDisappearNotify.Builder proto = SceneEntityDisappearNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java index 28ac13119..20b1f4963 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneEntityDrownRspOuterClass.SceneEntityDrownRsp; -public class PacketSceneEntityDrownRsp extends GenshinPacket { +public class PacketSceneEntityDrownRsp extends BasePacket { public PacketSceneEntityDrownRsp(int entityId) { super(PacketOpcodes.SceneEntityDrownRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityMoveNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityMoveNotify.java index c3230f4d4..8a64585dd 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityMoveNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityMoveNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EntityMoveInfoOuterClass.EntityMoveInfo; import emu.grasscutter.net.proto.SceneEntityMoveNotifyOuterClass.SceneEntityMoveNotify; -public class PacketSceneEntityMoveNotify extends GenshinPacket { +public class PacketSceneEntityMoveNotify extends BasePacket { public PacketSceneEntityMoveNotify(EntityMoveInfo moveInfo) { super(PacketOpcodes.SceneEntityMoveNotify, true); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneInitFinishRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneInitFinishRsp.java index 78661f014..3319092ca 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneInitFinishRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneInitFinishRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneInitFinishRspOuterClass.SceneInitFinishRsp; -public class PacketSceneInitFinishRsp extends GenshinPacket { +public class PacketSceneInitFinishRsp extends BasePacket { - public PacketSceneInitFinishRsp(GenshinPlayer player) { + public PacketSceneInitFinishRsp(Player player) { super(PacketOpcodes.SceneInitFinishRsp, 11); SceneInitFinishRsp p = SceneInitFinishRsp.newBuilder().setEnterSceneToken(player.getEnterSceneToken()).build(); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneKickPlayerRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneKickPlayerRsp.java index edc73d5e7..7b15b54d0 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneKickPlayerRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneKickPlayerRsp.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.RetcodeOuterClass; import emu.grasscutter.net.proto.SceneKickPlayerRspOuterClass.SceneKickPlayerRsp; -public class PacketSceneKickPlayerRsp extends GenshinPacket { +public class PacketSceneKickPlayerRsp extends BasePacket { public PacketSceneKickPlayerRsp(int targetUid) { super(PacketOpcodes.SceneKickPlayerRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerInfoNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerInfoNotify.java index 0fa20784e..027dd685a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerInfoNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerInfoNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.World; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ScenePlayerInfoNotifyOuterClass.ScenePlayerInfoNotify; import emu.grasscutter.net.proto.ScenePlayerInfoOuterClass.ScenePlayerInfo; -public class PacketScenePlayerInfoNotify extends GenshinPacket { +public class PacketScenePlayerInfoNotify extends BasePacket { public PacketScenePlayerInfoNotify(World world) { super(PacketOpcodes.ScenePlayerInfoNotify); @@ -15,7 +15,7 @@ public class PacketScenePlayerInfoNotify extends GenshinPacket { ScenePlayerInfoNotify.Builder proto = ScenePlayerInfoNotify.newBuilder(); for (int i = 0; i < world.getPlayers().size(); i++) { - GenshinPlayer p = world.getPlayers().get(i); + Player p = world.getPlayers().get(i); ScenePlayerInfo pInfo = ScenePlayerInfo.newBuilder() .setUid(p.getUid()) diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerLocationNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerLocationNotify.java index 2e9fb479d..4eef49aaf 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerLocationNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerLocationNotify.java @@ -1,20 +1,20 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.game.GenshinScene; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.game.Scene; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ScenePlayerLocationNotifyOuterClass.ScenePlayerLocationNotify; -public class PacketScenePlayerLocationNotify extends GenshinPacket { +public class PacketScenePlayerLocationNotify extends BasePacket { - public PacketScenePlayerLocationNotify(GenshinScene scene) { + public PacketScenePlayerLocationNotify(Scene scene) { super(PacketOpcodes.ScenePlayerLocationNotify); ScenePlayerLocationNotify.Builder proto = ScenePlayerLocationNotify.newBuilder() .setSceneId(scene.getId()); - for (GenshinPlayer p : scene.getPlayers()) { + for (Player p : scene.getPlayers()) { proto.addPlayerLocList(p.getPlayerLocationInfo()); } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTeamUpdateNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTeamUpdateNotify.java index ddfc4e154..809acf77a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTeamUpdateNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTeamUpdateNotify.java @@ -1,22 +1,22 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; import emu.grasscutter.net.proto.SceneTeamAvatarOuterClass.SceneTeamAvatar; import emu.grasscutter.net.proto.SceneTeamUpdateNotifyOuterClass.SceneTeamUpdateNotify; -public class PacketSceneTeamUpdateNotify extends GenshinPacket { +public class PacketSceneTeamUpdateNotify extends BasePacket { - public PacketSceneTeamUpdateNotify(GenshinPlayer player) { + public PacketSceneTeamUpdateNotify(Player player) { super(PacketOpcodes.SceneTeamUpdateNotify); SceneTeamUpdateNotify.Builder proto = SceneTeamUpdateNotify.newBuilder() .setIsInMp(player.getWorld().isMultiplayer()); - for (GenshinPlayer p : player.getWorld().getPlayers()) { + for (Player p : player.getWorld().getPlayers()) { for (EntityAvatar entityAvatar : p.getTeamManager().getActiveTeam()) { SceneTeamAvatar.Builder avatarProto = SceneTeamAvatar.newBuilder() .setPlayerUid(p.getUid()) diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java index 5af88cf26..f91725623 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneTimeNotifyOuterClass.SceneTimeNotify; -public class PacketSceneTimeNotify extends GenshinPacket { +public class PacketSceneTimeNotify extends BasePacket { - public PacketSceneTimeNotify(GenshinPlayer player) { + public PacketSceneTimeNotify(Player player) { super(PacketOpcodes.SceneTimeNotify); SceneTimeNotify proto = SceneTimeNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTransToPointRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTransToPointRsp.java index 7aea3e333..eb4448816 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTransToPointRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTransToPointRsp.java @@ -1,17 +1,17 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.custom.ScenePointEntry; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.RetcodeOuterClass; import emu.grasscutter.net.proto.SceneTransToPointRspOuterClass.SceneTransToPointRsp; import emu.grasscutter.utils.Position; -public class PacketSceneTransToPointRsp extends GenshinPacket { +public class PacketSceneTransToPointRsp extends BasePacket { - public PacketSceneTransToPointRsp(GenshinPlayer player, int pointId, int sceneId) { + public PacketSceneTransToPointRsp(Player player, int pointId, int sceneId) { super(PacketOpcodes.SceneTransToPointRsp); SceneTransToPointRsp proto = SceneTransToPointRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneUnlockInfoNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneUnlockInfoNotify.java index bd1b30685..223efc776 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneUnlockInfoNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneUnlockInfoNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneUnlockInfoNotifyOuterClass.SceneUnlockInfoNotify; import emu.grasscutter.net.proto.SceneUnlockInfoOuterClass.SceneUnlockInfo; -public class PacketSceneUnlockInfoNotify extends GenshinPacket { +public class PacketSceneUnlockInfoNotify extends BasePacket { public PacketSceneUnlockInfoNotify() { super(PacketOpcodes.SceneUnlockInfoNotify); // Rename opcode later diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketServerTimeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketServerTimeNotify.java index a58b634f1..7086873e4 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketServerTimeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketServerTimeNotify.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ServerTimeNotifyOuterClass.ServerTimeNotify; -public class PacketServerTimeNotify extends GenshinPacket { +public class PacketServerTimeNotify extends BasePacket { public PacketServerTimeNotify() { super(PacketOpcodes.ServerTimeNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetEquipLockStateRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetEquipLockStateRsp.java index 7614c449d..612cd9d07 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetEquipLockStateRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetEquipLockStateRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetEquipLockStateRspOuterClass.SetEquipLockStateRsp; -public class PacketSetEquipLockStateRsp extends GenshinPacket { +public class PacketSetEquipLockStateRsp extends BasePacket { - public PacketSetEquipLockStateRsp(GenshinItem equip) { + public PacketSetEquipLockStateRsp(GameItem equip) { super(PacketOpcodes.SetEquipLockStateRsp); this.buildHeader(0); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetNameCardRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetNameCardRsp.java index b3c77c33f..efc50f023 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetNameCardRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetNameCardRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetNameCardRspOuterClass.SetNameCardRsp; -public class PacketSetNameCardRsp extends GenshinPacket { +public class PacketSetNameCardRsp extends BasePacket { public PacketSetNameCardRsp(int nameCardId) { super(PacketOpcodes.SetNameCardRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerBirthdayRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerBirthdayRsp.java index a023ec761..d408c4484 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerBirthdayRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerBirthdayRsp.java @@ -1,12 +1,12 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetPlayerBirthdayRspOuterClass.SetPlayerBirthdayRsp; import emu.grasscutter.net.proto.SetPlayerBornDataReqOuterClass; -public class PacketSetPlayerBirthdayRsp extends GenshinPacket { +public class PacketSetPlayerBirthdayRsp extends BasePacket { public PacketSetPlayerBirthdayRsp(int retCode) { super(PacketOpcodes.SetPlayerBirthdayRsp); @@ -18,7 +18,7 @@ public class PacketSetPlayerBirthdayRsp extends GenshinPacket { this.setData(proto); } - public PacketSetPlayerBirthdayRsp(GenshinPlayer player) { + public PacketSetPlayerBirthdayRsp(Player player) { super(PacketOpcodes.SetPlayerBirthdayRsp); SetPlayerBirthdayRsp proto = SetPlayerBirthdayRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerHeadImageRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerHeadImageRsp.java index b3b17416c..934a1021f 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerHeadImageRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerHeadImageRsp.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.HeadImageOuterClass.HeadImage; import emu.grasscutter.net.proto.SetPlayerHeadImageRspOuterClass.SetPlayerHeadImageRsp; -public class PacketSetPlayerHeadImageRsp extends GenshinPacket { +public class PacketSetPlayerHeadImageRsp extends BasePacket { - public PacketSetPlayerHeadImageRsp(GenshinPlayer player) { + public PacketSetPlayerHeadImageRsp(Player player) { super(PacketOpcodes.SetPlayerHeadImageRsp); SetPlayerHeadImageRsp proto = SetPlayerHeadImageRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerNameRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerNameRsp.java index a40b5115f..331c3758e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerNameRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerNameRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetPlayerNameRspOuterClass.SetPlayerNameRsp; -public class PacketSetPlayerNameRsp extends GenshinPacket { +public class PacketSetPlayerNameRsp extends BasePacket { - public PacketSetPlayerNameRsp(GenshinPlayer player) { + public PacketSetPlayerNameRsp(Player player) { super(PacketOpcodes.SetPlayerNameRsp); SetPlayerNameRsp proto = SetPlayerNameRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerSignatureRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerSignatureRsp.java index 98ee97b68..9cc62a285 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerSignatureRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerSignatureRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetPlayerSignatureRspOuterClass.SetPlayerSignatureRsp; -public class PacketSetPlayerSignatureRsp extends GenshinPacket { +public class PacketSetPlayerSignatureRsp extends BasePacket { - public PacketSetPlayerSignatureRsp(GenshinPlayer player) { + public PacketSetPlayerSignatureRsp(Player player) { super(PacketOpcodes.SetPlayerSignatureRsp); SetPlayerSignatureRsp proto = SetPlayerSignatureRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetUpAvatarTeamRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetUpAvatarTeamRsp.java index 55e530196..744da1d47 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetUpAvatarTeamRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetUpAvatarTeamRsp.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.TeamInfo; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetUpAvatarTeamRspOuterClass.SetUpAvatarTeamRsp; -public class PacketSetUpAvatarTeamRsp extends GenshinPacket { +public class PacketSetUpAvatarTeamRsp extends BasePacket { - public PacketSetUpAvatarTeamRsp(GenshinPlayer player, int teamId, TeamInfo teamInfo) { + public PacketSetUpAvatarTeamRsp(Player player, int teamId, TeamInfo teamInfo) { super(PacketOpcodes.SetUpAvatarTeamRsp); SetUpAvatarTeamRsp.Builder proto = SetUpAvatarTeamRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketStoreItemChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketStoreItemChangeNotify.java index 20082582e..4d951c0d6 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketStoreItemChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketStoreItemChangeNotify.java @@ -2,19 +2,19 @@ package emu.grasscutter.server.packet.send; import java.util.Collection; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.StoreItemChangeNotifyOuterClass.StoreItemChangeNotify; import emu.grasscutter.net.proto.StoreTypeOuterClass.StoreType; -public class PacketStoreItemChangeNotify extends GenshinPacket { +public class PacketStoreItemChangeNotify extends BasePacket { private PacketStoreItemChangeNotify() { super(PacketOpcodes.StoreItemChangeNotify); } - public PacketStoreItemChangeNotify(GenshinItem item) { + public PacketStoreItemChangeNotify(GameItem item) { this(); StoreItemChangeNotify.Builder proto = StoreItemChangeNotify.newBuilder() @@ -24,7 +24,7 @@ public class PacketStoreItemChangeNotify extends GenshinPacket { this.setData(proto); } - public PacketStoreItemChangeNotify(Collection<GenshinItem> items) { + public PacketStoreItemChangeNotify(Collection<GameItem> items) { this(); StoreItemChangeNotify.Builder proto = StoreItemChangeNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketStoreItemDelNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketStoreItemDelNotify.java index 6bf377a44..197d4a32a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketStoreItemDelNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketStoreItemDelNotify.java @@ -2,19 +2,19 @@ package emu.grasscutter.server.packet.send; import java.util.Collection; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.StoreItemDelNotifyOuterClass.StoreItemDelNotify; import emu.grasscutter.net.proto.StoreTypeOuterClass.StoreType; -public class PacketStoreItemDelNotify extends GenshinPacket { +public class PacketStoreItemDelNotify extends BasePacket { private PacketStoreItemDelNotify() { super(PacketOpcodes.StoreItemDelNotify); } - public PacketStoreItemDelNotify(GenshinItem item) { + public PacketStoreItemDelNotify(GameItem item) { this(); StoreItemDelNotify.Builder proto = StoreItemDelNotify.newBuilder() @@ -24,7 +24,7 @@ public class PacketStoreItemDelNotify extends GenshinPacket { this.setData(proto); } - public PacketStoreItemDelNotify(Collection<GenshinItem> items) { + public PacketStoreItemDelNotify(Collection<GameItem> items) { this(); StoreItemDelNotify.Builder proto = StoreItemDelNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketStoreWeightLimitNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketStoreWeightLimitNotify.java index 590efd800..61b51948b 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketStoreWeightLimitNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketStoreWeightLimitNotify.java @@ -1,12 +1,12 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.Grasscutter; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.StoreTypeOuterClass.StoreType; import emu.grasscutter.net.proto.StoreWeightLimitNotifyOuterClass.StoreWeightLimitNotify; -public class PacketStoreWeightLimitNotify extends GenshinPacket { +public class PacketStoreWeightLimitNotify extends BasePacket { public PacketStoreWeightLimitNotify() { super(PacketOpcodes.StoreWeightLimitNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSyncScenePlayTeamEntityNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSyncScenePlayTeamEntityNotify.java index 2983adbcb..b0ab337fb 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSyncScenePlayTeamEntityNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSyncScenePlayTeamEntityNotify.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SyncScenePlayTeamEntityNotifyOuterClass.SyncScenePlayTeamEntityNotify; -public class PacketSyncScenePlayTeamEntityNotify extends GenshinPacket { +public class PacketSyncScenePlayTeamEntityNotify extends BasePacket { - public PacketSyncScenePlayTeamEntityNotify(GenshinPlayer player) { + public PacketSyncScenePlayTeamEntityNotify(Player player) { super(PacketOpcodes.SyncScenePlayTeamEntityNotify); SyncScenePlayTeamEntityNotify proto = SyncScenePlayTeamEntityNotify.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSyncTeamEntityNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSyncTeamEntityNotify.java index 2c0bae908..a35895edf 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSyncTeamEntityNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSyncTeamEntityNotify.java @@ -1,22 +1,22 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.Player; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; import emu.grasscutter.net.proto.SyncTeamEntityNotifyOuterClass.SyncTeamEntityNotify; import emu.grasscutter.net.proto.TeamEntityInfoOuterClass.TeamEntityInfo; -public class PacketSyncTeamEntityNotify extends GenshinPacket { +public class PacketSyncTeamEntityNotify extends BasePacket { - public PacketSyncTeamEntityNotify(GenshinPlayer player) { + public PacketSyncTeamEntityNotify(Player player) { super(PacketOpcodes.SyncTeamEntityNotify); SyncTeamEntityNotify.Builder proto = SyncTeamEntityNotify.newBuilder() .setSceneId(player.getSceneId()); if (player.getWorld().isMultiplayer()) { - for (GenshinPlayer p : player.getWorld().getPlayers()) { + for (Player p : player.getWorld().getPlayers()) { // Skip if same player if (player == p) { continue; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketTakePlayerLevelRewardRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketTakePlayerLevelRewardRsp.java index 5a50d0806..c944a18d8 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketTakePlayerLevelRewardRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketTakePlayerLevelRewardRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.TakePlayerLevelRewardRspOuterClass.TakePlayerLevelRewardRsp; -public class PacketTakePlayerLevelRewardRsp extends GenshinPacket { +public class PacketTakePlayerLevelRewardRsp extends BasePacket { public PacketTakePlayerLevelRewardRsp(int level, int rewardId) { super(PacketOpcodes.TakePlayerLevelRewardRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketTakeoffEquipRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketTakeoffEquipRsp.java index 7250491e2..45297b29f 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketTakeoffEquipRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketTakeoffEquipRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.TakeoffEquipRspOuterClass.TakeoffEquipRsp; -public class PacketTakeoffEquipRsp extends GenshinPacket { +public class PacketTakeoffEquipRsp extends BasePacket { public PacketTakeoffEquipRsp(long avatarGuid, int slot) { super(PacketOpcodes.TakeoffEquipRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketTowerAllDataRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketTowerAllDataRsp.java index cb0d75abb..2bd1d0171 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketTowerAllDataRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketTowerAllDataRsp.java @@ -1,12 +1,12 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp; import emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord; import emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord; -public class PacketTowerAllDataRsp extends GenshinPacket { +public class PacketTowerAllDataRsp extends BasePacket { public PacketTowerAllDataRsp() { super(PacketOpcodes.TowerAllDataRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketUnlockAvatarTalentRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketUnlockAvatarTalentRsp.java index 7c87f14e3..b980b9c89 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketUnlockAvatarTalentRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketUnlockAvatarTalentRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.UnlockAvatarTalentRspOuterClass.UnlockAvatarTalentRsp; -public class PacketUnlockAvatarTalentRsp extends GenshinPacket { +public class PacketUnlockAvatarTalentRsp extends BasePacket { - public PacketUnlockAvatarTalentRsp(GenshinAvatar avatar, int talentId) { + public PacketUnlockAvatarTalentRsp(Avatar avatar, int talentId) { super(PacketOpcodes.UnlockAvatarTalentRsp); UnlockAvatarTalentRsp proto = UnlockAvatarTalentRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketUnlockNameCardNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketUnlockNameCardNotify.java index 9bbd7d5c3..4bb2aec7a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketUnlockNameCardNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketUnlockNameCardNotify.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.UnlockNameCardNotifyOuterClass.UnlockNameCardNotify; -public class PacketUnlockNameCardNotify extends GenshinPacket { +public class PacketUnlockNameCardNotify extends BasePacket { public PacketUnlockNameCardNotify(int nameCard) { super(PacketOpcodes.UnlockNameCardNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketUseItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketUseItemRsp.java index b58638ebb..f6722bf56 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketUseItemRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketUseItemRsp.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.RetcodeOuterClass; import emu.grasscutter.net.proto.UseItemRspOuterClass.UseItemRsp; -public class PacketUseItemRsp extends GenshinPacket { +public class PacketUseItemRsp extends BasePacket { - public PacketUseItemRsp(long targetGuid, GenshinItem useItem) { + public PacketUseItemRsp(long targetGuid, GameItem useItem) { super(PacketOpcodes.UseItemRsp); UseItemRsp proto = UseItemRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponAwakenRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponAwakenRsp.java index 6ffba63fa..77a4e21ed 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponAwakenRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponAwakenRsp.java @@ -1,14 +1,14 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.avatar.GenshinAvatar; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.WeaponAwakenRspOuterClass.WeaponAwakenRsp; -public class PacketWeaponAwakenRsp extends GenshinPacket { +public class PacketWeaponAwakenRsp extends BasePacket { - public PacketWeaponAwakenRsp(GenshinAvatar avatar, GenshinItem item, GenshinItem feedWeapon, int oldRefineLevel) { + public PacketWeaponAwakenRsp(Avatar avatar, GameItem item, GameItem feedWeapon, int oldRefineLevel) { super(PacketOpcodes.WeaponAwakenRsp); WeaponAwakenRsp.Builder proto = WeaponAwakenRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponPromoteRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponPromoteRsp.java index f647bd1ff..02f02eab7 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponPromoteRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponPromoteRsp.java @@ -1,13 +1,13 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.WeaponPromoteRspOuterClass.WeaponPromoteRsp; -public class PacketWeaponPromoteRsp extends GenshinPacket { +public class PacketWeaponPromoteRsp extends BasePacket { - public PacketWeaponPromoteRsp(GenshinItem item, int oldPromoteLevel) { + public PacketWeaponPromoteRsp(GameItem item, int oldPromoteLevel) { super(PacketOpcodes.WeaponPromoteRsp); WeaponPromoteRsp proto = WeaponPromoteRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponUpgradeRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponUpgradeRsp.java index b00accb60..2e0505d0e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponUpgradeRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWeaponUpgradeRsp.java @@ -2,15 +2,15 @@ package emu.grasscutter.server.packet.send; import java.util.List; -import emu.grasscutter.game.inventory.GenshinItem; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam; import emu.grasscutter.net.proto.WeaponUpgradeRspOuterClass.WeaponUpgradeRsp; -public class PacketWeaponUpgradeRsp extends GenshinPacket { +public class PacketWeaponUpgradeRsp extends BasePacket { - public PacketWeaponUpgradeRsp(GenshinItem item, int oldLevel, List<ItemParam> leftoverOres) { + public PacketWeaponUpgradeRsp(GameItem item, int oldLevel, List<ItemParam> leftoverOres) { super(PacketOpcodes.WeaponUpgradeRsp); WeaponUpgradeRsp proto = WeaponUpgradeRsp.newBuilder() diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWearEquipRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWearEquipRsp.java index 26e48566c..090e6f7bd 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWearEquipRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWearEquipRsp.java @@ -1,10 +1,10 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.WearEquipRspOuterClass.WearEquipRsp; -public class PacketWearEquipRsp extends GenshinPacket { +public class PacketWearEquipRsp extends BasePacket { public PacketWearEquipRsp(long avatarGuid, long equipGuid) { super(PacketOpcodes.WearEquipRsp); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldDataNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldDataNotify.java index 9a5aeb88d..5019a051d 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldDataNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldDataNotify.java @@ -1,12 +1,12 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.game.World; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PropValueOuterClass.PropValue; import emu.grasscutter.net.proto.WorldDataNotifyOuterClass.WorldDataNotify; -public class PacketWorldDataNotify extends GenshinPacket { +public class PacketWorldDataNotify extends BasePacket { public PacketWorldDataNotify(World world) { super(PacketOpcodes.WorldDataNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerDieNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerDieNotify.java index f67ff0d57..4f9c839d9 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerDieNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerDieNotify.java @@ -1,11 +1,11 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerDieTypeOuterClass.PlayerDieType; import emu.grasscutter.net.proto.WorldPlayerDieNotifyOuterClass.WorldPlayerDieNotify; -public class PacketWorldPlayerDieNotify extends GenshinPacket { +public class PacketWorldPlayerDieNotify extends BasePacket { public PacketWorldPlayerDieNotify(PlayerDieType playerDieType, int killerId) { super(PacketOpcodes.WorldPlayerDieNotify); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerInfoNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerInfoNotify.java index 709a128d2..efab8be2f 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerInfoNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerInfoNotify.java @@ -1,12 +1,12 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.World; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify; -public class PacketWorldPlayerInfoNotify extends GenshinPacket { +public class PacketWorldPlayerInfoNotify extends BasePacket { public PacketWorldPlayerInfoNotify(World world) { super(PacketOpcodes.WorldPlayerInfoNotify); @@ -14,7 +14,7 @@ public class PacketWorldPlayerInfoNotify extends GenshinPacket { WorldPlayerInfoNotify.Builder proto = WorldPlayerInfoNotify.newBuilder(); for (int i = 0; i < world.getPlayers().size(); i++) { - GenshinPlayer p = world.getPlayers().get(i); + Player p = world.getPlayers().get(i); proto.addPlayerInfoList(p.getOnlinePlayerInfo()); proto.addPlayerUidList(p.getUid()); diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerLocationNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerLocationNotify.java index 9ef9cfb73..ba9f601c8 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerLocationNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerLocationNotify.java @@ -1,19 +1,19 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.World; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.WorldPlayerLocationNotifyOuterClass.WorldPlayerLocationNotify; -public class PacketWorldPlayerLocationNotify extends GenshinPacket { +public class PacketWorldPlayerLocationNotify extends BasePacket { public PacketWorldPlayerLocationNotify(World world) { super(PacketOpcodes.WorldPlayerLocationNotify); WorldPlayerLocationNotify.Builder proto = WorldPlayerLocationNotify.newBuilder(); - for (GenshinPlayer p : world.getPlayers()) { + for (Player p : world.getPlayers()) { proto.addPlayerWorldLocList(p.getWorldPlayerLocationInfo()); } diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerRTTNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerRTTNotify.java index 1154b3ee3..bff377e8a 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerRTTNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerRTTNotify.java @@ -1,20 +1,20 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.game.World; -import emu.grasscutter.net.packet.GenshinPacket; +import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerRTTInfoOuterClass.PlayerRTTInfo; import emu.grasscutter.net.proto.WorldPlayerRTTNotifyOuterClass.WorldPlayerRTTNotify; -public class PacketWorldPlayerRTTNotify extends GenshinPacket { +public class PacketWorldPlayerRTTNotify extends BasePacket { public PacketWorldPlayerRTTNotify(World world) { super(PacketOpcodes.WorldPlayerRTTNotify); WorldPlayerRTTNotify.Builder proto = WorldPlayerRTTNotify.newBuilder(); - for (GenshinPlayer player : world.getPlayers()) { + for (Player player : world.getPlayers()) { proto.addPlayerRttList( PlayerRTTInfo.newBuilder() .setUid(player.getUid()) diff --git a/src/main/java/emu/grasscutter/task/TaskMap.java b/src/main/java/emu/grasscutter/task/TaskMap.java index 3da550a67..b6c3c9520 100644 --- a/src/main/java/emu/grasscutter/task/TaskMap.java +++ b/src/main/java/emu/grasscutter/task/TaskMap.java @@ -2,7 +2,7 @@ package emu.grasscutter.task; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.Account; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import org.quartz.CronScheduleBuilder; import org.quartz.CronTrigger; diff --git a/src/main/java/emu/grasscutter/task/tasks/MoonCard.java b/src/main/java/emu/grasscutter/task/tasks/MoonCard.java index 26f7b9788..0db62b66a 100644 --- a/src/main/java/emu/grasscutter/task/tasks/MoonCard.java +++ b/src/main/java/emu/grasscutter/task/tasks/MoonCard.java @@ -1,7 +1,7 @@ package emu.grasscutter.task.tasks; import emu.grasscutter.database.DatabaseManager; -import emu.grasscutter.game.GenshinPlayer; +import emu.grasscutter.game.Player; import emu.grasscutter.task.Task; import emu.grasscutter.task.TaskHandler; @@ -15,8 +15,8 @@ import org.quartz.JobExecutionException; public final class MoonCard implements TaskHandler { @Override public void execute(JobExecutionContext context) throws JobExecutionException { - List<GenshinPlayer> players = DatabaseManager.getDatastore().find(GenshinPlayer.class).stream().toList(); - for (GenshinPlayer player : players) { + List<Player> players = DatabaseManager.getDatastore().find(Player.class).stream().toList(); + for (Player player : players) { if (player.isOnline()) { if (player.inMoonCard()) { player.getTodayMoonCard(); diff --git a/src/main/java/emu/grasscutter/tools/Tools.java b/src/main/java/emu/grasscutter/tools/Tools.java index 1afcc1ebe..d0ac55c7d 100644 --- a/src/main/java/emu/grasscutter/tools/Tools.java +++ b/src/main/java/emu/grasscutter/tools/Tools.java @@ -18,9 +18,9 @@ import java.util.stream.Collectors; import com.google.gson.reflect.TypeToken; -import emu.grasscutter.GenshinConstants; +import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; -import emu.grasscutter.data.GenshinData; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.ResourceLoader; import emu.grasscutter.data.def.AvatarData; import emu.grasscutter.data.def.ItemData; @@ -45,48 +45,48 @@ public final class Tools { DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); - writer.println("// Genshin Impact " + GenshinConstants.VERSION + " GM Handbook"); + writer.println("// Grasscutter " + GameConstants.VERSION + " GM Handbook"); writer.println("// Created " + dtf.format(now) + System.lineSeparator() + System.lineSeparator()); - list = new ArrayList<>(GenshinData.getAvatarDataMap().keySet()); + list = new ArrayList<>(GameData.getAvatarDataMap().keySet()); Collections.sort(list); writer.println("// Avatars"); for (Integer id : list) { - AvatarData data = GenshinData.getAvatarDataMap().get(id); + AvatarData data = GameData.getAvatarDataMap().get(id); writer.println(data.getId() + " : " + map.get(data.getNameTextMapHash())); } writer.println(); - list = new ArrayList<>(GenshinData.getItemDataMap().keySet()); + list = new ArrayList<>(GameData.getItemDataMap().keySet()); Collections.sort(list); writer.println("// Items"); for (Integer id : list) { - ItemData data = GenshinData.getItemDataMap().get(id); + ItemData data = GameData.getItemDataMap().get(id); writer.println(data.getId() + " : " + map.get(data.getNameTextMapHash())); } writer.println(); writer.println("// Scenes"); - list = new ArrayList<>(GenshinData.getSceneDataMap().keySet()); + list = new ArrayList<>(GameData.getSceneDataMap().keySet()); Collections.sort(list); for (Integer id : list) { - SceneData data = GenshinData.getSceneDataMap().get(id); + SceneData data = GameData.getSceneDataMap().get(id); writer.println(data.getId() + " : " + data.getScriptData()); } writer.println(); writer.println("// Monsters"); - list = new ArrayList<>(GenshinData.getMonsterDataMap().keySet()); + list = new ArrayList<>(GameData.getMonsterDataMap().keySet()); Collections.sort(list); for (Integer id : list) { - MonsterData data = GenshinData.getMonsterDataMap().get(id); + MonsterData data = GameData.getMonsterDataMap().get(id); writer.println(data.getId() + " : " + map.get(data.getNameTextMapHash())); } } diff --git a/src/main/java/emu/grasscutter/utils/Utils.java b/src/main/java/emu/grasscutter/utils/Utils.java index 16b9c344b..8129a1188 100644 --- a/src/main/java/emu/grasscutter/utils/Utils.java +++ b/src/main/java/emu/grasscutter/utils/Utils.java @@ -174,11 +174,11 @@ public final class Utils { // Check for resources folder. if(!fileExists(resourcesFolder)) { logger.info("Creating resources folder..."); - logger.info("Place a copy of 'GenshinData' in the resources folder."); + logger.info("Place a copy of 'BinOutput' and 'ExcelBinOutput' in the resources folder."); createFolder(resourcesFolder); exit = true; } - // Check for GenshinData. + // Check for BinOutput + ExcelBinOuput. if(!fileExists(resourcesFolder + "BinOutput") || !fileExists(resourcesFolder + "ExcelBinOutput")) { logger.info("Place a copy of 'BinOutput' and 'ExcelBinOutput' in the resources folder."); From 4480ce14a71e8cb49ddf7b8547753a7887cb3815 Mon Sep 17 00:00:00 2001 From: Melledy <52122272+Melledy@users.noreply.github.com> Date: Tue, 26 Apr 2022 21:24:25 -0700 Subject: [PATCH 40/40] Moved some files around --- src/main/java/emu/grasscutter/command/CommandHandler.java | 2 +- src/main/java/emu/grasscutter/command/CommandMap.java | 3 ++- .../emu/grasscutter/command/commands/AccountCommand.java | 2 +- .../grasscutter/command/commands/BroadcastCommand.java | 2 +- .../grasscutter/command/commands/ChangeSceneCommand.java | 2 +- .../emu/grasscutter/command/commands/ClearCommand.java | 2 +- .../emu/grasscutter/command/commands/DropCommand.java | 2 +- .../emu/grasscutter/command/commands/GiveAllCommand.java | 2 +- .../emu/grasscutter/command/commands/GiveCharCommand.java | 2 +- .../emu/grasscutter/command/commands/GiveCommand.java | 2 +- .../emu/grasscutter/command/commands/GodModeCommand.java | 2 +- .../emu/grasscutter/command/commands/HealCommand.java | 2 +- .../emu/grasscutter/command/commands/HelpCommand.java | 2 +- .../emu/grasscutter/command/commands/KickCommand.java | 2 +- .../emu/grasscutter/command/commands/KillAllCommand.java | 4 ++-- .../command/commands/KillCharacterCommand.java | 2 +- .../emu/grasscutter/command/commands/ListCommand.java | 2 +- .../grasscutter/command/commands/PermissionCommand.java | 2 +- .../emu/grasscutter/command/commands/PositionCommand.java | 2 +- .../emu/grasscutter/command/commands/ReloadCommand.java | 2 +- .../grasscutter/command/commands/ResetConstCommand.java | 2 +- .../emu/grasscutter/command/commands/RestartCommand.java | 2 +- .../emu/grasscutter/command/commands/SendMailCommand.java | 4 ++-- .../grasscutter/command/commands/SendMessageCommand.java | 2 +- .../command/commands/SetFetterLevelCommand.java | 2 +- .../emu/grasscutter/command/commands/SetStatsCommand.java | 2 +- .../command/commands/SetWorldLevelCommand.java | 2 +- .../emu/grasscutter/command/commands/SpawnCommand.java | 2 +- .../emu/grasscutter/command/commands/StopCommand.java | 2 +- .../emu/grasscutter/command/commands/TalentCommand.java | 2 +- .../emu/grasscutter/command/commands/TeleportCommand.java | 2 +- .../emu/grasscutter/command/commands/WeatherCommand.java | 2 +- .../java/emu/grasscutter/database/DatabaseHelper.java | 2 +- .../java/emu/grasscutter/database/DatabaseManager.java | 2 +- src/main/java/emu/grasscutter/game/CoopRequest.java | 2 ++ src/main/java/emu/grasscutter/game/avatar/Avatar.java | 2 +- .../java/emu/grasscutter/game/avatar/AvatarStorage.java | 2 +- .../java/emu/grasscutter/game/entity/EntityAvatar.java | 6 +++--- .../emu/grasscutter/game/entity/EntityClientGadget.java | 6 +++--- .../java/emu/grasscutter/game/entity/EntityGadget.java | 4 ++-- src/main/java/emu/grasscutter/game/entity/EntityItem.java | 6 +++--- .../java/emu/grasscutter/game/entity/EntityMonster.java | 4 ++-- src/main/java/emu/grasscutter/game/entity/GameEntity.java | 4 ++-- .../java/emu/grasscutter/game/friends/FriendsList.java | 2 +- .../java/emu/grasscutter/game/friends/Friendship.java | 2 +- .../java/emu/grasscutter/game/friends/PlayerProfile.java | 2 +- .../java/emu/grasscutter/game/gacha/GachaManager.java | 2 +- .../java/emu/grasscutter/game/inventory/GameItem.java | 2 +- .../java/emu/grasscutter/game/inventory/Inventory.java | 2 +- src/main/java/emu/grasscutter/game/{ => mail}/Mail.java | 3 ++- .../java/emu/grasscutter/game/managers/ChatManager.java | 2 +- .../emu/grasscutter/game/managers/InventoryManager.java | 2 +- .../emu/grasscutter/game/managers/MultiplayerManager.java | 6 +++--- .../emu/grasscutter/game/{ => player}/InvokeHandler.java | 3 ++- .../java/emu/grasscutter/game/{ => player}/Player.java | 8 ++++++-- .../java/emu/grasscutter/game/{ => player}/TeamInfo.java | 2 +- .../emu/grasscutter/game/{ => player}/TeamManager.java | 3 ++- src/main/java/emu/grasscutter/game/{ => world}/Scene.java | 5 +++-- src/main/java/emu/grasscutter/game/{ => world}/World.java | 5 +++-- src/main/java/emu/grasscutter/plugin/api/PlayerHook.java | 2 +- src/main/java/emu/grasscutter/plugin/api/ServerHook.java | 2 +- src/main/java/emu/grasscutter/server/game/GameServer.java | 4 ++-- .../java/emu/grasscutter/server/game/GameSession.java | 2 +- .../server/packet/recv/HandlerChangeMailStarNotify.java | 2 +- .../server/packet/recv/HandlerEnterSceneDoneReq.java | 2 +- .../grasscutter/server/packet/recv/HandlerMarkMapReq.java | 2 +- .../server/packet/recv/HandlerPlayerLoginReq.java | 2 +- .../server/packet/recv/HandlerReadMailNotify.java | 2 +- .../server/packet/recv/HandlerSceneInitFinishReq.java | 2 +- .../server/packet/recv/HandlerSetPlayerBornDataReq.java | 2 +- .../server/packet/send/PacketAvatarDataNotify.java | 4 ++-- .../server/packet/send/PacketAvatarTeamUpdateNotify.java | 4 ++-- .../server/packet/send/PacketChangeGameTimeRsp.java | 4 ++-- .../server/packet/send/PacketChangeMpTeamAvatarRsp.java | 4 ++-- .../grasscutter/server/packet/send/PacketDelMailRsp.java | 2 +- .../server/packet/send/PacketEnterSceneDoneRsp.java | 2 +- .../server/packet/send/PacketEnterScenePeerNotify.java | 2 +- .../server/packet/send/PacketEnterSceneReadyRsp.java | 2 +- .../server/packet/send/PacketGetAllMailRsp.java | 4 ++-- .../server/packet/send/PacketGetAllUnlockNameCardRsp.java | 2 +- .../server/packet/send/PacketGetMailItemRsp.java | 4 ++-- .../packet/send/PacketGetPlayerAskFriendListRsp.java | 2 +- .../server/packet/send/PacketGetPlayerFriendListRsp.java | 2 +- .../server/packet/send/PacketGetWorldMpInfoRsp.java | 2 +- .../server/packet/send/PacketHostPlayerNotify.java | 2 +- .../server/packet/send/PacketMailChangeNotify.java | 4 ++-- .../packet/send/PacketPlayerApplyEnterMpNotify.java | 2 +- .../packet/send/PacketPlayerApplyEnterMpResultNotify.java | 2 +- .../server/packet/send/PacketPlayerChatNotify.java | 2 +- .../server/packet/send/PacketPlayerDataNotify.java | 2 +- .../packet/send/PacketPlayerEnterSceneInfoNotify.java | 2 +- .../server/packet/send/PacketPlayerEnterSceneNotify.java | 4 ++-- .../server/packet/send/PacketPlayerGameTimeNotify.java | 4 ++-- .../server/packet/send/PacketPlayerPropNotify.java | 2 +- .../server/packet/send/PacketPlayerStoreNotify.java | 2 +- .../server/packet/send/PacketPlayerTimeNotify.java | 2 +- .../server/packet/send/PacketPostEnterSceneRsp.java | 2 +- .../server/packet/send/PacketPullRecentChatRsp.java | 2 +- .../server/packet/send/PacketSceneAreaWeatherNotify.java | 4 ++-- .../server/packet/send/PacketSceneEntityAppearNotify.java | 2 +- .../server/packet/send/PacketSceneInitFinishRsp.java | 2 +- .../server/packet/send/PacketScenePlayerInfoNotify.java | 4 ++-- .../packet/send/PacketScenePlayerLocationNotify.java | 4 ++-- .../server/packet/send/PacketSceneTeamUpdateNotify.java | 2 +- .../server/packet/send/PacketSceneTimeNotify.java | 2 +- .../server/packet/send/PacketSceneTransToPointRsp.java | 2 +- .../server/packet/send/PacketSetPlayerBirthdayRsp.java | 2 +- .../server/packet/send/PacketSetPlayerHeadImageRsp.java | 2 +- .../server/packet/send/PacketSetPlayerNameRsp.java | 2 +- .../server/packet/send/PacketSetPlayerSignatureRsp.java | 2 +- .../server/packet/send/PacketSetUpAvatarTeamRsp.java | 4 ++-- .../packet/send/PacketSyncScenePlayTeamEntityNotify.java | 2 +- .../server/packet/send/PacketSyncTeamEntityNotify.java | 2 +- .../server/packet/send/PacketWorldDataNotify.java | 2 +- .../server/packet/send/PacketWorldPlayerInfoNotify.java | 4 ++-- .../packet/send/PacketWorldPlayerLocationNotify.java | 4 ++-- .../server/packet/send/PacketWorldPlayerRTTNotify.java | 4 ++-- src/main/java/emu/grasscutter/task/TaskMap.java | 2 +- src/main/java/emu/grasscutter/task/tasks/MoonCard.java | 2 +- 119 files changed, 163 insertions(+), 151 deletions(-) rename src/main/java/emu/grasscutter/game/{ => mail}/Mail.java (97%) rename src/main/java/emu/grasscutter/game/{ => player}/InvokeHandler.java (98%) rename src/main/java/emu/grasscutter/game/{ => player}/Player.java (99%) rename src/main/java/emu/grasscutter/game/{ => player}/TeamInfo.java (97%) rename src/main/java/emu/grasscutter/game/{ => player}/TeamManager.java (99%) rename src/main/java/emu/grasscutter/game/{ => world}/Scene.java (99%) rename src/main/java/emu/grasscutter/game/{ => world}/World.java (98%) diff --git a/src/main/java/emu/grasscutter/command/CommandHandler.java b/src/main/java/emu/grasscutter/command/CommandHandler.java index 7835e8b0f..9fc7d20c1 100644 --- a/src/main/java/emu/grasscutter/command/CommandHandler.java +++ b/src/main/java/emu/grasscutter/command/CommandHandler.java @@ -1,7 +1,7 @@ package emu.grasscutter.command; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/CommandMap.java b/src/main/java/emu/grasscutter/command/CommandMap.java index b1e7cdbb6..c46164adc 100644 --- a/src/main/java/emu/grasscutter/command/CommandMap.java +++ b/src/main/java/emu/grasscutter/command/CommandMap.java @@ -2,7 +2,8 @@ package emu.grasscutter.command; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.Account; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; + import org.reflections.Reflections; import java.util.*; diff --git a/src/main/java/emu/grasscutter/command/commands/AccountCommand.java b/src/main/java/emu/grasscutter/command/commands/AccountCommand.java index 42ae06dff..68da1569a 100644 --- a/src/main/java/emu/grasscutter/command/commands/AccountCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/AccountCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/BroadcastCommand.java b/src/main/java/emu/grasscutter/command/commands/BroadcastCommand.java index d17e972b7..9ef0b49a5 100644 --- a/src/main/java/emu/grasscutter/command/commands/BroadcastCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/BroadcastCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/ChangeSceneCommand.java b/src/main/java/emu/grasscutter/command/commands/ChangeSceneCommand.java index 0b3ceab59..30ef090d5 100644 --- a/src/main/java/emu/grasscutter/command/commands/ChangeSceneCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ChangeSceneCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/ClearCommand.java b/src/main/java/emu/grasscutter/command/commands/ClearCommand.java index 1d1312657..8aa7d7333 100644 --- a/src/main/java/emu/grasscutter/command/commands/ClearCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ClearCommand.java @@ -3,9 +3,9 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; import emu.grasscutter.game.inventory.Inventory; import emu.grasscutter.game.inventory.ItemType; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/DropCommand.java b/src/main/java/emu/grasscutter/command/commands/DropCommand.java index bcc127afb..38a5fba4a 100644 --- a/src/main/java/emu/grasscutter/command/commands/DropCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/DropCommand.java @@ -4,8 +4,8 @@ import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.ItemData; -import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityItem; +import emu.grasscutter.game.player.Player; import emu.grasscutter.utils.Position; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/GiveAllCommand.java b/src/main/java/emu/grasscutter/command/commands/GiveAllCommand.java index 66d743fdb..c81578b43 100644 --- a/src/main/java/emu/grasscutter/command/commands/GiveAllCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GiveAllCommand.java @@ -6,10 +6,10 @@ import emu.grasscutter.command.CommandHandler; import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.AvatarData; import emu.grasscutter.data.def.ItemData; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.inventory.ItemType; +import emu.grasscutter.game.player.Player; import java.util.*; diff --git a/src/main/java/emu/grasscutter/command/commands/GiveCharCommand.java b/src/main/java/emu/grasscutter/command/commands/GiveCharCommand.java index 99455feaf..a15a9b95c 100644 --- a/src/main/java/emu/grasscutter/command/commands/GiveCharCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GiveCharCommand.java @@ -5,8 +5,8 @@ import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.AvatarData; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/GiveCommand.java b/src/main/java/emu/grasscutter/command/commands/GiveCommand.java index 796c7d154..4c9052a3e 100644 --- a/src/main/java/emu/grasscutter/command/commands/GiveCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GiveCommand.java @@ -5,8 +5,8 @@ import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.ItemData; -import emu.grasscutter.game.Player; import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.server.packet.send.PacketItemAddHintNotify; diff --git a/src/main/java/emu/grasscutter/command/commands/GodModeCommand.java b/src/main/java/emu/grasscutter/command/commands/GodModeCommand.java index c1ac52c87..9229b5845 100644 --- a/src/main/java/emu/grasscutter/command/commands/GodModeCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GodModeCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/HealCommand.java b/src/main/java/emu/grasscutter/command/commands/HealCommand.java index 8aed7dc93..6c58fa5c3 100644 --- a/src/main/java/emu/grasscutter/command/commands/HealCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/HealCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.server.packet.send.PacketAvatarFightPropUpdateNotify; import emu.grasscutter.server.packet.send.PacketAvatarLifeStateChangeNotify; diff --git a/src/main/java/emu/grasscutter/command/commands/HelpCommand.java b/src/main/java/emu/grasscutter/command/commands/HelpCommand.java index 890795c46..d8c5b610e 100644 --- a/src/main/java/emu/grasscutter/command/commands/HelpCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/HelpCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.command.CommandMap; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.*; diff --git a/src/main/java/emu/grasscutter/command/commands/KickCommand.java b/src/main/java/emu/grasscutter/command/commands/KickCommand.java index 41e28ca30..60fb02b5f 100644 --- a/src/main/java/emu/grasscutter/command/commands/KickCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/KickCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java b/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java index 5da4d4605..3e2466686 100644 --- a/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java @@ -3,9 +3,9 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Scene; import emu.grasscutter.game.entity.EntityMonster; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.world.Scene; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java b/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java index a1f8944ea..2d95683bb 100644 --- a/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java @@ -3,8 +3,8 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify; diff --git a/src/main/java/emu/grasscutter/command/commands/ListCommand.java b/src/main/java/emu/grasscutter/command/commands/ListCommand.java index 23a042bf0..99abd7ac7 100644 --- a/src/main/java/emu/grasscutter/command/commands/ListCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ListCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; import java.util.Map; diff --git a/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java b/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java index 37d2d97d1..d048041de 100644 --- a/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java @@ -4,7 +4,7 @@ import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.game.Account; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/PositionCommand.java b/src/main/java/emu/grasscutter/command/commands/PositionCommand.java index 8330aba0a..434250171 100644 --- a/src/main/java/emu/grasscutter/command/commands/PositionCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/PositionCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java b/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java index 93264b168..26dbb903b 100644 --- a/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java b/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java index 609ed21cc..657d76718 100644 --- a/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java @@ -2,9 +2,9 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityAvatar; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/RestartCommand.java b/src/main/java/emu/grasscutter/command/commands/RestartCommand.java index 377e37e20..0b73ba861 100644 --- a/src/main/java/emu/grasscutter/command/commands/RestartCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/RestartCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java index 412af4734..35cedab9a 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -4,8 +4,8 @@ import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Mail; +import emu.grasscutter.game.mail.Mail; +import emu.grasscutter.game.player.Player; import emu.grasscutter.server.packet.send.PacketMailChangeNotify; import java.time.Instant; diff --git a/src/main/java/emu/grasscutter/command/commands/SendMessageCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMessageCommand.java index a74908a93..a86e1a218 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMessageCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMessageCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java b/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java index fd9e31561..1d7eefc10 100644 --- a/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java @@ -5,8 +5,8 @@ import java.util.List; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.data.GameData; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.game.player.Player; import emu.grasscutter.server.packet.send.PacketAvatarFetterDataNotify; @Command(label = "setfetterlevel", usage = "setfetterlevel <level>", diff --git a/src/main/java/emu/grasscutter/command/commands/SetStatsCommand.java b/src/main/java/emu/grasscutter/command/commands/SetStatsCommand.java index d923e28e3..6e18573bb 100644 --- a/src/main/java/emu/grasscutter/command/commands/SetStatsCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SetStatsCommand.java @@ -2,8 +2,8 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify; diff --git a/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java b/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java index 175bf752f..0ffd015f8 100644 --- a/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SetWorldLevelCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.PlayerProperty; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java b/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java index d0aacd805..efb4b231b 100644 --- a/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java @@ -4,8 +4,8 @@ import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.MonsterData; -import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityMonster; +import emu.grasscutter.game.player.Player; import emu.grasscutter.utils.Position; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/StopCommand.java b/src/main/java/emu/grasscutter/command/commands/StopCommand.java index 23b7fca4f..96a81207d 100644 --- a/src/main/java/emu/grasscutter/command/commands/StopCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/StopCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/TalentCommand.java b/src/main/java/emu/grasscutter/command/commands/TalentCommand.java index 2d12fd19f..f0e779700 100644 --- a/src/main/java/emu/grasscutter/command/commands/TalentCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/TalentCommand.java @@ -3,9 +3,9 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.data.def.AvatarSkillDepotData; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityAvatar; +import emu.grasscutter.game.player.Player; import emu.grasscutter.server.packet.send.PacketAvatarSkillChangeNotify; import emu.grasscutter.server.packet.send.PacketAvatarSkillUpgradeRsp; diff --git a/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java b/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java index ff2f208c3..c478118e3 100644 --- a/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.utils.Position; import java.util.List; diff --git a/src/main/java/emu/grasscutter/command/commands/WeatherCommand.java b/src/main/java/emu/grasscutter/command/commands/WeatherCommand.java index 11f863f87..6fd3c453b 100644 --- a/src/main/java/emu/grasscutter/command/commands/WeatherCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/WeatherCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.ClimateType; import emu.grasscutter.server.packet.send.PacketSceneAreaWeatherNotify; diff --git a/src/main/java/emu/grasscutter/database/DatabaseHelper.java b/src/main/java/emu/grasscutter/database/DatabaseHelper.java index a09dcee19..c1800c145 100644 --- a/src/main/java/emu/grasscutter/database/DatabaseHelper.java +++ b/src/main/java/emu/grasscutter/database/DatabaseHelper.java @@ -6,10 +6,10 @@ import com.mongodb.client.result.DeleteResult; import dev.morphia.query.experimental.filters.Filters; import emu.grasscutter.GameConstants; import emu.grasscutter.game.Account; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.friends.Friendship; import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.game.player.Player; public final class DatabaseHelper { public static Account createAccount(String username) { diff --git a/src/main/java/emu/grasscutter/database/DatabaseManager.java b/src/main/java/emu/grasscutter/database/DatabaseManager.java index 78c32c595..68e1f5e87 100644 --- a/src/main/java/emu/grasscutter/database/DatabaseManager.java +++ b/src/main/java/emu/grasscutter/database/DatabaseManager.java @@ -13,10 +13,10 @@ import dev.morphia.mapping.MapperOptions; import dev.morphia.query.experimental.filters.Filters; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.Account; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.friends.Friendship; import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.game.player.Player; public final class DatabaseManager { diff --git a/src/main/java/emu/grasscutter/game/CoopRequest.java b/src/main/java/emu/grasscutter/game/CoopRequest.java index 9e827325d..80a004ca7 100644 --- a/src/main/java/emu/grasscutter/game/CoopRequest.java +++ b/src/main/java/emu/grasscutter/game/CoopRequest.java @@ -1,5 +1,7 @@ package emu.grasscutter.game; +import emu.grasscutter.game.player.Player; + public class CoopRequest { private final Player requester; private final long requestTime; diff --git a/src/main/java/emu/grasscutter/game/avatar/Avatar.java b/src/main/java/emu/grasscutter/game/avatar/Avatar.java index 642f5b139..d16b9a2fa 100644 --- a/src/main/java/emu/grasscutter/game/avatar/Avatar.java +++ b/src/main/java/emu/grasscutter/game/avatar/Avatar.java @@ -35,10 +35,10 @@ import emu.grasscutter.data.def.WeaponPromoteData; import emu.grasscutter.data.def.ItemData.WeaponProperty; import emu.grasscutter.data.def.ProudSkillData; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.inventory.EquipType; import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.ElementType; import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.FetterState; diff --git a/src/main/java/emu/grasscutter/game/avatar/AvatarStorage.java b/src/main/java/emu/grasscutter/game/avatar/AvatarStorage.java index 2e55dc8b2..99ccda173 100644 --- a/src/main/java/emu/grasscutter/game/avatar/AvatarStorage.java +++ b/src/main/java/emu/grasscutter/game/avatar/AvatarStorage.java @@ -6,9 +6,9 @@ import java.util.List; import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.AvatarData; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.game.player.Player; import emu.grasscutter.server.packet.send.PacketAvatarChangeCostumeNotify; import emu.grasscutter.server.packet.send.PacketAvatarFlycloakChangeNotify; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java b/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java index a69d91fa0..a21e14360 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java @@ -4,15 +4,15 @@ import emu.grasscutter.GameConstants; import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.AvatarData; import emu.grasscutter.data.def.AvatarSkillDepotData; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Scene; -import emu.grasscutter.game.World; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.inventory.EquipType; import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.PlayerProperty; +import emu.grasscutter.game.world.Scene; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.proto.AbilityControlBlockOuterClass.AbilityControlBlock; import emu.grasscutter.net.proto.AbilityEmbryoOuterClass.AbilityEmbryo; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java b/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java index d51e45e5e..464789426 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java @@ -1,9 +1,9 @@ package emu.grasscutter.game.entity; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Scene; -import emu.grasscutter.game.World; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.PlayerProperty; +import emu.grasscutter.game.world.Scene; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; import emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair; import emu.grasscutter.net.proto.ClientGadgetInfoOuterClass; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityGadget.java b/src/main/java/emu/grasscutter/game/entity/EntityGadget.java index ec3279761..c09504c21 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityGadget.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityGadget.java @@ -1,7 +1,7 @@ package emu.grasscutter.game.entity; -import emu.grasscutter.game.Scene; -import emu.grasscutter.game.World; +import emu.grasscutter.game.world.Scene; +import emu.grasscutter.game.world.World; public abstract class EntityGadget extends GameEntity { diff --git a/src/main/java/emu/grasscutter/game/entity/EntityItem.java b/src/main/java/emu/grasscutter/game/entity/EntityItem.java index a690d106b..5b1e05fc7 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityItem.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityItem.java @@ -1,12 +1,12 @@ package emu.grasscutter.game.entity; import emu.grasscutter.data.def.ItemData; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Scene; -import emu.grasscutter.game.World; import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.PlayerProperty; +import emu.grasscutter.game.world.Scene; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; import emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair; import emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityMonster.java b/src/main/java/emu/grasscutter/game/entity/EntityMonster.java index c3ee16b3f..b9f212fe1 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityMonster.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityMonster.java @@ -4,11 +4,11 @@ import emu.grasscutter.data.GameData; import emu.grasscutter.data.common.PropGrowCurve; import emu.grasscutter.data.def.MonsterCurveData; import emu.grasscutter.data.def.MonsterData; -import emu.grasscutter.game.Scene; -import emu.grasscutter.game.World; import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.PlayerProperty; +import emu.grasscutter.game.world.Scene; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; import emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair; import emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo; diff --git a/src/main/java/emu/grasscutter/game/entity/GameEntity.java b/src/main/java/emu/grasscutter/game/entity/GameEntity.java index b4fe2d14f..aef3378b6 100644 --- a/src/main/java/emu/grasscutter/game/entity/GameEntity.java +++ b/src/main/java/emu/grasscutter/game/entity/GameEntity.java @@ -1,10 +1,10 @@ package emu.grasscutter.game.entity; -import emu.grasscutter.game.Scene; -import emu.grasscutter.game.World; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; +import emu.grasscutter.game.world.Scene; import emu.grasscutter.game.world.SpawnDataEntry; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo; import emu.grasscutter.net.proto.MotionStateOuterClass.MotionState; import emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo; diff --git a/src/main/java/emu/grasscutter/game/friends/FriendsList.java b/src/main/java/emu/grasscutter/game/friends/FriendsList.java index 2d6f3105f..de73ecb30 100644 --- a/src/main/java/emu/grasscutter/game/friends/FriendsList.java +++ b/src/main/java/emu/grasscutter/game/friends/FriendsList.java @@ -3,7 +3,7 @@ package emu.grasscutter.game.friends; import java.util.List; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.proto.DealAddFriendResultTypeOuterClass.DealAddFriendResultType; import emu.grasscutter.server.packet.send.PacketAskAddFriendNotify; import emu.grasscutter.server.packet.send.PacketAskAddFriendRsp; diff --git a/src/main/java/emu/grasscutter/game/friends/Friendship.java b/src/main/java/emu/grasscutter/game/friends/Friendship.java index c5af51dce..ef0bed109 100644 --- a/src/main/java/emu/grasscutter/game/friends/Friendship.java +++ b/src/main/java/emu/grasscutter/game/friends/Friendship.java @@ -5,7 +5,7 @@ import org.bson.types.ObjectId; import dev.morphia.annotations.*; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.proto.FriendBriefOuterClass.FriendBrief; import emu.grasscutter.net.proto.FriendOnlineStateOuterClass.FriendOnlineState; import emu.grasscutter.net.proto.HeadImageOuterClass.HeadImage; diff --git a/src/main/java/emu/grasscutter/game/friends/PlayerProfile.java b/src/main/java/emu/grasscutter/game/friends/PlayerProfile.java index b8f3f445a..8b39ec0f4 100644 --- a/src/main/java/emu/grasscutter/game/friends/PlayerProfile.java +++ b/src/main/java/emu/grasscutter/game/friends/PlayerProfile.java @@ -1,7 +1,7 @@ package emu.grasscutter.game.friends; import dev.morphia.annotations.*; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.utils.Utils; @Entity diff --git a/src/main/java/emu/grasscutter/game/gacha/GachaManager.java b/src/main/java/emu/grasscutter/game/gacha/GachaManager.java index 2a623f049..fa26569e4 100644 --- a/src/main/java/emu/grasscutter/game/gacha/GachaManager.java +++ b/src/main/java/emu/grasscutter/game/gacha/GachaManager.java @@ -14,11 +14,11 @@ import com.sun.nio.file.SensitivityWatchEventModifier; import emu.grasscutter.Grasscutter; import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.ItemData; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.inventory.ItemType; import emu.grasscutter.game.inventory.MaterialType; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.proto.GachaItemOuterClass.GachaItem; import emu.grasscutter.net.proto.GachaTransferItemOuterClass.GachaTransferItem; import emu.grasscutter.net.proto.GetGachaInfoRspOuterClass.GetGachaInfoRsp; diff --git a/src/main/java/emu/grasscutter/game/inventory/GameItem.java b/src/main/java/emu/grasscutter/game/inventory/GameItem.java index ed0221260..8f3bef7f2 100644 --- a/src/main/java/emu/grasscutter/game/inventory/GameItem.java +++ b/src/main/java/emu/grasscutter/game/inventory/GameItem.java @@ -19,7 +19,7 @@ import emu.grasscutter.data.def.ItemData; import emu.grasscutter.data.def.ReliquaryAffixData; import emu.grasscutter.data.def.ReliquaryMainPropData; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; import emu.grasscutter.net.proto.EquipOuterClass.Equip; diff --git a/src/main/java/emu/grasscutter/game/inventory/Inventory.java b/src/main/java/emu/grasscutter/game/inventory/Inventory.java index c8bddd439..bb8dfad46 100644 --- a/src/main/java/emu/grasscutter/game/inventory/Inventory.java +++ b/src/main/java/emu/grasscutter/game/inventory/Inventory.java @@ -13,10 +13,10 @@ import emu.grasscutter.data.def.AvatarData; import emu.grasscutter.data.def.AvatarFlycloakData; import emu.grasscutter.data.def.ItemData; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.AvatarStorage; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityAvatar; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam; import emu.grasscutter.server.packet.send.PacketAvatarEquipChangeNotify; diff --git a/src/main/java/emu/grasscutter/game/Mail.java b/src/main/java/emu/grasscutter/game/mail/Mail.java similarity index 97% rename from src/main/java/emu/grasscutter/game/Mail.java rename to src/main/java/emu/grasscutter/game/mail/Mail.java index e17281c21..19fd79adc 100644 --- a/src/main/java/emu/grasscutter/game/Mail.java +++ b/src/main/java/emu/grasscutter/game/mail/Mail.java @@ -1,6 +1,7 @@ -package emu.grasscutter.game; +package emu.grasscutter.game.mail; import dev.morphia.annotations.Entity; +import emu.grasscutter.game.player.Player; import java.time.Instant; import java.util.ArrayList; diff --git a/src/main/java/emu/grasscutter/game/managers/ChatManager.java b/src/main/java/emu/grasscutter/game/managers/ChatManager.java index 2e2d02184..ababbf2e1 100644 --- a/src/main/java/emu/grasscutter/game/managers/ChatManager.java +++ b/src/main/java/emu/grasscutter/game/managers/ChatManager.java @@ -1,7 +1,7 @@ package emu.grasscutter.game.managers; import emu.grasscutter.command.CommandMap; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.server.game.GameServer; import emu.grasscutter.server.packet.send.PacketPlayerChatNotify; diff --git a/src/main/java/emu/grasscutter/game/managers/InventoryManager.java b/src/main/java/emu/grasscutter/game/managers/InventoryManager.java index 6db9b5fe3..904d2cbdd 100644 --- a/src/main/java/emu/grasscutter/game/managers/InventoryManager.java +++ b/src/main/java/emu/grasscutter/game/managers/InventoryManager.java @@ -15,11 +15,11 @@ import emu.grasscutter.data.def.WeaponPromoteData; import emu.grasscutter.data.def.AvatarSkillDepotData.InherentProudSkillOpens; import emu.grasscutter.data.def.AvatarTalentData; import emu.grasscutter.data.def.ProudSkillData; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.inventory.ItemType; import emu.grasscutter.game.inventory.MaterialType; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam; import emu.grasscutter.net.proto.MaterialInfoOuterClass.MaterialInfo; import emu.grasscutter.server.game.GameServer; diff --git a/src/main/java/emu/grasscutter/game/managers/MultiplayerManager.java b/src/main/java/emu/grasscutter/game/managers/MultiplayerManager.java index 4d048148f..247b3356d 100644 --- a/src/main/java/emu/grasscutter/game/managers/MultiplayerManager.java +++ b/src/main/java/emu/grasscutter/game/managers/MultiplayerManager.java @@ -1,12 +1,12 @@ package emu.grasscutter.game.managers; import emu.grasscutter.game.CoopRequest; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Player.SceneLoadState; import emu.grasscutter.game.props.EnterReason; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; import emu.grasscutter.net.proto.PlayerApplyEnterMpReasonOuterClass.PlayerApplyEnterMpReason; -import emu.grasscutter.game.World; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.player.Player.SceneLoadState; import emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass; import emu.grasscutter.server.game.GameServer; import emu.grasscutter.server.packet.send.PacketPlayerApplyEnterMpNotify; diff --git a/src/main/java/emu/grasscutter/game/InvokeHandler.java b/src/main/java/emu/grasscutter/game/player/InvokeHandler.java similarity index 98% rename from src/main/java/emu/grasscutter/game/InvokeHandler.java rename to src/main/java/emu/grasscutter/game/player/InvokeHandler.java index 7c24e149c..edfcbfc83 100644 --- a/src/main/java/emu/grasscutter/game/InvokeHandler.java +++ b/src/main/java/emu/grasscutter/game/player/InvokeHandler.java @@ -1,7 +1,8 @@ -package emu.grasscutter.game; +package emu.grasscutter.game.player; import java.util.ArrayList; import java.util.List; + import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.proto.ForwardTypeOuterClass.ForwardType; diff --git a/src/main/java/emu/grasscutter/game/Player.java b/src/main/java/emu/grasscutter/game/player/Player.java similarity index 99% rename from src/main/java/emu/grasscutter/game/Player.java rename to src/main/java/emu/grasscutter/game/player/Player.java index 36ce3f430..5970c3f13 100644 --- a/src/main/java/emu/grasscutter/game/Player.java +++ b/src/main/java/emu/grasscutter/game/player/Player.java @@ -1,4 +1,4 @@ -package emu.grasscutter.game; +package emu.grasscutter.game.player; import java.time.Instant; import java.util.*; @@ -12,6 +12,8 @@ import emu.grasscutter.data.def.PlayerLevelData; import emu.grasscutter.database.DatabaseHelper; import emu.grasscutter.game.avatar.AvatarProfileData; import emu.grasscutter.game.avatar.AvatarStorage; +import emu.grasscutter.game.Account; +import emu.grasscutter.game.CoopRequest; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityItem; import emu.grasscutter.game.entity.GameEntity; @@ -20,9 +22,11 @@ import emu.grasscutter.game.friends.PlayerProfile; import emu.grasscutter.game.gacha.PlayerGachaInfo; import emu.grasscutter.game.inventory.GameItem; import emu.grasscutter.game.inventory.Inventory; -import emu.grasscutter.game.player.PlayerBirthday; +import emu.grasscutter.game.mail.Mail; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.PlayerProperty; +import emu.grasscutter.game.world.Scene; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.proto.AbilityInvokeEntryOuterClass.AbilityInvokeEntry; import emu.grasscutter.net.proto.CombatInvokeEntryOuterClass.CombatInvokeEntry; diff --git a/src/main/java/emu/grasscutter/game/TeamInfo.java b/src/main/java/emu/grasscutter/game/player/TeamInfo.java similarity index 97% rename from src/main/java/emu/grasscutter/game/TeamInfo.java rename to src/main/java/emu/grasscutter/game/player/TeamInfo.java index 9ec073ff5..5c66f1aaa 100644 --- a/src/main/java/emu/grasscutter/game/TeamInfo.java +++ b/src/main/java/emu/grasscutter/game/player/TeamInfo.java @@ -1,4 +1,4 @@ -package emu.grasscutter.game; +package emu.grasscutter.game.player; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/emu/grasscutter/game/TeamManager.java b/src/main/java/emu/grasscutter/game/player/TeamManager.java similarity index 99% rename from src/main/java/emu/grasscutter/game/TeamManager.java rename to src/main/java/emu/grasscutter/game/player/TeamManager.java index 30b909fe9..b942604f5 100644 --- a/src/main/java/emu/grasscutter/game/TeamManager.java +++ b/src/main/java/emu/grasscutter/game/player/TeamManager.java @@ -1,4 +1,4 @@ -package emu.grasscutter.game; +package emu.grasscutter.game.player; import java.util.ArrayList; import java.util.HashMap; @@ -19,6 +19,7 @@ import emu.grasscutter.game.entity.EntityGadget; import emu.grasscutter.game.props.ElementType; import emu.grasscutter.game.props.EnterReason; import emu.grasscutter.game.props.FightProperty; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; diff --git a/src/main/java/emu/grasscutter/game/Scene.java b/src/main/java/emu/grasscutter/game/world/Scene.java similarity index 99% rename from src/main/java/emu/grasscutter/game/Scene.java rename to src/main/java/emu/grasscutter/game/world/Scene.java index 5601f1e49..d9b01e0ef 100644 --- a/src/main/java/emu/grasscutter/game/Scene.java +++ b/src/main/java/emu/grasscutter/game/world/Scene.java @@ -1,4 +1,4 @@ -package emu.grasscutter.game; +package emu.grasscutter.game.world; import java.util.ArrayList; import java.util.Collection; @@ -23,11 +23,12 @@ import emu.grasscutter.game.entity.EntityClientGadget; import emu.grasscutter.game.entity.EntityGadget; import emu.grasscutter.game.entity.EntityMonster; import emu.grasscutter.game.entity.GameEntity; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.player.TeamInfo; import emu.grasscutter.game.props.ClimateType; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; import emu.grasscutter.game.props.SceneType; -import emu.grasscutter.game.world.SpawnDataEntry; import emu.grasscutter.game.world.SpawnDataEntry.SpawnGroupEntry; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.proto.AttackResultOuterClass.AttackResult; diff --git a/src/main/java/emu/grasscutter/game/World.java b/src/main/java/emu/grasscutter/game/world/World.java similarity index 98% rename from src/main/java/emu/grasscutter/game/World.java rename to src/main/java/emu/grasscutter/game/world/World.java index 4f47db42a..292e63d32 100644 --- a/src/main/java/emu/grasscutter/game/World.java +++ b/src/main/java/emu/grasscutter/game/world/World.java @@ -1,4 +1,4 @@ -package emu.grasscutter.game; +package emu.grasscutter.game.world; import java.util.ArrayList; import java.util.Collection; @@ -9,6 +9,8 @@ import java.util.List; import java.util.stream.Collectors; import emu.grasscutter.game.entity.GameEntity; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.player.Player.SceneLoadState; import emu.grasscutter.game.props.ClimateType; import emu.grasscutter.game.props.EnterReason; import emu.grasscutter.game.props.EntityIdType; @@ -16,7 +18,6 @@ import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.props.LifeState; import emu.grasscutter.data.GameData; import emu.grasscutter.data.def.SceneData; -import emu.grasscutter.game.Player.SceneLoadState; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.entity.EntityClientGadget; import emu.grasscutter.game.entity.EntityGadget; diff --git a/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java b/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java index ff124d788..3760ea42c 100644 --- a/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java +++ b/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java @@ -1,8 +1,8 @@ package emu.grasscutter.plugin.api; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.entity.EntityAvatar; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.EnterReason; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.net.packet.BasePacket; diff --git a/src/main/java/emu/grasscutter/plugin/api/ServerHook.java b/src/main/java/emu/grasscutter/plugin/api/ServerHook.java index 022e0699f..cbca97b8f 100644 --- a/src/main/java/emu/grasscutter/plugin/api/ServerHook.java +++ b/src/main/java/emu/grasscutter/plugin/api/ServerHook.java @@ -1,6 +1,6 @@ package emu.grasscutter.plugin.api; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.server.game.GameServer; import java.util.LinkedList; diff --git a/src/main/java/emu/grasscutter/server/game/GameServer.java b/src/main/java/emu/grasscutter/server/game/GameServer.java index 8700712f0..50889fd56 100644 --- a/src/main/java/emu/grasscutter/server/game/GameServer.java +++ b/src/main/java/emu/grasscutter/server/game/GameServer.java @@ -10,14 +10,14 @@ import emu.grasscutter.Grasscutter; import emu.grasscutter.command.CommandMap; import emu.grasscutter.database.DatabaseHelper; import emu.grasscutter.game.Account; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.World; import emu.grasscutter.game.dungeons.DungeonManager; import emu.grasscutter.game.gacha.GachaManager; import emu.grasscutter.game.managers.ChatManager; import emu.grasscutter.game.managers.InventoryManager; import emu.grasscutter.game.managers.MultiplayerManager; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.shop.ShopManager; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.PacketHandler; import emu.grasscutter.net.proto.SocialDetailOuterClass.SocialDetail; import emu.grasscutter.netty.KcpServer; diff --git a/src/main/java/emu/grasscutter/server/game/GameSession.java b/src/main/java/emu/grasscutter/server/game/GameSession.java index 7e9753ca7..227d3fd65 100644 --- a/src/main/java/emu/grasscutter/server/game/GameSession.java +++ b/src/main/java/emu/grasscutter/server/game/GameSession.java @@ -8,7 +8,7 @@ import java.util.Set; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.Account; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.packet.PacketOpcodesUtil; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java index ede997f27..0967cfc47 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerChangeMailStarNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.game.Mail; +import emu.grasscutter.game.mail.Mail; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketHandler; import emu.grasscutter.net.packet.PacketOpcodes; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerEnterSceneDoneReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerEnterSceneDoneReq.java index 760116ea4..d374cfd46 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerEnterSceneDoneReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerEnterSceneDoneReq.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.game.Player.SceneLoadState; +import emu.grasscutter.game.player.Player.SceneLoadState; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.packet.PacketHandler; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerMarkMapReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerMarkMapReq.java index a46aec718..bd403047f 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerMarkMapReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerMarkMapReq.java @@ -1,8 +1,8 @@ package emu.grasscutter.server.packet.recv; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.World; import emu.grasscutter.game.props.EnterReason; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerLoginReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerLoginReq.java index 06b8c9491..a419a0db9 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerLoginReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerPlayerLoginReq.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.recv; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java index ac5ef9657..8c9c87149 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerReadMailNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.game.Mail; +import emu.grasscutter.game.mail.Mail; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketHandler; import emu.grasscutter.net.packet.PacketOpcodes; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneInitFinishReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneInitFinishReq.java index 62333dc55..587cf7ce1 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneInitFinishReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneInitFinishReq.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.recv; -import emu.grasscutter.game.Player.SceneLoadState; +import emu.grasscutter.game.player.Player.SceneLoadState; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetPlayerBornDataReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetPlayerBornDataReq.java index 8a7cdeb5d..53312b5b1 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetPlayerBornDataReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerSetPlayerBornDataReq.java @@ -4,8 +4,8 @@ import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; import emu.grasscutter.data.GameData; import emu.grasscutter.database.DatabaseHelper; -import emu.grasscutter.game.Player; import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.PacketOpcodes; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDataNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDataNotify.java index 627fbfaa1..ca50b8f94 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDataNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarDataNotify.java @@ -2,9 +2,9 @@ package emu.grasscutter.server.packet.send; import java.util.Map.Entry; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.TeamInfo; import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.player.TeamInfo; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarDataNotifyOuterClass.AvatarDataNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarTeamUpdateNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarTeamUpdateNotify.java index 6c063d318..93e9e12c3 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarTeamUpdateNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketAvatarTeamUpdateNotify.java @@ -2,9 +2,9 @@ package emu.grasscutter.server.packet.send; import java.util.Map.Entry; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.TeamInfo; import emu.grasscutter.game.avatar.Avatar; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.player.TeamInfo; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeGameTimeRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeGameTimeRsp.java index 6d3b2dd54..b0b46bde9 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeGameTimeRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeGameTimeRsp.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.World; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChangeGameTimeRspOuterClass.ChangeGameTimeRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeMpTeamAvatarRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeMpTeamAvatarRsp.java index a52a489ac..f44c3326e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketChangeMpTeamAvatarRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketChangeMpTeamAvatarRsp.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.TeamInfo; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.player.TeamInfo; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChangeMpTeamAvatarRspOuterClass.ChangeMpTeamAvatarRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java index 5048a7a87..e8348a144 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketDelMailRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.DelMailRspOuterClass.DelMailRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneDoneRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneDoneRsp.java index 9978300a4..c32f6a922 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneDoneRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneDoneRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterSceneDoneRspOuterClass.EnterSceneDoneRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterScenePeerNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterScenePeerNotify.java index ab46204fa..c41c40bdd 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterScenePeerNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterScenePeerNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterScenePeerNotifyOuterClass.EnterScenePeerNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneReadyRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneReadyRsp.java index 42850a8bc..5dfbc3407 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneReadyRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketEnterSceneReadyRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterSceneReadyRspOuterClass.EnterSceneReadyRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java index b11b36d54..8c8fb4b07 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java @@ -1,8 +1,8 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Mail; +import emu.grasscutter.game.mail.Mail; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllUnlockNameCardRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllUnlockNameCardRsp.java index 25cef3778..d1f9393cd 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllUnlockNameCardRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetAllUnlockNameCardRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetAllUnlockNameCardRspOuterClass.GetAllUnlockNameCardRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java index ac6afebdf..37f753c17 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetMailItemRsp.java @@ -1,9 +1,9 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.data.GameData; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Mail; import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.game.mail.Mail; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerAskFriendListRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerAskFriendListRsp.java index 6ac5ddbf6..7fc37e280 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerAskFriendListRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerAskFriendListRsp.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; import emu.grasscutter.game.friends.Friendship; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetPlayerAskFriendListRspOuterClass.GetPlayerAskFriendListRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerFriendListRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerFriendListRsp.java index a808ea0a9..b2628e36d 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerFriendListRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetPlayerFriendListRsp.java @@ -1,8 +1,8 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.GameConstants; -import emu.grasscutter.game.Player; import emu.grasscutter.game.friends.Friendship; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.FriendBriefOuterClass.FriendBrief; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketGetWorldMpInfoRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketGetWorldMpInfoRsp.java index 0140928a7..7ab3c88e4 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketGetWorldMpInfoRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketGetWorldMpInfoRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.World; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.GetWorldMpInfoRspOuterClass.GetWorldMpInfoRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketHostPlayerNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketHostPlayerNotify.java index 2542c49df..48d0f7b9e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketHostPlayerNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketHostPlayerNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.World; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.HostPlayerNotifyOuterClass.HostPlayerNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java index 5606f398c..c4b2b229e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketMailChangeNotify.java @@ -2,8 +2,8 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Mail; +import emu.grasscutter.game.mail.Mail; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.*; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpNotify.java index f2744df67..bbf0c03c6 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerApplyEnterMpNotifyOuterClass.PlayerApplyEnterMpNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java index 7b3a87bd8..b92f8a3b3 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerApplyEnterMpResultNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerApplyEnterMpReasonOuterClass.PlayerApplyEnterMpReason; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatNotify.java index 7624bd562..16ce6a6f7 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerChatNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChatInfoOuterClass.ChatInfo; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerDataNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerDataNotify.java index ae68ec934..81da25821 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerDataNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerDataNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerDataNotifyOuterClass.PlayerDataNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneInfoNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneInfoNotify.java index 153261c1f..c0bc5abe1 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneInfoNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneInfoNotify.java @@ -1,8 +1,8 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AbilityControlBlockOuterClass; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java index c5e589af6..42fe3a12f 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Player.SceneLoadState; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.player.Player.SceneLoadState; import emu.grasscutter.game.props.EnterReason; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGameTimeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGameTimeNotify.java index 08e4571f3..51bcef3a5 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGameTimeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerGameTimeNotify.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.World; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerGameTimeNotifyOuterClass.PlayerGameTimeNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java index f555937d4..4cd708045 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerStoreNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerStoreNotify.java index d2aded33a..a3a6ff7b8 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerStoreNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerStoreNotify.java @@ -2,8 +2,8 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.Player; import emu.grasscutter.game.inventory.GameItem; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ItemOuterClass.Item; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerTimeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerTimeNotify.java index 536a9b891..9bd2a1f08 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerTimeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerTimeNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerTimeNotifyOuterClass.PlayerTimeNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPostEnterSceneRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPostEnterSceneRsp.java index b5deaf417..2bdc30dbc 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPostEnterSceneRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPostEnterSceneRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PostEnterSceneRspOuterClass.PostEnterSceneRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPullRecentChatRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPullRecentChatRsp.java index c5de572a0..871534b53 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPullRecentChatRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPullRecentChatRsp.java @@ -1,9 +1,9 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.Config.GameServerOptions; +import emu.grasscutter.game.player.Player; import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; -import emu.grasscutter.game.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ChatInfoOuterClass.ChatInfo; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAreaWeatherNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAreaWeatherNotify.java index 58f910db2..91112871d 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAreaWeatherNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneAreaWeatherNotify.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.World; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneAreaWeatherNotifyOuterClass.SceneAreaWeatherNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityAppearNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityAppearNotify.java index e41e55811..78c17a5d5 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityAppearNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityAppearNotify.java @@ -2,8 +2,8 @@ package emu.grasscutter.server.packet.send; import java.util.Collection; -import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.GameEntity; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneEntityAppearNotifyOuterClass.SceneEntityAppearNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneInitFinishRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneInitFinishRsp.java index 3319092ca..e2751a2c9 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneInitFinishRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneInitFinishRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneInitFinishRspOuterClass.SceneInitFinishRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerInfoNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerInfoNotify.java index 027dd685a..469a26cff 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerInfoNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerInfoNotify.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.World; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ScenePlayerInfoNotifyOuterClass.ScenePlayerInfoNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerLocationNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerLocationNotify.java index 4eef49aaf..427e94573 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerLocationNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerLocationNotify.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.Scene; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.world.Scene; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ScenePlayerLocationNotifyOuterClass.ScenePlayerLocationNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTeamUpdateNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTeamUpdateNotify.java index 809acf77a..ec3fea082 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTeamUpdateNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTeamUpdateNotify.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; import emu.grasscutter.game.entity.EntityAvatar; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java index f91725623..874efcc4b 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTimeNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SceneTimeNotifyOuterClass.SceneTimeNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTransToPointRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTransToPointRsp.java index eb4448816..b421dfe40 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTransToPointRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSceneTransToPointRsp.java @@ -2,7 +2,7 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.data.GameData; import emu.grasscutter.data.custom.ScenePointEntry; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.RetcodeOuterClass; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerBirthdayRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerBirthdayRsp.java index d408c4484..6c875af56 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerBirthdayRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerBirthdayRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetPlayerBirthdayRspOuterClass.SetPlayerBirthdayRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerHeadImageRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerHeadImageRsp.java index 934a1021f..9b736dc3e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerHeadImageRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerHeadImageRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.HeadImageOuterClass.HeadImage; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerNameRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerNameRsp.java index 331c3758e..935957f70 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerNameRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerNameRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetPlayerNameRspOuterClass.SetPlayerNameRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerSignatureRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerSignatureRsp.java index 9cc62a285..9a4361b83 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerSignatureRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetPlayerSignatureRsp.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetPlayerSignatureRspOuterClass.SetPlayerSignatureRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSetUpAvatarTeamRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSetUpAvatarTeamRsp.java index 744da1d47..66d484248 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSetUpAvatarTeamRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSetUpAvatarTeamRsp.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.TeamInfo; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.player.TeamInfo; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SetUpAvatarTeamRspOuterClass.SetUpAvatarTeamRsp; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSyncScenePlayTeamEntityNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSyncScenePlayTeamEntityNotify.java index b0ab337fb..c50b7c0a8 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSyncScenePlayTeamEntityNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSyncScenePlayTeamEntityNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.SyncScenePlayTeamEntityNotifyOuterClass.SyncScenePlayTeamEntityNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketSyncTeamEntityNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketSyncTeamEntityNotify.java index a35895edf..ebb38df13 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketSyncTeamEntityNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketSyncTeamEntityNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldDataNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldDataNotify.java index 5019a051d..159ca42a1 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldDataNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldDataNotify.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.World; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PropValueOuterClass.PropValue; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerInfoNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerInfoNotify.java index efab8be2f..64fef4f3e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerInfoNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerInfoNotify.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.World; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerLocationNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerLocationNotify.java index ba9f601c8..0b6d3521c 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerLocationNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerLocationNotify.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.World; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.WorldPlayerLocationNotifyOuterClass.WorldPlayerLocationNotify; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerRTTNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerRTTNotify.java index bff377e8a..0ba3234d7 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerRTTNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketWorldPlayerRTTNotify.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.packet.send; -import emu.grasscutter.game.Player; -import emu.grasscutter.game.World; +import emu.grasscutter.game.player.Player; +import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerRTTInfoOuterClass.PlayerRTTInfo; diff --git a/src/main/java/emu/grasscutter/task/TaskMap.java b/src/main/java/emu/grasscutter/task/TaskMap.java index b6c3c9520..077ff1f59 100644 --- a/src/main/java/emu/grasscutter/task/TaskMap.java +++ b/src/main/java/emu/grasscutter/task/TaskMap.java @@ -2,7 +2,7 @@ package emu.grasscutter.task; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.Account; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import org.quartz.CronScheduleBuilder; import org.quartz.CronTrigger; diff --git a/src/main/java/emu/grasscutter/task/tasks/MoonCard.java b/src/main/java/emu/grasscutter/task/tasks/MoonCard.java index 0db62b66a..45c04586e 100644 --- a/src/main/java/emu/grasscutter/task/tasks/MoonCard.java +++ b/src/main/java/emu/grasscutter/task/tasks/MoonCard.java @@ -1,7 +1,7 @@ package emu.grasscutter.task.tasks; import emu.grasscutter.database.DatabaseManager; -import emu.grasscutter.game.Player; +import emu.grasscutter.game.player.Player; import emu.grasscutter.task.Task; import emu.grasscutter.task.TaskHandler;