diff --git a/docs/README_vi-VN.md b/docs/README_vi-VN.md
index 12e16cfcb..f89366947 100644
--- a/docs/README_vi-VN.md
+++ b/docs/README_vi-VN.md
@@ -13,7 +13,7 @@
* Chiến đấu, giao tranh
* Danh sách bạn bè
* Dịch chuyển
-* Hệ thống gacha
+* Hệ thống cầu nguyện (gacha)
* *Một phần* của tính năng chơi chung (co-op)
* Gọi ra quái vật từ bảng điều khiển (console)
* Vật phẩm/Nhân vật (nhận vật phẩm/nhân vật, nâng cấp vật phẩm/nhân vật)
@@ -26,9 +26,9 @@
* [Java SE - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) hoặc cao hơn
- **Ghi chú:** Nếu bạn chỉ cần **sử dụng**, thì cài **jre** là đủ.
+ **Ghi chú:** Nếu bạn chỉ muốn **sử dụng**, vậy thì cài đặt **jre** là đủ.
-* [MongoDB](https://www.mongodb.com/try/download/community) (khuyến khích phiên bản từ 4.0 trở lên)
+* [MongoDB](https://www.mongodb.com/try/download/community) (khuyến khích sử dụng phiên bản từ 4.0 trở lên)
* Proxy Daemon: [mitmproxy](https://mitmproxy.org/) (nên sử dụng mitmdump), [Fiddler Classic](https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe), v.v.
@@ -62,11 +62,11 @@
- [Hosts file](https://github.com/Grasscutters/Grasscutter/wiki/Resources#hosts-file)
-2. Cài đặt network proxy thành `127.0.0.1:8080` hoặc cổng proxy bạn đã chỉ định.
+2. Cài đặt network proxy thành `127.0.0.1:8080` hoặc cổng proxy mà bạn đã chỉ định.
-- Với mitmproxy: Sau khi thiết lập proxy và cài đặt chứng chỉ, hãy kiểm tra http://mitm.it/ nếu lưu lượng truy cập đi qua mitmproxy.
+- Với mitmproxy: Sau khi thiết lập proxy và cài đặt chứng chỉ, hãy kiểm tra http://mitm.it/ để xem liệu lưu lượng có đang thông qua mitmproxy hay không.
-**You can also use `start.cmd` to start servers and proxy daemons automatically, but you have to set up `JAVA_HOME` environment and configure the `start_config.cmd` file.**
+**Bạn cũng có thể sử dụng `start.cmd` để tự động khởi động máy chủ (servers) và proxy daemons, nhưng trước đó bạn phải thiết lập biến môi trường `JAVA_HOME` và cấu hình tệp `start_config.cmd`.**
### Tự tạo server (Building)
@@ -101,6 +101,6 @@ Bạn có thể tìm thấy tệp jar đã được biên dịch tại thư mụ
# Khắc phục nhanh các sụ cố
-- Nếu quá trình biên dịch (compile) không thành công, vui lòng kiểm tra cài đặt JDK của bạn (Đảm bảo rằng JDK phải từ phiên bản 17 trở lên và PATH của JDK đã được cài đặt).
-- Không thể kết nối, không thể đăng nhập, 4206, v.v... - Cài đặt proxy (proxy daemon) của bạn thường là *vấn đề*. Nếu bạn đang sử dụng Fiddler, hãy đổi port (cổng) mặc định khác 8888.
-- Thứ tự cài đặt: MongoDB > Grasscutter > Proxy Daemon (mitmdump, fiddler, v.v.) > Game
+- Nếu quá trình biên dịch (compile) không thành công, hãy kiểm tra cài đặt JDK của bạn (Đảm bảo rằng JDK phải từ phiên bản 17 trở lên và PATH của JDK đã được cài đặt).
+- Không thể kết nối, không thể đăng nhập, 4206, v.v. - *Vấn đề* thường là do cài đặt proxy (proxy daemon) của bạn. Nếu bạn đang sử dụng Fiddler, hãy đổi cổng (port) mặc định sang bất cứ cổng nào khác 8888.
+- Thứ tự khởi động: MongoDB > Grasscutter > Proxy Daemon (mitmdump, fiddler, v.v.) > Game
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailNotifyOuterClass.java
new file mode 100644
index 000000000..506cd35b6
--- /dev/null
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailNotifyOuterClass.java
@@ -0,0 +1,547 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: GetAllMailNotify.proto
+
+package emu.grasscutter.net.proto;
+
+public final class GetAllMailNotifyOuterClass {
+ private GetAllMailNotifyOuterClass() {}
+ 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 GetAllMailNotifyOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:GetAllMailNotify)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * bool is_collected = 6;
+ * @return The isCollected.
+ */
+ boolean getIsCollected();
+ }
+ /**
+ *
+ * Name: PFHIOOMPNBH + * CmdId: 1442 + *+ * + * Protobuf type {@code GetAllMailNotify} + */ + public static final class GetAllMailNotify extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GetAllMailNotify) + GetAllMailNotifyOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetAllMailNotify.newBuilder() to construct. + private GetAllMailNotify(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + private GetAllMailNotify() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetAllMailNotify(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetAllMailNotify( + 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 48: { + + isCollected_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.internal_static_GetAllMailNotify_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.internal_static_GetAllMailNotify_fieldAccessorTable + .ensureFieldAccessorsInitialized( + emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify.class, emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify.Builder.class); + } + + public static final int IS_COLLECTED_FIELD_NUMBER = 6; + private boolean isCollected_; + /** + *
bool is_collected = 6;
+ * @return The isCollected.
+ */
+ @java.lang.Override
+ public boolean getIsCollected() {
+ return isCollected_;
+ }
+
+ 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 (isCollected_ != false) {
+ output.writeBool(6, isCollected_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (isCollected_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(6, isCollected_);
+ }
+ 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.GetAllMailNotifyOuterClass.GetAllMailNotify)) {
+ return super.equals(obj);
+ }
+ emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify other = (emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify) obj;
+
+ if (getIsCollected()
+ != other.getIsCollected()) 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) + IS_COLLECTED_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getIsCollected());
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify 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.GetAllMailNotifyOuterClass.GetAllMailNotify parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify 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.GetAllMailNotifyOuterClass.GetAllMailNotify parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify 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.GetAllMailNotifyOuterClass.GetAllMailNotify parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify 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.GetAllMailNotifyOuterClass.GetAllMailNotify parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify 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.GetAllMailNotifyOuterClass.GetAllMailNotify prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * + * Name: PFHIOOMPNBH + * CmdId: 1442 + *+ * + * Protobuf type {@code GetAllMailNotify} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder
bool is_collected = 6;
+ * @return The isCollected.
+ */
+ @java.lang.Override
+ public boolean getIsCollected() {
+ return isCollected_;
+ }
+ /**
+ * bool is_collected = 6;
+ * @param value The isCollected to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIsCollected(boolean value) {
+
+ isCollected_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * bool is_collected = 6;
+ * @return This builder for chaining.
+ */
+ public Builder clearIsCollected() {
+
+ isCollected_ = 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:GetAllMailNotify)
+ }
+
+ // @@protoc_insertion_point(class_scope:GetAllMailNotify)
+ private static final emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify();
+ }
+
+ public static emu.grasscutter.net.proto.GetAllMailNotifyOuterClass.GetAllMailNotify getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parserint32 retcode = 6;
+ * @return The retcode.
+ */
+ int getRetcode();
+
+ /**
+ * uint32 packet_be_sent_num = 1;
+ * @return The packetBeSentNum.
+ */
+ int getPacketBeSentNum();
+
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ java.util.Listrepeated .MailData mail_list = 10;
+ */
+ emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index);
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ int getMailListCount();
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ java.util.List extends emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder>
+ getMailListOrBuilderList();
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder(
+ int index);
+
+ /**
+ * string transaction = 5;
+ * @return The transaction.
+ */
+ java.lang.String getTransaction();
+ /**
+ * string transaction = 5;
+ * @return The bytes for transaction.
+ */
+ com.google.protobuf.ByteString
+ getTransactionBytes();
+
+ /**
+ * bool is_collected = 8;
+ * @return The isCollected.
+ */
+ boolean getIsCollected();
+
+ /**
+ * uint32 packet_num = 13;
+ * @return The packetNum.
+ */
+ int getPacketNum();
+ }
+ /**
+ * + * Name: ILFMLLOCKFB + * CmdId: 1429 + *+ * + * Protobuf type {@code GetAllMailResultNotify} + */ + public static final class GetAllMailResultNotify extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GetAllMailResultNotify) + GetAllMailResultNotifyOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetAllMailResultNotify.newBuilder() to construct. + private GetAllMailResultNotify(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + private GetAllMailResultNotify() { + mailList_ = java.util.Collections.emptyList(); + transaction_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetAllMailResultNotify(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetAllMailResultNotify( + 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: { + + packetBeSentNum_ = input.readUInt32(); + break; + } + case 42: { + java.lang.String s = input.readStringRequireUtf8(); + + transaction_ = s; + break; + } + case 48: { + + retcode_ = input.readInt32(); + break; + } + case 64: { + + isCollected_ = input.readBool(); + break; + } + case 82: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + mailList_ = new java.util.ArrayList
int32 retcode = 6;
+ * @return The retcode.
+ */
+ @java.lang.Override
+ public int getRetcode() {
+ return retcode_;
+ }
+
+ public static final int PACKET_BE_SENT_NUM_FIELD_NUMBER = 1;
+ private int packetBeSentNum_;
+ /**
+ * uint32 packet_be_sent_num = 1;
+ * @return The packetBeSentNum.
+ */
+ @java.lang.Override
+ public int getPacketBeSentNum() {
+ return packetBeSentNum_;
+ }
+
+ public static final int MAIL_LIST_FIELD_NUMBER = 10;
+ private java.util.Listrepeated .MailData mail_list = 10;
+ */
+ @java.lang.Override
+ public java.util.Listrepeated .MailData mail_list = 10;
+ */
+ @java.lang.Override
+ public java.util.List extends emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder>
+ getMailListOrBuilderList() {
+ return mailList_;
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ @java.lang.Override
+ public int getMailListCount() {
+ return mailList_.size();
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ @java.lang.Override
+ public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) {
+ return mailList_.get(index);
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ @java.lang.Override
+ public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder(
+ int index) {
+ return mailList_.get(index);
+ }
+
+ public static final int TRANSACTION_FIELD_NUMBER = 5;
+ private volatile java.lang.Object transaction_;
+ /**
+ * string transaction = 5;
+ * @return The transaction.
+ */
+ @java.lang.Override
+ public java.lang.String getTransaction() {
+ java.lang.Object ref = transaction_;
+ 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();
+ transaction_ = s;
+ return s;
+ }
+ }
+ /**
+ * string transaction = 5;
+ * @return The bytes for transaction.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getTransactionBytes() {
+ java.lang.Object ref = transaction_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ transaction_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int IS_COLLECTED_FIELD_NUMBER = 8;
+ private boolean isCollected_;
+ /**
+ * bool is_collected = 8;
+ * @return The isCollected.
+ */
+ @java.lang.Override
+ public boolean getIsCollected() {
+ return isCollected_;
+ }
+
+ public static final int PACKET_NUM_FIELD_NUMBER = 13;
+ private int packetNum_;
+ /**
+ * uint32 packet_num = 13;
+ * @return The packetNum.
+ */
+ @java.lang.Override
+ public int getPacketNum() {
+ return packetNum_;
+ }
+
+ 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 (packetBeSentNum_ != 0) {
+ output.writeUInt32(1, packetBeSentNum_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(transaction_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 5, transaction_);
+ }
+ if (retcode_ != 0) {
+ output.writeInt32(6, retcode_);
+ }
+ if (isCollected_ != false) {
+ output.writeBool(8, isCollected_);
+ }
+ for (int i = 0; i < mailList_.size(); i++) {
+ output.writeMessage(10, mailList_.get(i));
+ }
+ if (packetNum_ != 0) {
+ output.writeUInt32(13, packetNum_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (packetBeSentNum_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, packetBeSentNum_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(transaction_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, transaction_);
+ }
+ if (retcode_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(6, retcode_);
+ }
+ if (isCollected_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(8, isCollected_);
+ }
+ for (int i = 0; i < mailList_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(10, mailList_.get(i));
+ }
+ if (packetNum_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(13, packetNum_);
+ }
+ 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.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify)) {
+ return super.equals(obj);
+ }
+ emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify other = (emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify) obj;
+
+ if (getRetcode()
+ != other.getRetcode()) return false;
+ if (getPacketBeSentNum()
+ != other.getPacketBeSentNum()) return false;
+ if (!getMailListList()
+ .equals(other.getMailListList())) return false;
+ if (!getTransaction()
+ .equals(other.getTransaction())) return false;
+ if (getIsCollected()
+ != other.getIsCollected()) return false;
+ if (getPacketNum()
+ != other.getPacketNum()) 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) + PACKET_BE_SENT_NUM_FIELD_NUMBER;
+ hash = (53 * hash) + getPacketBeSentNum();
+ if (getMailListCount() > 0) {
+ hash = (37 * hash) + MAIL_LIST_FIELD_NUMBER;
+ hash = (53 * hash) + getMailListList().hashCode();
+ }
+ hash = (37 * hash) + TRANSACTION_FIELD_NUMBER;
+ hash = (53 * hash) + getTransaction().hashCode();
+ hash = (37 * hash) + IS_COLLECTED_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getIsCollected());
+ hash = (37 * hash) + PACKET_NUM_FIELD_NUMBER;
+ hash = (53 * hash) + getPacketNum();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify 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.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify 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.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify 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.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify 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.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify 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.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * + * Name: ILFMLLOCKFB + * CmdId: 1429 + *+ * + * Protobuf type {@code GetAllMailResultNotify} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder
int32 retcode = 6;
+ * @return The retcode.
+ */
+ @java.lang.Override
+ public int getRetcode() {
+ return retcode_;
+ }
+ /**
+ * int32 retcode = 6;
+ * @param value The retcode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRetcode(int value) {
+
+ retcode_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * int32 retcode = 6;
+ * @return This builder for chaining.
+ */
+ public Builder clearRetcode() {
+
+ retcode_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int packetBeSentNum_ ;
+ /**
+ * uint32 packet_be_sent_num = 1;
+ * @return The packetBeSentNum.
+ */
+ @java.lang.Override
+ public int getPacketBeSentNum() {
+ return packetBeSentNum_;
+ }
+ /**
+ * uint32 packet_be_sent_num = 1;
+ * @param value The packetBeSentNum to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPacketBeSentNum(int value) {
+
+ packetBeSentNum_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * uint32 packet_be_sent_num = 1;
+ * @return This builder for chaining.
+ */
+ public Builder clearPacketBeSentNum() {
+
+ packetBeSentNum_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.util.Listrepeated .MailData mail_list = 10;
+ */
+ public java.util.Listrepeated .MailData mail_list = 10;
+ */
+ public int getMailListCount() {
+ if (mailListBuilder_ == null) {
+ return mailList_.size();
+ } else {
+ return mailListBuilder_.getCount();
+ }
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ public emu.grasscutter.net.proto.MailDataOuterClass.MailData getMailList(int index) {
+ if (mailListBuilder_ == null) {
+ return mailList_.get(index);
+ } else {
+ return mailListBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ 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 mail_list = 10;
+ */
+ 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 mail_list = 10;
+ */
+ 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 mail_list = 10;
+ */
+ 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 mail_list = 10;
+ */
+ 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 mail_list = 10;
+ */
+ 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 mail_list = 10;
+ */
+ 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;
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ public Builder clearMailList() {
+ if (mailListBuilder_ == null) {
+ mailList_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ mailListBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ public Builder removeMailList(int index) {
+ if (mailListBuilder_ == null) {
+ ensureMailListIsMutable();
+ mailList_.remove(index);
+ onChanged();
+ } else {
+ mailListBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder getMailListBuilder(
+ int index) {
+ return getMailListFieldBuilder().getBuilder(index);
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ public emu.grasscutter.net.proto.MailDataOuterClass.MailDataOrBuilder getMailListOrBuilder(
+ int index) {
+ if (mailListBuilder_ == null) {
+ return mailList_.get(index); } else {
+ return mailListBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ 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_);
+ }
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder() {
+ return getMailListFieldBuilder().addBuilder(
+ emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance());
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ public emu.grasscutter.net.proto.MailDataOuterClass.MailData.Builder addMailListBuilder(
+ int index) {
+ return getMailListFieldBuilder().addBuilder(
+ index, emu.grasscutter.net.proto.MailDataOuterClass.MailData.getDefaultInstance());
+ }
+ /**
+ * repeated .MailData mail_list = 10;
+ */
+ public java.util.Liststring transaction = 5;
+ * @return The transaction.
+ */
+ public java.lang.String getTransaction() {
+ java.lang.Object ref = transaction_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ transaction_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string transaction = 5;
+ * @return The bytes for transaction.
+ */
+ public com.google.protobuf.ByteString
+ getTransactionBytes() {
+ java.lang.Object ref = transaction_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ transaction_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string transaction = 5;
+ * @param value The transaction to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTransaction(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ transaction_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * string transaction = 5;
+ * @return This builder for chaining.
+ */
+ public Builder clearTransaction() {
+
+ transaction_ = getDefaultInstance().getTransaction();
+ onChanged();
+ return this;
+ }
+ /**
+ * string transaction = 5;
+ * @param value The bytes for transaction to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTransactionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ transaction_ = value;
+ onChanged();
+ return this;
+ }
+
+ private boolean isCollected_ ;
+ /**
+ * bool is_collected = 8;
+ * @return The isCollected.
+ */
+ @java.lang.Override
+ public boolean getIsCollected() {
+ return isCollected_;
+ }
+ /**
+ * bool is_collected = 8;
+ * @param value The isCollected to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIsCollected(boolean value) {
+
+ isCollected_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * bool is_collected = 8;
+ * @return This builder for chaining.
+ */
+ public Builder clearIsCollected() {
+
+ isCollected_ = false;
+ onChanged();
+ return this;
+ }
+
+ private int packetNum_ ;
+ /**
+ * uint32 packet_num = 13;
+ * @return The packetNum.
+ */
+ @java.lang.Override
+ public int getPacketNum() {
+ return packetNum_;
+ }
+ /**
+ * uint32 packet_num = 13;
+ * @param value The packetNum to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPacketNum(int value) {
+
+ packetNum_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * uint32 packet_num = 13;
+ * @return This builder for chaining.
+ */
+ public Builder clearPacketNum() {
+
+ packetNum_ = 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:GetAllMailResultNotify)
+ }
+
+ // @@protoc_insertion_point(class_scope:GetAllMailResultNotify)
+ private static final emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify();
+ }
+
+ public static emu.grasscutter.net.proto.GetAllMailResultNotifyOuterClass.GetAllMailResultNotify getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser