diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..dd84ea782
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,38 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+ - Browser [e.g. chrome, safari]
+ - Version [e.g. 22]
+
+**Smartphone (please complete the following information):**
+ - Device: [e.g. iPhone6]
+ - OS: [e.g. iOS8.1]
+ - Browser [e.g. stock browser, safari]
+ - Version [e.g. 22]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md
new file mode 100644
index 000000000..48d5f81fa
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/custom.md
@@ -0,0 +1,10 @@
+---
+name: Custom issue template
+about: Describe this issue template's purpose here.
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 000000000..bbcbbe7d6
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000..5196d0514
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,127 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+* Demonstrating empathy and kindness toward other people
+* Being respectful of differing opinions, viewpoints, and experiences
+* Giving and gracefully accepting constructive feedback
+* Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+* Focusing on what is best not just for us as individuals, but for the
+ overall community
+
+Examples of unacceptable behavior include:
+
+* The use of sexualized language or imagery, and sexual attention or
+ advances of any kind
+* Trolling, insulting or derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or email
+ address, without their explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement at
+[the Discord server](https://discord.gg/T5vZU6UyeG).
+All complaints will be reviewed and investigated promptly and fairly.
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series
+of actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or
+permanent ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within
+the community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 2.0, available at
+https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+
+Community Impact Guidelines were inspired by [Mozilla's code of conduct
+enforcement ladder](https://github.com/mozilla/diversity).
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see the FAQ at
+https://www.contributor-covenant.org/faq. Translations are available at
+https://www.contributor-covenant.org/translations.
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 000000000..55b94eb7d
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,14 @@
+# Contributing
+
+Please note we have a code of conduct, please follow it in all your interactions with the project. If you have any further questions please create an issue or ask in the Discord server.
+
+- Only fix/add the functionality in question OR address wide-spread whitespace/style issues, not both.
+- Address a single concern in the least number of changed lines as possible.
+
+**Do not make a pull request to merge into stable unless it is a hotfix. Use the development branch instead.**
+
+## Pull Request Process
+
+1. Ensure any install or build dependencies are removed before the end of the layer when doing a build.
+2. Update the README.md and wiki with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
+3. Write with detail on your pull request description what you have committed, to make it easier for the collaborators to make a changelog.
diff --git a/Grasscutter-Protos b/Grasscutter-Protos
index dd17415b7..0537e9cc4 160000
--- a/Grasscutter-Protos
+++ b/Grasscutter-Protos
@@ -1 +1 @@
-Subproject commit dd17415b71dfcff049e72dbe8a76173611f4b0ae
+Subproject commit 0537e9cc4c7856a7c6f88bbbaa908a80c4ee677e
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 {
-
- /**
- * uint32 entity_id = 1;
- * @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_;
- /**
- * uint32 entity_id = 1;
- * @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 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_ ;
- /**
- * uint32 entity_id = 1;
- * @return The entityId.
- */
- @java.lang.Override
- public int getEntityId() {
- return entityId_;
- }
- /**
- * uint32 entity_id = 1;
- * @param value The entityId to set.
- * @return This builder for chaining.
- */
- public Builder setEntityId(int value) {
-
- entityId_ = value;
- onChanged();
- return this;
- }
- /**
- * uint32 entity_id = 1;
- * @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
- PARSER = new com.google.protobuf.AbstractParser() {
- @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 parser() {
- return PARSER;
- }
-
- @java.lang.Override
- public com.google.protobuf.Parser 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 {
-
- /**
- * int32 retcode = 1;
- * @return The retcode.
- */
- int getRetcode();
-
- /**
- * uint32 entity_id = 2;
- * @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_;
- /**
- * int32 retcode = 1;
- * @return The retcode.
- */
- @java.lang.Override
- public int getRetcode() {
- return retcode_;
- }
-
- public static final int ENTITY_ID_FIELD_NUMBER = 2;
- private int entityId_;
- /**
- * uint32 entity_id = 2;
- * @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 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_ ;
- /**
- * 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 int entityId_ ;
- /**
- * uint32 entity_id = 2;
- * @return The entityId.
- */
- @java.lang.Override
- public int getEntityId() {
- return entityId_;
- }
- /**
- * uint32 entity_id = 2;
- * @param value The entityId to set.
- * @return This builder for chaining.
- */
- public Builder setEntityId(int value) {
-
- entityId_ = value;
- onChanged();
- return this;
- }
- /**
- * uint32 entity_id = 2;
- * @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
- PARSER = new com.google.protobuf.AbstractParser() {
- @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 parser() {
- return PARSER;
- }
-
- @java.lang.Override
- public com.google.protobuf.Parser 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
deleted file mode 100644
index 005141958..000000000
--- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneEntityDrownReq.java
+++ /dev/null
@@ -1,41 +0,0 @@
-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.PacketLifeStateChangeNotify;
-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
deleted file mode 100644
index 4d3a2b232..000000000
--- a/src/main/java/emu/grasscutter/server/packet/send/PacketSceneEntityDrownRsp.java
+++ /dev/null
@@ -1,20 +0,0 @@
-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();
-
- this.setData(proto);
- }
-}
-
-