Added group state handler and improved interaction handling

This commit is contained in:
Melledy
2024-01-01 03:47:55 -08:00
parent 40cf8e8935
commit 5b1218d09d
21 changed files with 1701 additions and 551 deletions

View File

@@ -0,0 +1,281 @@
// Code generated by protocol buffer compiler. Do not edit!
package emu.lunarcore.proto;
import java.io.IOException;
import us.hebi.quickbuf.FieldName;
import us.hebi.quickbuf.InvalidProtocolBufferException;
import us.hebi.quickbuf.JsonSink;
import us.hebi.quickbuf.JsonSource;
import us.hebi.quickbuf.MessageFactory;
import us.hebi.quickbuf.ProtoMessage;
import us.hebi.quickbuf.ProtoSink;
import us.hebi.quickbuf.ProtoSource;
public final class GroupStateChangeCsReqOuterClass {
/**
* Protobuf type {@code GroupStateChangeCsReq}
*/
public static final class GroupStateChangeCsReq extends ProtoMessage<GroupStateChangeCsReq> implements Cloneable {
private static final long serialVersionUID = 0L;
/**
* <code>optional .GroupStateInfo group_info = 6;</code>
*/
private final GroupStateInfoOuterClass.GroupStateInfo groupInfo = GroupStateInfoOuterClass.GroupStateInfo.newInstance();
private GroupStateChangeCsReq() {
}
/**
* @return a new empty instance of {@code GroupStateChangeCsReq}
*/
public static GroupStateChangeCsReq newInstance() {
return new GroupStateChangeCsReq();
}
/**
* <code>optional .GroupStateInfo group_info = 6;</code>
* @return whether the groupInfo field is set
*/
public boolean hasGroupInfo() {
return (bitField0_ & 0x00000001) != 0;
}
/**
* <code>optional .GroupStateInfo group_info = 6;</code>
* @return this
*/
public GroupStateChangeCsReq clearGroupInfo() {
bitField0_ &= ~0x00000001;
groupInfo.clear();
return this;
}
/**
* <code>optional .GroupStateInfo group_info = 6;</code>
*
* This method returns the internal storage object without modifying any has state.
* The returned object should not be modified and be treated as read-only.
*
* Use {@link #getMutableGroupInfo()} if you want to modify it.
*
* @return internal storage object for reading
*/
public GroupStateInfoOuterClass.GroupStateInfo getGroupInfo() {
return groupInfo;
}
/**
* <code>optional .GroupStateInfo group_info = 6;</code>
*
* This method returns the internal storage object and sets the corresponding
* has state. The returned object will become part of this message and its
* contents may be modified as long as the has state is not cleared.
*
* @return internal storage object for modifications
*/
public GroupStateInfoOuterClass.GroupStateInfo getMutableGroupInfo() {
bitField0_ |= 0x00000001;
return groupInfo;
}
/**
* <code>optional .GroupStateInfo group_info = 6;</code>
* @param value the groupInfo to set
* @return this
*/
public GroupStateChangeCsReq setGroupInfo(final GroupStateInfoOuterClass.GroupStateInfo value) {
bitField0_ |= 0x00000001;
groupInfo.copyFrom(value);
return this;
}
@Override
public GroupStateChangeCsReq copyFrom(final GroupStateChangeCsReq other) {
cachedSize = other.cachedSize;
if ((bitField0_ | other.bitField0_) != 0) {
bitField0_ = other.bitField0_;
groupInfo.copyFrom(other.groupInfo);
}
return this;
}
@Override
public GroupStateChangeCsReq mergeFrom(final GroupStateChangeCsReq other) {
if (other.isEmpty()) {
return this;
}
cachedSize = -1;
if (other.hasGroupInfo()) {
getMutableGroupInfo().mergeFrom(other.groupInfo);
}
return this;
}
@Override
public GroupStateChangeCsReq clear() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
groupInfo.clear();
return this;
}
@Override
public GroupStateChangeCsReq clearQuick() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
groupInfo.clearQuick();
return this;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof GroupStateChangeCsReq)) {
return false;
}
GroupStateChangeCsReq other = (GroupStateChangeCsReq) o;
return bitField0_ == other.bitField0_
&& (!hasGroupInfo() || groupInfo.equals(other.groupInfo));
}
@Override
public void writeTo(final ProtoSink output) throws IOException {
if ((bitField0_ & 0x00000001) != 0) {
output.writeRawByte((byte) 50);
output.writeMessageNoTag(groupInfo);
}
}
@Override
protected int computeSerializedSize() {
int size = 0;
if ((bitField0_ & 0x00000001) != 0) {
size += 1 + ProtoSink.computeMessageSizeNoTag(groupInfo);
}
return size;
}
@Override
@SuppressWarnings("fallthrough")
public GroupStateChangeCsReq mergeFrom(final ProtoSource input) throws IOException {
// Enabled Fall-Through Optimization (QuickBuffers)
int tag = input.readTag();
while (true) {
switch (tag) {
case 50: {
// groupInfo
input.readMessage(groupInfo);
bitField0_ |= 0x00000001;
tag = input.readTag();
if (tag != 0) {
break;
}
}
case 0: {
return this;
}
default: {
if (!input.skipField(tag)) {
return this;
}
tag = input.readTag();
break;
}
}
}
}
@Override
public void writeTo(final JsonSink output) throws IOException {
output.beginObject();
if ((bitField0_ & 0x00000001) != 0) {
output.writeMessage(FieldNames.groupInfo, groupInfo);
}
output.endObject();
}
@Override
public GroupStateChangeCsReq mergeFrom(final JsonSource input) throws IOException {
if (!input.beginObject()) {
return this;
}
while (!input.isAtEnd()) {
switch (input.readFieldHash()) {
case -1483311155:
case 1282170478: {
if (input.isAtField(FieldNames.groupInfo)) {
if (!input.trySkipNullValue()) {
input.readMessage(groupInfo);
bitField0_ |= 0x00000001;
}
} else {
input.skipUnknownField();
}
break;
}
default: {
input.skipUnknownField();
break;
}
}
}
input.endObject();
return this;
}
@Override
public GroupStateChangeCsReq clone() {
return new GroupStateChangeCsReq().copyFrom(this);
}
@Override
public boolean isEmpty() {
return ((bitField0_) == 0);
}
public static GroupStateChangeCsReq parseFrom(final byte[] data) throws
InvalidProtocolBufferException {
return ProtoMessage.mergeFrom(new GroupStateChangeCsReq(), data).checkInitialized();
}
public static GroupStateChangeCsReq parseFrom(final ProtoSource input) throws IOException {
return ProtoMessage.mergeFrom(new GroupStateChangeCsReq(), input).checkInitialized();
}
public static GroupStateChangeCsReq parseFrom(final JsonSource input) throws IOException {
return ProtoMessage.mergeFrom(new GroupStateChangeCsReq(), input).checkInitialized();
}
/**
* @return factory for creating GroupStateChangeCsReq messages
*/
public static MessageFactory<GroupStateChangeCsReq> getFactory() {
return GroupStateChangeCsReqFactory.INSTANCE;
}
private enum GroupStateChangeCsReqFactory implements MessageFactory<GroupStateChangeCsReq> {
INSTANCE;
@Override
public GroupStateChangeCsReq create() {
return GroupStateChangeCsReq.newInstance();
}
}
/**
* Contains name constants used for serializing JSON
*/
static class FieldNames {
static final FieldName groupInfo = FieldName.forField("groupInfo", "group_info");
}
}
}

View File

@@ -0,0 +1,282 @@
// Code generated by protocol buffer compiler. Do not edit!
package emu.lunarcore.proto;
import java.io.IOException;
import us.hebi.quickbuf.FieldName;
import us.hebi.quickbuf.InvalidProtocolBufferException;
import us.hebi.quickbuf.JsonSink;
import us.hebi.quickbuf.JsonSource;
import us.hebi.quickbuf.MessageFactory;
import us.hebi.quickbuf.ProtoMessage;
import us.hebi.quickbuf.ProtoSink;
import us.hebi.quickbuf.ProtoSource;
public final class GroupStateChangeScNotifyOuterClass {
/**
* Protobuf type {@code GroupStateChangeScNotify}
*/
public static final class GroupStateChangeScNotify extends ProtoMessage<GroupStateChangeScNotify> implements Cloneable {
private static final long serialVersionUID = 0L;
/**
* <code>optional .GroupStateInfo group_info = 8;</code>
*/
private final GroupStateInfoOuterClass.GroupStateInfo groupInfo = GroupStateInfoOuterClass.GroupStateInfo.newInstance();
private GroupStateChangeScNotify() {
}
/**
* @return a new empty instance of {@code GroupStateChangeScNotify}
*/
public static GroupStateChangeScNotify newInstance() {
return new GroupStateChangeScNotify();
}
/**
* <code>optional .GroupStateInfo group_info = 8;</code>
* @return whether the groupInfo field is set
*/
public boolean hasGroupInfo() {
return (bitField0_ & 0x00000001) != 0;
}
/**
* <code>optional .GroupStateInfo group_info = 8;</code>
* @return this
*/
public GroupStateChangeScNotify clearGroupInfo() {
bitField0_ &= ~0x00000001;
groupInfo.clear();
return this;
}
/**
* <code>optional .GroupStateInfo group_info = 8;</code>
*
* This method returns the internal storage object without modifying any has state.
* The returned object should not be modified and be treated as read-only.
*
* Use {@link #getMutableGroupInfo()} if you want to modify it.
*
* @return internal storage object for reading
*/
public GroupStateInfoOuterClass.GroupStateInfo getGroupInfo() {
return groupInfo;
}
/**
* <code>optional .GroupStateInfo group_info = 8;</code>
*
* This method returns the internal storage object and sets the corresponding
* has state. The returned object will become part of this message and its
* contents may be modified as long as the has state is not cleared.
*
* @return internal storage object for modifications
*/
public GroupStateInfoOuterClass.GroupStateInfo getMutableGroupInfo() {
bitField0_ |= 0x00000001;
return groupInfo;
}
/**
* <code>optional .GroupStateInfo group_info = 8;</code>
* @param value the groupInfo to set
* @return this
*/
public GroupStateChangeScNotify setGroupInfo(
final GroupStateInfoOuterClass.GroupStateInfo value) {
bitField0_ |= 0x00000001;
groupInfo.copyFrom(value);
return this;
}
@Override
public GroupStateChangeScNotify copyFrom(final GroupStateChangeScNotify other) {
cachedSize = other.cachedSize;
if ((bitField0_ | other.bitField0_) != 0) {
bitField0_ = other.bitField0_;
groupInfo.copyFrom(other.groupInfo);
}
return this;
}
@Override
public GroupStateChangeScNotify mergeFrom(final GroupStateChangeScNotify other) {
if (other.isEmpty()) {
return this;
}
cachedSize = -1;
if (other.hasGroupInfo()) {
getMutableGroupInfo().mergeFrom(other.groupInfo);
}
return this;
}
@Override
public GroupStateChangeScNotify clear() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
groupInfo.clear();
return this;
}
@Override
public GroupStateChangeScNotify clearQuick() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
groupInfo.clearQuick();
return this;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof GroupStateChangeScNotify)) {
return false;
}
GroupStateChangeScNotify other = (GroupStateChangeScNotify) o;
return bitField0_ == other.bitField0_
&& (!hasGroupInfo() || groupInfo.equals(other.groupInfo));
}
@Override
public void writeTo(final ProtoSink output) throws IOException {
if ((bitField0_ & 0x00000001) != 0) {
output.writeRawByte((byte) 66);
output.writeMessageNoTag(groupInfo);
}
}
@Override
protected int computeSerializedSize() {
int size = 0;
if ((bitField0_ & 0x00000001) != 0) {
size += 1 + ProtoSink.computeMessageSizeNoTag(groupInfo);
}
return size;
}
@Override
@SuppressWarnings("fallthrough")
public GroupStateChangeScNotify mergeFrom(final ProtoSource input) throws IOException {
// Enabled Fall-Through Optimization (QuickBuffers)
int tag = input.readTag();
while (true) {
switch (tag) {
case 66: {
// groupInfo
input.readMessage(groupInfo);
bitField0_ |= 0x00000001;
tag = input.readTag();
if (tag != 0) {
break;
}
}
case 0: {
return this;
}
default: {
if (!input.skipField(tag)) {
return this;
}
tag = input.readTag();
break;
}
}
}
}
@Override
public void writeTo(final JsonSink output) throws IOException {
output.beginObject();
if ((bitField0_ & 0x00000001) != 0) {
output.writeMessage(FieldNames.groupInfo, groupInfo);
}
output.endObject();
}
@Override
public GroupStateChangeScNotify mergeFrom(final JsonSource input) throws IOException {
if (!input.beginObject()) {
return this;
}
while (!input.isAtEnd()) {
switch (input.readFieldHash()) {
case -1483311155:
case 1282170478: {
if (input.isAtField(FieldNames.groupInfo)) {
if (!input.trySkipNullValue()) {
input.readMessage(groupInfo);
bitField0_ |= 0x00000001;
}
} else {
input.skipUnknownField();
}
break;
}
default: {
input.skipUnknownField();
break;
}
}
}
input.endObject();
return this;
}
@Override
public GroupStateChangeScNotify clone() {
return new GroupStateChangeScNotify().copyFrom(this);
}
@Override
public boolean isEmpty() {
return ((bitField0_) == 0);
}
public static GroupStateChangeScNotify parseFrom(final byte[] data) throws
InvalidProtocolBufferException {
return ProtoMessage.mergeFrom(new GroupStateChangeScNotify(), data).checkInitialized();
}
public static GroupStateChangeScNotify parseFrom(final ProtoSource input) throws IOException {
return ProtoMessage.mergeFrom(new GroupStateChangeScNotify(), input).checkInitialized();
}
public static GroupStateChangeScNotify parseFrom(final JsonSource input) throws IOException {
return ProtoMessage.mergeFrom(new GroupStateChangeScNotify(), input).checkInitialized();
}
/**
* @return factory for creating GroupStateChangeScNotify messages
*/
public static MessageFactory<GroupStateChangeScNotify> getFactory() {
return GroupStateChangeScNotifyFactory.INSTANCE;
}
private enum GroupStateChangeScNotifyFactory implements MessageFactory<GroupStateChangeScNotify> {
INSTANCE;
@Override
public GroupStateChangeScNotify create() {
return GroupStateChangeScNotify.newInstance();
}
}
/**
* Contains name constants used for serializing JSON
*/
static class FieldNames {
static final FieldName groupInfo = FieldName.forField("groupInfo", "group_info");
}
}
}

View File

@@ -0,0 +1,361 @@
// Code generated by protocol buffer compiler. Do not edit!
package emu.lunarcore.proto;
import java.io.IOException;
import us.hebi.quickbuf.FieldName;
import us.hebi.quickbuf.InvalidProtocolBufferException;
import us.hebi.quickbuf.JsonSink;
import us.hebi.quickbuf.JsonSource;
import us.hebi.quickbuf.MessageFactory;
import us.hebi.quickbuf.ProtoMessage;
import us.hebi.quickbuf.ProtoSink;
import us.hebi.quickbuf.ProtoSource;
public final class GroupStateChangeScRspOuterClass {
/**
* Protobuf type {@code GroupStateChangeScRsp}
*/
public static final class GroupStateChangeScRsp extends ProtoMessage<GroupStateChangeScRsp> implements Cloneable {
private static final long serialVersionUID = 0L;
/**
* <code>optional uint32 retcode = 4;</code>
*/
private int retcode;
/**
* <code>optional .GroupStateInfo group_info = 3;</code>
*/
private final GroupStateInfoOuterClass.GroupStateInfo groupInfo = GroupStateInfoOuterClass.GroupStateInfo.newInstance();
private GroupStateChangeScRsp() {
}
/**
* @return a new empty instance of {@code GroupStateChangeScRsp}
*/
public static GroupStateChangeScRsp newInstance() {
return new GroupStateChangeScRsp();
}
/**
* <code>optional uint32 retcode = 4;</code>
* @return whether the retcode field is set
*/
public boolean hasRetcode() {
return (bitField0_ & 0x00000001) != 0;
}
/**
* <code>optional uint32 retcode = 4;</code>
* @return this
*/
public GroupStateChangeScRsp clearRetcode() {
bitField0_ &= ~0x00000001;
retcode = 0;
return this;
}
/**
* <code>optional uint32 retcode = 4;</code>
* @return the retcode
*/
public int getRetcode() {
return retcode;
}
/**
* <code>optional uint32 retcode = 4;</code>
* @param value the retcode to set
* @return this
*/
public GroupStateChangeScRsp setRetcode(final int value) {
bitField0_ |= 0x00000001;
retcode = value;
return this;
}
/**
* <code>optional .GroupStateInfo group_info = 3;</code>
* @return whether the groupInfo field is set
*/
public boolean hasGroupInfo() {
return (bitField0_ & 0x00000002) != 0;
}
/**
* <code>optional .GroupStateInfo group_info = 3;</code>
* @return this
*/
public GroupStateChangeScRsp clearGroupInfo() {
bitField0_ &= ~0x00000002;
groupInfo.clear();
return this;
}
/**
* <code>optional .GroupStateInfo group_info = 3;</code>
*
* This method returns the internal storage object without modifying any has state.
* The returned object should not be modified and be treated as read-only.
*
* Use {@link #getMutableGroupInfo()} if you want to modify it.
*
* @return internal storage object for reading
*/
public GroupStateInfoOuterClass.GroupStateInfo getGroupInfo() {
return groupInfo;
}
/**
* <code>optional .GroupStateInfo group_info = 3;</code>
*
* This method returns the internal storage object and sets the corresponding
* has state. The returned object will become part of this message and its
* contents may be modified as long as the has state is not cleared.
*
* @return internal storage object for modifications
*/
public GroupStateInfoOuterClass.GroupStateInfo getMutableGroupInfo() {
bitField0_ |= 0x00000002;
return groupInfo;
}
/**
* <code>optional .GroupStateInfo group_info = 3;</code>
* @param value the groupInfo to set
* @return this
*/
public GroupStateChangeScRsp setGroupInfo(final GroupStateInfoOuterClass.GroupStateInfo value) {
bitField0_ |= 0x00000002;
groupInfo.copyFrom(value);
return this;
}
@Override
public GroupStateChangeScRsp copyFrom(final GroupStateChangeScRsp other) {
cachedSize = other.cachedSize;
if ((bitField0_ | other.bitField0_) != 0) {
bitField0_ = other.bitField0_;
retcode = other.retcode;
groupInfo.copyFrom(other.groupInfo);
}
return this;
}
@Override
public GroupStateChangeScRsp mergeFrom(final GroupStateChangeScRsp other) {
if (other.isEmpty()) {
return this;
}
cachedSize = -1;
if (other.hasRetcode()) {
setRetcode(other.retcode);
}
if (other.hasGroupInfo()) {
getMutableGroupInfo().mergeFrom(other.groupInfo);
}
return this;
}
@Override
public GroupStateChangeScRsp clear() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
retcode = 0;
groupInfo.clear();
return this;
}
@Override
public GroupStateChangeScRsp clearQuick() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
groupInfo.clearQuick();
return this;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof GroupStateChangeScRsp)) {
return false;
}
GroupStateChangeScRsp other = (GroupStateChangeScRsp) o;
return bitField0_ == other.bitField0_
&& (!hasRetcode() || retcode == other.retcode)
&& (!hasGroupInfo() || groupInfo.equals(other.groupInfo));
}
@Override
public void writeTo(final ProtoSink output) throws IOException {
if ((bitField0_ & 0x00000001) != 0) {
output.writeRawByte((byte) 32);
output.writeUInt32NoTag(retcode);
}
if ((bitField0_ & 0x00000002) != 0) {
output.writeRawByte((byte) 26);
output.writeMessageNoTag(groupInfo);
}
}
@Override
protected int computeSerializedSize() {
int size = 0;
if ((bitField0_ & 0x00000001) != 0) {
size += 1 + ProtoSink.computeUInt32SizeNoTag(retcode);
}
if ((bitField0_ & 0x00000002) != 0) {
size += 1 + ProtoSink.computeMessageSizeNoTag(groupInfo);
}
return size;
}
@Override
@SuppressWarnings("fallthrough")
public GroupStateChangeScRsp mergeFrom(final ProtoSource input) throws IOException {
// Enabled Fall-Through Optimization (QuickBuffers)
int tag = input.readTag();
while (true) {
switch (tag) {
case 32: {
// retcode
retcode = input.readUInt32();
bitField0_ |= 0x00000001;
tag = input.readTag();
if (tag != 26) {
break;
}
}
case 26: {
// groupInfo
input.readMessage(groupInfo);
bitField0_ |= 0x00000002;
tag = input.readTag();
if (tag != 0) {
break;
}
}
case 0: {
return this;
}
default: {
if (!input.skipField(tag)) {
return this;
}
tag = input.readTag();
break;
}
}
}
}
@Override
public void writeTo(final JsonSink output) throws IOException {
output.beginObject();
if ((bitField0_ & 0x00000001) != 0) {
output.writeUInt32(FieldNames.retcode, retcode);
}
if ((bitField0_ & 0x00000002) != 0) {
output.writeMessage(FieldNames.groupInfo, groupInfo);
}
output.endObject();
}
@Override
public GroupStateChangeScRsp mergeFrom(final JsonSource input) throws IOException {
if (!input.beginObject()) {
return this;
}
while (!input.isAtEnd()) {
switch (input.readFieldHash()) {
case 1097936398: {
if (input.isAtField(FieldNames.retcode)) {
if (!input.trySkipNullValue()) {
retcode = input.readUInt32();
bitField0_ |= 0x00000001;
}
} else {
input.skipUnknownField();
}
break;
}
case -1483311155:
case 1282170478: {
if (input.isAtField(FieldNames.groupInfo)) {
if (!input.trySkipNullValue()) {
input.readMessage(groupInfo);
bitField0_ |= 0x00000002;
}
} else {
input.skipUnknownField();
}
break;
}
default: {
input.skipUnknownField();
break;
}
}
}
input.endObject();
return this;
}
@Override
public GroupStateChangeScRsp clone() {
return new GroupStateChangeScRsp().copyFrom(this);
}
@Override
public boolean isEmpty() {
return ((bitField0_) == 0);
}
public static GroupStateChangeScRsp parseFrom(final byte[] data) throws
InvalidProtocolBufferException {
return ProtoMessage.mergeFrom(new GroupStateChangeScRsp(), data).checkInitialized();
}
public static GroupStateChangeScRsp parseFrom(final ProtoSource input) throws IOException {
return ProtoMessage.mergeFrom(new GroupStateChangeScRsp(), input).checkInitialized();
}
public static GroupStateChangeScRsp parseFrom(final JsonSource input) throws IOException {
return ProtoMessage.mergeFrom(new GroupStateChangeScRsp(), input).checkInitialized();
}
/**
* @return factory for creating GroupStateChangeScRsp messages
*/
public static MessageFactory<GroupStateChangeScRsp> getFactory() {
return GroupStateChangeScRspFactory.INSTANCE;
}
private enum GroupStateChangeScRspFactory implements MessageFactory<GroupStateChangeScRsp> {
INSTANCE;
@Override
public GroupStateChangeScRsp create() {
return GroupStateChangeScRsp.newInstance();
}
}
/**
* Contains name constants used for serializing JSON
*/
static class FieldNames {
static final FieldName retcode = FieldName.forField("retcode");
static final FieldName groupInfo = FieldName.forField("groupInfo", "group_info");
}
}
}

View File

@@ -0,0 +1,502 @@
// Code generated by protocol buffer compiler. Do not edit!
package emu.lunarcore.proto;
import java.io.IOException;
import us.hebi.quickbuf.FieldName;
import us.hebi.quickbuf.InvalidProtocolBufferException;
import us.hebi.quickbuf.JsonSink;
import us.hebi.quickbuf.JsonSource;
import us.hebi.quickbuf.MessageFactory;
import us.hebi.quickbuf.ProtoMessage;
import us.hebi.quickbuf.ProtoSink;
import us.hebi.quickbuf.ProtoSource;
public final class GroupStateInfoOuterClass {
/**
* Protobuf type {@code GroupStateInfo}
*/
public static final class GroupStateInfo extends ProtoMessage<GroupStateInfo> implements Cloneable {
private static final long serialVersionUID = 0L;
/**
* <code>optional uint32 FIKOEFBNMHB = 4;</code>
*/
private int fIKOEFBNMHB;
/**
* <code>optional uint32 entry_id = 5;</code>
*/
private int entryId;
/**
* <code>optional uint32 group_id = 9;</code>
*/
private int groupId;
/**
* <code>optional uint32 group_state = 15;</code>
*/
private int groupState;
private GroupStateInfo() {
}
/**
* @return a new empty instance of {@code GroupStateInfo}
*/
public static GroupStateInfo newInstance() {
return new GroupStateInfo();
}
/**
* <code>optional uint32 FIKOEFBNMHB = 4;</code>
* @return whether the fIKOEFBNMHB field is set
*/
public boolean hasFIKOEFBNMHB() {
return (bitField0_ & 0x00000001) != 0;
}
/**
* <code>optional uint32 FIKOEFBNMHB = 4;</code>
* @return this
*/
public GroupStateInfo clearFIKOEFBNMHB() {
bitField0_ &= ~0x00000001;
fIKOEFBNMHB = 0;
return this;
}
/**
* <code>optional uint32 FIKOEFBNMHB = 4;</code>
* @return the fIKOEFBNMHB
*/
public int getFIKOEFBNMHB() {
return fIKOEFBNMHB;
}
/**
* <code>optional uint32 FIKOEFBNMHB = 4;</code>
* @param value the fIKOEFBNMHB to set
* @return this
*/
public GroupStateInfo setFIKOEFBNMHB(final int value) {
bitField0_ |= 0x00000001;
fIKOEFBNMHB = value;
return this;
}
/**
* <code>optional uint32 entry_id = 5;</code>
* @return whether the entryId field is set
*/
public boolean hasEntryId() {
return (bitField0_ & 0x00000002) != 0;
}
/**
* <code>optional uint32 entry_id = 5;</code>
* @return this
*/
public GroupStateInfo clearEntryId() {
bitField0_ &= ~0x00000002;
entryId = 0;
return this;
}
/**
* <code>optional uint32 entry_id = 5;</code>
* @return the entryId
*/
public int getEntryId() {
return entryId;
}
/**
* <code>optional uint32 entry_id = 5;</code>
* @param value the entryId to set
* @return this
*/
public GroupStateInfo setEntryId(final int value) {
bitField0_ |= 0x00000002;
entryId = value;
return this;
}
/**
* <code>optional uint32 group_id = 9;</code>
* @return whether the groupId field is set
*/
public boolean hasGroupId() {
return (bitField0_ & 0x00000004) != 0;
}
/**
* <code>optional uint32 group_id = 9;</code>
* @return this
*/
public GroupStateInfo clearGroupId() {
bitField0_ &= ~0x00000004;
groupId = 0;
return this;
}
/**
* <code>optional uint32 group_id = 9;</code>
* @return the groupId
*/
public int getGroupId() {
return groupId;
}
/**
* <code>optional uint32 group_id = 9;</code>
* @param value the groupId to set
* @return this
*/
public GroupStateInfo setGroupId(final int value) {
bitField0_ |= 0x00000004;
groupId = value;
return this;
}
/**
* <code>optional uint32 group_state = 15;</code>
* @return whether the groupState field is set
*/
public boolean hasGroupState() {
return (bitField0_ & 0x00000008) != 0;
}
/**
* <code>optional uint32 group_state = 15;</code>
* @return this
*/
public GroupStateInfo clearGroupState() {
bitField0_ &= ~0x00000008;
groupState = 0;
return this;
}
/**
* <code>optional uint32 group_state = 15;</code>
* @return the groupState
*/
public int getGroupState() {
return groupState;
}
/**
* <code>optional uint32 group_state = 15;</code>
* @param value the groupState to set
* @return this
*/
public GroupStateInfo setGroupState(final int value) {
bitField0_ |= 0x00000008;
groupState = value;
return this;
}
@Override
public GroupStateInfo copyFrom(final GroupStateInfo other) {
cachedSize = other.cachedSize;
if ((bitField0_ | other.bitField0_) != 0) {
bitField0_ = other.bitField0_;
fIKOEFBNMHB = other.fIKOEFBNMHB;
entryId = other.entryId;
groupId = other.groupId;
groupState = other.groupState;
}
return this;
}
@Override
public GroupStateInfo mergeFrom(final GroupStateInfo other) {
if (other.isEmpty()) {
return this;
}
cachedSize = -1;
if (other.hasFIKOEFBNMHB()) {
setFIKOEFBNMHB(other.fIKOEFBNMHB);
}
if (other.hasEntryId()) {
setEntryId(other.entryId);
}
if (other.hasGroupId()) {
setGroupId(other.groupId);
}
if (other.hasGroupState()) {
setGroupState(other.groupState);
}
return this;
}
@Override
public GroupStateInfo clear() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
fIKOEFBNMHB = 0;
entryId = 0;
groupId = 0;
groupState = 0;
return this;
}
@Override
public GroupStateInfo clearQuick() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
return this;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof GroupStateInfo)) {
return false;
}
GroupStateInfo other = (GroupStateInfo) o;
return bitField0_ == other.bitField0_
&& (!hasFIKOEFBNMHB() || fIKOEFBNMHB == other.fIKOEFBNMHB)
&& (!hasEntryId() || entryId == other.entryId)
&& (!hasGroupId() || groupId == other.groupId)
&& (!hasGroupState() || groupState == other.groupState);
}
@Override
public void writeTo(final ProtoSink output) throws IOException {
if ((bitField0_ & 0x00000001) != 0) {
output.writeRawByte((byte) 32);
output.writeUInt32NoTag(fIKOEFBNMHB);
}
if ((bitField0_ & 0x00000002) != 0) {
output.writeRawByte((byte) 40);
output.writeUInt32NoTag(entryId);
}
if ((bitField0_ & 0x00000004) != 0) {
output.writeRawByte((byte) 72);
output.writeUInt32NoTag(groupId);
}
if ((bitField0_ & 0x00000008) != 0) {
output.writeRawByte((byte) 120);
output.writeUInt32NoTag(groupState);
}
}
@Override
protected int computeSerializedSize() {
int size = 0;
if ((bitField0_ & 0x00000001) != 0) {
size += 1 + ProtoSink.computeUInt32SizeNoTag(fIKOEFBNMHB);
}
if ((bitField0_ & 0x00000002) != 0) {
size += 1 + ProtoSink.computeUInt32SizeNoTag(entryId);
}
if ((bitField0_ & 0x00000004) != 0) {
size += 1 + ProtoSink.computeUInt32SizeNoTag(groupId);
}
if ((bitField0_ & 0x00000008) != 0) {
size += 1 + ProtoSink.computeUInt32SizeNoTag(groupState);
}
return size;
}
@Override
@SuppressWarnings("fallthrough")
public GroupStateInfo mergeFrom(final ProtoSource input) throws IOException {
// Enabled Fall-Through Optimization (QuickBuffers)
int tag = input.readTag();
while (true) {
switch (tag) {
case 32: {
// fIKOEFBNMHB
fIKOEFBNMHB = input.readUInt32();
bitField0_ |= 0x00000001;
tag = input.readTag();
if (tag != 40) {
break;
}
}
case 40: {
// entryId
entryId = input.readUInt32();
bitField0_ |= 0x00000002;
tag = input.readTag();
if (tag != 72) {
break;
}
}
case 72: {
// groupId
groupId = input.readUInt32();
bitField0_ |= 0x00000004;
tag = input.readTag();
if (tag != 120) {
break;
}
}
case 120: {
// groupState
groupState = input.readUInt32();
bitField0_ |= 0x00000008;
tag = input.readTag();
if (tag != 0) {
break;
}
}
case 0: {
return this;
}
default: {
if (!input.skipField(tag)) {
return this;
}
tag = input.readTag();
break;
}
}
}
}
@Override
public void writeTo(final JsonSink output) throws IOException {
output.beginObject();
if ((bitField0_ & 0x00000001) != 0) {
output.writeUInt32(FieldNames.fIKOEFBNMHB, fIKOEFBNMHB);
}
if ((bitField0_ & 0x00000002) != 0) {
output.writeUInt32(FieldNames.entryId, entryId);
}
if ((bitField0_ & 0x00000004) != 0) {
output.writeUInt32(FieldNames.groupId, groupId);
}
if ((bitField0_ & 0x00000008) != 0) {
output.writeUInt32(FieldNames.groupState, groupState);
}
output.endObject();
}
@Override
public GroupStateInfo mergeFrom(final JsonSource input) throws IOException {
if (!input.beginObject()) {
return this;
}
while (!input.isAtEnd()) {
switch (input.readFieldHash()) {
case -1689558285: {
if (input.isAtField(FieldNames.fIKOEFBNMHB)) {
if (!input.trySkipNullValue()) {
fIKOEFBNMHB = input.readUInt32();
bitField0_ |= 0x00000001;
}
} else {
input.skipUnknownField();
}
break;
}
case -1591558867:
case -2093663224: {
if (input.isAtField(FieldNames.entryId)) {
if (!input.trySkipNullValue()) {
entryId = input.readUInt32();
bitField0_ |= 0x00000002;
}
} else {
input.skipUnknownField();
}
break;
}
case 293428218:
case 506361563: {
if (input.isAtField(FieldNames.groupId)) {
if (!input.trySkipNullValue()) {
groupId = input.readUInt32();
bitField0_ |= 0x00000004;
}
} else {
input.skipUnknownField();
}
break;
}
case 1271403858:
case 1101988561: {
if (input.isAtField(FieldNames.groupState)) {
if (!input.trySkipNullValue()) {
groupState = input.readUInt32();
bitField0_ |= 0x00000008;
}
} else {
input.skipUnknownField();
}
break;
}
default: {
input.skipUnknownField();
break;
}
}
}
input.endObject();
return this;
}
@Override
public GroupStateInfo clone() {
return new GroupStateInfo().copyFrom(this);
}
@Override
public boolean isEmpty() {
return ((bitField0_) == 0);
}
public static GroupStateInfo parseFrom(final byte[] data) throws
InvalidProtocolBufferException {
return ProtoMessage.mergeFrom(new GroupStateInfo(), data).checkInitialized();
}
public static GroupStateInfo parseFrom(final ProtoSource input) throws IOException {
return ProtoMessage.mergeFrom(new GroupStateInfo(), input).checkInitialized();
}
public static GroupStateInfo parseFrom(final JsonSource input) throws IOException {
return ProtoMessage.mergeFrom(new GroupStateInfo(), input).checkInitialized();
}
/**
* @return factory for creating GroupStateInfo messages
*/
public static MessageFactory<GroupStateInfo> getFactory() {
return GroupStateInfoFactory.INSTANCE;
}
private enum GroupStateInfoFactory implements MessageFactory<GroupStateInfo> {
INSTANCE;
@Override
public GroupStateInfo create() {
return GroupStateInfo.newInstance();
}
}
/**
* Contains name constants used for serializing JSON
*/
static class FieldNames {
static final FieldName fIKOEFBNMHB = FieldName.forField("FIKOEFBNMHB");
static final FieldName entryId = FieldName.forField("entryId", "entry_id");
static final FieldName groupId = FieldName.forField("groupId", "group_id");
static final FieldName groupState = FieldName.forField("groupState", "group_state");
}
}
}

View File

@@ -18,6 +18,11 @@ public final class InteractPropCsReqOuterClass {
public static final class InteractPropCsReq extends ProtoMessage<InteractPropCsReq> implements Cloneable { public static final class InteractPropCsReq extends ProtoMessage<InteractPropCsReq> implements Cloneable {
private static final long serialVersionUID = 0L; private static final long serialVersionUID = 0L;
/**
* <code>optional uint32 interact_id = 7;</code>
*/
private int interactId;
/** /**
* <code>optional uint32 prop_entity_id = 15;</code> * <code>optional uint32 prop_entity_id = 15;</code>
*/ */
@@ -33,12 +38,49 @@ public final class InteractPropCsReqOuterClass {
return new InteractPropCsReq(); return new InteractPropCsReq();
} }
/**
* <code>optional uint32 interact_id = 7;</code>
* @return whether the interactId field is set
*/
public boolean hasInteractId() {
return (bitField0_ & 0x00000001) != 0;
}
/**
* <code>optional uint32 interact_id = 7;</code>
* @return this
*/
public InteractPropCsReq clearInteractId() {
bitField0_ &= ~0x00000001;
interactId = 0;
return this;
}
/**
* <code>optional uint32 interact_id = 7;</code>
* @return the interactId
*/
public int getInteractId() {
return interactId;
}
/**
* <code>optional uint32 interact_id = 7;</code>
* @param value the interactId to set
* @return this
*/
public InteractPropCsReq setInteractId(final int value) {
bitField0_ |= 0x00000001;
interactId = value;
return this;
}
/** /**
* <code>optional uint32 prop_entity_id = 15;</code> * <code>optional uint32 prop_entity_id = 15;</code>
* @return whether the propEntityId field is set * @return whether the propEntityId field is set
*/ */
public boolean hasPropEntityId() { public boolean hasPropEntityId() {
return (bitField0_ & 0x00000001) != 0; return (bitField0_ & 0x00000002) != 0;
} }
/** /**
@@ -46,7 +88,7 @@ public final class InteractPropCsReqOuterClass {
* @return this * @return this
*/ */
public InteractPropCsReq clearPropEntityId() { public InteractPropCsReq clearPropEntityId() {
bitField0_ &= ~0x00000001; bitField0_ &= ~0x00000002;
propEntityId = 0; propEntityId = 0;
return this; return this;
} }
@@ -65,7 +107,7 @@ public final class InteractPropCsReqOuterClass {
* @return this * @return this
*/ */
public InteractPropCsReq setPropEntityId(final int value) { public InteractPropCsReq setPropEntityId(final int value) {
bitField0_ |= 0x00000001; bitField0_ |= 0x00000002;
propEntityId = value; propEntityId = value;
return this; return this;
} }
@@ -75,6 +117,7 @@ public final class InteractPropCsReqOuterClass {
cachedSize = other.cachedSize; cachedSize = other.cachedSize;
if ((bitField0_ | other.bitField0_) != 0) { if ((bitField0_ | other.bitField0_) != 0) {
bitField0_ = other.bitField0_; bitField0_ = other.bitField0_;
interactId = other.interactId;
propEntityId = other.propEntityId; propEntityId = other.propEntityId;
} }
return this; return this;
@@ -86,6 +129,9 @@ public final class InteractPropCsReqOuterClass {
return this; return this;
} }
cachedSize = -1; cachedSize = -1;
if (other.hasInteractId()) {
setInteractId(other.interactId);
}
if (other.hasPropEntityId()) { if (other.hasPropEntityId()) {
setPropEntityId(other.propEntityId); setPropEntityId(other.propEntityId);
} }
@@ -99,6 +145,7 @@ public final class InteractPropCsReqOuterClass {
} }
cachedSize = -1; cachedSize = -1;
bitField0_ = 0; bitField0_ = 0;
interactId = 0;
propEntityId = 0; propEntityId = 0;
return this; return this;
} }
@@ -123,12 +170,17 @@ public final class InteractPropCsReqOuterClass {
} }
InteractPropCsReq other = (InteractPropCsReq) o; InteractPropCsReq other = (InteractPropCsReq) o;
return bitField0_ == other.bitField0_ return bitField0_ == other.bitField0_
&& (!hasInteractId() || interactId == other.interactId)
&& (!hasPropEntityId() || propEntityId == other.propEntityId); && (!hasPropEntityId() || propEntityId == other.propEntityId);
} }
@Override @Override
public void writeTo(final ProtoSink output) throws IOException { public void writeTo(final ProtoSink output) throws IOException {
if ((bitField0_ & 0x00000001) != 0) { if ((bitField0_ & 0x00000001) != 0) {
output.writeRawByte((byte) 56);
output.writeUInt32NoTag(interactId);
}
if ((bitField0_ & 0x00000002) != 0) {
output.writeRawByte((byte) 120); output.writeRawByte((byte) 120);
output.writeUInt32NoTag(propEntityId); output.writeUInt32NoTag(propEntityId);
} }
@@ -138,6 +190,9 @@ public final class InteractPropCsReqOuterClass {
protected int computeSerializedSize() { protected int computeSerializedSize() {
int size = 0; int size = 0;
if ((bitField0_ & 0x00000001) != 0) { if ((bitField0_ & 0x00000001) != 0) {
size += 1 + ProtoSink.computeUInt32SizeNoTag(interactId);
}
if ((bitField0_ & 0x00000002) != 0) {
size += 1 + ProtoSink.computeUInt32SizeNoTag(propEntityId); size += 1 + ProtoSink.computeUInt32SizeNoTag(propEntityId);
} }
return size; return size;
@@ -150,10 +205,19 @@ public final class InteractPropCsReqOuterClass {
int tag = input.readTag(); int tag = input.readTag();
while (true) { while (true) {
switch (tag) { switch (tag) {
case 56: {
// interactId
interactId = input.readUInt32();
bitField0_ |= 0x00000001;
tag = input.readTag();
if (tag != 120) {
break;
}
}
case 120: { case 120: {
// propEntityId // propEntityId
propEntityId = input.readUInt32(); propEntityId = input.readUInt32();
bitField0_ |= 0x00000001; bitField0_ |= 0x00000002;
tag = input.readTag(); tag = input.readTag();
if (tag != 0) { if (tag != 0) {
break; break;
@@ -177,6 +241,9 @@ public final class InteractPropCsReqOuterClass {
public void writeTo(final JsonSink output) throws IOException { public void writeTo(final JsonSink output) throws IOException {
output.beginObject(); output.beginObject();
if ((bitField0_ & 0x00000001) != 0) { if ((bitField0_ & 0x00000001) != 0) {
output.writeUInt32(FieldNames.interactId, interactId);
}
if ((bitField0_ & 0x00000002) != 0) {
output.writeUInt32(FieldNames.propEntityId, propEntityId); output.writeUInt32(FieldNames.propEntityId, propEntityId);
} }
output.endObject(); output.endObject();
@@ -189,12 +256,24 @@ public final class InteractPropCsReqOuterClass {
} }
while (!input.isAtEnd()) { while (!input.isAtEnd()) {
switch (input.readFieldHash()) { switch (input.readFieldHash()) {
case -1603081743:
case 1844094916: {
if (input.isAtField(FieldNames.interactId)) {
if (!input.trySkipNullValue()) {
interactId = input.readUInt32();
bitField0_ |= 0x00000001;
}
} else {
input.skipUnknownField();
}
break;
}
case -68717343: case -68717343:
case -57484005: { case -57484005: {
if (input.isAtField(FieldNames.propEntityId)) { if (input.isAtField(FieldNames.propEntityId)) {
if (!input.trySkipNullValue()) { if (!input.trySkipNullValue()) {
propEntityId = input.readUInt32(); propEntityId = input.readUInt32();
bitField0_ |= 0x00000001; bitField0_ |= 0x00000002;
} }
} else { } else {
input.skipUnknownField(); input.skipUnknownField();
@@ -254,6 +333,8 @@ public final class InteractPropCsReqOuterClass {
* Contains name constants used for serializing JSON * Contains name constants used for serializing JSON
*/ */
static class FieldNames { static class FieldNames {
static final FieldName interactId = FieldName.forField("interactId", "interact_id");
static final FieldName propEntityId = FieldName.forField("propEntityId", "prop_entity_id"); static final FieldName propEntityId = FieldName.forField("propEntityId", "prop_entity_id");
} }
} }

View File

@@ -1,483 +0,0 @@
// Code generated by protocol buffer compiler. Do not edit!
package emu.lunarcore.proto;
import java.io.IOException;
import us.hebi.quickbuf.FieldName;
import us.hebi.quickbuf.InvalidProtocolBufferException;
import us.hebi.quickbuf.JsonSink;
import us.hebi.quickbuf.JsonSource;
import us.hebi.quickbuf.MessageFactory;
import us.hebi.quickbuf.ProtoMessage;
import us.hebi.quickbuf.ProtoSink;
import us.hebi.quickbuf.ProtoSource;
import us.hebi.quickbuf.Utf8String;
public final class PlayerLoginCsReqOuterClass {
/**
* Protobuf type {@code PlayerLoginCsReq}
*/
public static final class PlayerLoginCsReq extends ProtoMessage<PlayerLoginCsReq> implements Cloneable {
private static final long serialVersionUID = 0L;
/**
* <code>optional uint64 login_random = 1;</code>
*/
private long loginRandom;
/**
* <code>optional .PlatformType platform = 12;</code>
*/
private int platform;
/**
* <code>optional string signature = 4;</code>
*/
private final Utf8String signature = Utf8String.newEmptyInstance();
private PlayerLoginCsReq() {
}
/**
* @return a new empty instance of {@code PlayerLoginCsReq}
*/
public static PlayerLoginCsReq newInstance() {
return new PlayerLoginCsReq();
}
/**
* <code>optional uint64 login_random = 1;</code>
* @return whether the loginRandom field is set
*/
public boolean hasLoginRandom() {
return (bitField0_ & 0x00000001) != 0;
}
/**
* <code>optional uint64 login_random = 1;</code>
* @return this
*/
public PlayerLoginCsReq clearLoginRandom() {
bitField0_ &= ~0x00000001;
loginRandom = 0L;
return this;
}
/**
* <code>optional uint64 login_random = 1;</code>
* @return the loginRandom
*/
public long getLoginRandom() {
return loginRandom;
}
/**
* <code>optional uint64 login_random = 1;</code>
* @param value the loginRandom to set
* @return this
*/
public PlayerLoginCsReq setLoginRandom(final long value) {
bitField0_ |= 0x00000001;
loginRandom = value;
return this;
}
/**
* <code>optional .PlatformType platform = 12;</code>
* @return whether the platform field is set
*/
public boolean hasPlatform() {
return (bitField0_ & 0x00000002) != 0;
}
/**
* <code>optional .PlatformType platform = 12;</code>
* @return this
*/
public PlayerLoginCsReq clearPlatform() {
bitField0_ &= ~0x00000002;
platform = 0;
return this;
}
/**
* <code>optional .PlatformType platform = 12;</code>
* @return the platform
*/
public PlatformTypeOuterClass.PlatformType getPlatform() {
return PlatformTypeOuterClass.PlatformType.forNumber(platform);
}
/**
* Gets the value of the internal enum store. The result is
* equivalent to {@link PlayerLoginCsReq#getPlatform()}.getNumber().
*
* @return numeric wire representation
*/
public int getPlatformValue() {
return platform;
}
/**
* Sets the value of the internal enum store. This does not
* do any validity checks, so be sure to use appropriate value
* constants from {@link PlatformTypeOuterClass.PlatformType}. Setting an invalid value
* can cause {@link PlayerLoginCsReq#getPlatform()} to return null
*
* @param value the numeric wire value to set
* @return this
*/
public PlayerLoginCsReq setPlatformValue(final int value) {
bitField0_ |= 0x00000002;
platform = value;
return this;
}
/**
* <code>optional .PlatformType platform = 12;</code>
* @param value the platform to set
* @return this
*/
public PlayerLoginCsReq setPlatform(final PlatformTypeOuterClass.PlatformType value) {
bitField0_ |= 0x00000002;
platform = value.getNumber();
return this;
}
/**
* <code>optional string signature = 4;</code>
* @return whether the signature field is set
*/
public boolean hasSignature() {
return (bitField0_ & 0x00000004) != 0;
}
/**
* <code>optional string signature = 4;</code>
* @return this
*/
public PlayerLoginCsReq clearSignature() {
bitField0_ &= ~0x00000004;
signature.clear();
return this;
}
/**
* <code>optional string signature = 4;</code>
* @return the signature
*/
public String getSignature() {
return signature.getString();
}
/**
* <code>optional string signature = 4;</code>
* @return internal {@code Utf8String} representation of signature for reading
*/
public Utf8String getSignatureBytes() {
return this.signature;
}
/**
* <code>optional string signature = 4;</code>
* @return internal {@code Utf8String} representation of signature for modifications
*/
public Utf8String getMutableSignatureBytes() {
bitField0_ |= 0x00000004;
return this.signature;
}
/**
* <code>optional string signature = 4;</code>
* @param value the signature to set
* @return this
*/
public PlayerLoginCsReq setSignature(final CharSequence value) {
bitField0_ |= 0x00000004;
signature.copyFrom(value);
return this;
}
/**
* <code>optional string signature = 4;</code>
* @param value the signature to set
* @return this
*/
public PlayerLoginCsReq setSignature(final Utf8String value) {
bitField0_ |= 0x00000004;
signature.copyFrom(value);
return this;
}
@Override
public PlayerLoginCsReq copyFrom(final PlayerLoginCsReq other) {
cachedSize = other.cachedSize;
if ((bitField0_ | other.bitField0_) != 0) {
bitField0_ = other.bitField0_;
loginRandom = other.loginRandom;
platform = other.platform;
signature.copyFrom(other.signature);
}
return this;
}
@Override
public PlayerLoginCsReq mergeFrom(final PlayerLoginCsReq other) {
if (other.isEmpty()) {
return this;
}
cachedSize = -1;
if (other.hasLoginRandom()) {
setLoginRandom(other.loginRandom);
}
if (other.hasPlatform()) {
setPlatformValue(other.platform);
}
if (other.hasSignature()) {
getMutableSignatureBytes().copyFrom(other.signature);
}
return this;
}
@Override
public PlayerLoginCsReq clear() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
loginRandom = 0L;
platform = 0;
signature.clear();
return this;
}
@Override
public PlayerLoginCsReq clearQuick() {
if (isEmpty()) {
return this;
}
cachedSize = -1;
bitField0_ = 0;
signature.clear();
return this;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof PlayerLoginCsReq)) {
return false;
}
PlayerLoginCsReq other = (PlayerLoginCsReq) o;
return bitField0_ == other.bitField0_
&& (!hasLoginRandom() || loginRandom == other.loginRandom)
&& (!hasPlatform() || platform == other.platform)
&& (!hasSignature() || signature.equals(other.signature));
}
@Override
public void writeTo(final ProtoSink output) throws IOException {
if ((bitField0_ & 0x00000001) != 0) {
output.writeRawByte((byte) 8);
output.writeUInt64NoTag(loginRandom);
}
if ((bitField0_ & 0x00000002) != 0) {
output.writeRawByte((byte) 96);
output.writeEnumNoTag(platform);
}
if ((bitField0_ & 0x00000004) != 0) {
output.writeRawByte((byte) 34);
output.writeStringNoTag(signature);
}
}
@Override
protected int computeSerializedSize() {
int size = 0;
if ((bitField0_ & 0x00000001) != 0) {
size += 1 + ProtoSink.computeUInt64SizeNoTag(loginRandom);
}
if ((bitField0_ & 0x00000002) != 0) {
size += 1 + ProtoSink.computeEnumSizeNoTag(platform);
}
if ((bitField0_ & 0x00000004) != 0) {
size += 1 + ProtoSink.computeStringSizeNoTag(signature);
}
return size;
}
@Override
@SuppressWarnings("fallthrough")
public PlayerLoginCsReq mergeFrom(final ProtoSource input) throws IOException {
// Enabled Fall-Through Optimization (QuickBuffers)
int tag = input.readTag();
while (true) {
switch (tag) {
case 8: {
// loginRandom
loginRandom = input.readUInt64();
bitField0_ |= 0x00000001;
tag = input.readTag();
if (tag != 96) {
break;
}
}
case 96: {
// platform
final int value = input.readInt32();
if (PlatformTypeOuterClass.PlatformType.forNumber(value) != null) {
platform = value;
bitField0_ |= 0x00000002;
}
tag = input.readTag();
if (tag != 34) {
break;
}
}
case 34: {
// signature
input.readString(signature);
bitField0_ |= 0x00000004;
tag = input.readTag();
if (tag != 0) {
break;
}
}
case 0: {
return this;
}
default: {
if (!input.skipField(tag)) {
return this;
}
tag = input.readTag();
break;
}
}
}
}
@Override
public void writeTo(final JsonSink output) throws IOException {
output.beginObject();
if ((bitField0_ & 0x00000001) != 0) {
output.writeUInt64(FieldNames.loginRandom, loginRandom);
}
if ((bitField0_ & 0x00000002) != 0) {
output.writeEnum(FieldNames.platform, platform, PlatformTypeOuterClass.PlatformType.converter());
}
if ((bitField0_ & 0x00000004) != 0) {
output.writeString(FieldNames.signature, signature);
}
output.endObject();
}
@Override
public PlayerLoginCsReq mergeFrom(final JsonSource input) throws IOException {
if (!input.beginObject()) {
return this;
}
while (!input.isAtEnd()) {
switch (input.readFieldHash()) {
case 1268567436:
case -201491879: {
if (input.isAtField(FieldNames.loginRandom)) {
if (!input.trySkipNullValue()) {
loginRandom = input.readUInt64();
bitField0_ |= 0x00000001;
}
} else {
input.skipUnknownField();
}
break;
}
case 1874684019: {
if (input.isAtField(FieldNames.platform)) {
if (!input.trySkipNullValue()) {
final PlatformTypeOuterClass.PlatformType value = input.readEnum(PlatformTypeOuterClass.PlatformType.converter());
if (value != null) {
platform = value.getNumber();
bitField0_ |= 0x00000002;
} else {
input.skipUnknownEnumValue();
}
}
} else {
input.skipUnknownField();
}
break;
}
case 1073584312: {
if (input.isAtField(FieldNames.signature)) {
if (!input.trySkipNullValue()) {
input.readString(signature);
bitField0_ |= 0x00000004;
}
} else {
input.skipUnknownField();
}
break;
}
default: {
input.skipUnknownField();
break;
}
}
}
input.endObject();
return this;
}
@Override
public PlayerLoginCsReq clone() {
return new PlayerLoginCsReq().copyFrom(this);
}
@Override
public boolean isEmpty() {
return ((bitField0_) == 0);
}
public static PlayerLoginCsReq parseFrom(final byte[] data) throws
InvalidProtocolBufferException {
return ProtoMessage.mergeFrom(new PlayerLoginCsReq(), data).checkInitialized();
}
public static PlayerLoginCsReq parseFrom(final ProtoSource input) throws IOException {
return ProtoMessage.mergeFrom(new PlayerLoginCsReq(), input).checkInitialized();
}
public static PlayerLoginCsReq parseFrom(final JsonSource input) throws IOException {
return ProtoMessage.mergeFrom(new PlayerLoginCsReq(), input).checkInitialized();
}
/**
* @return factory for creating PlayerLoginCsReq messages
*/
public static MessageFactory<PlayerLoginCsReq> getFactory() {
return PlayerLoginCsReqFactory.INSTANCE;
}
private enum PlayerLoginCsReqFactory implements MessageFactory<PlayerLoginCsReq> {
INSTANCE;
@Override
public PlayerLoginCsReq create() {
return PlayerLoginCsReq.newInstance();
}
}
/**
* Contains name constants used for serializing JSON
*/
static class FieldNames {
static final FieldName loginRandom = FieldName.forField("loginRandom", "login_random");
static final FieldName platform = FieldName.forField("platform");
static final FieldName signature = FieldName.forField("signature");
}
}
}

View File

@@ -33,6 +33,7 @@ public class GameData {
@Getter private static Int2ObjectMap<HeroExcel> heroExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap<HeroExcel> heroExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<ShopExcel> shopExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap<ShopExcel> shopExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RewardExcel> rewardExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap<RewardExcel> rewardExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<InteractExcel> interactExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<PlayerIconExcel> playerIconExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap<PlayerIconExcel> playerIconExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<ItemComposeExcel> itemComposeExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap<ItemComposeExcel> itemComposeExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<ActivityPanelExcel> activityPanelExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap<ActivityPanelExcel> activityPanelExcelMap = new Int2ObjectOpenHashMap<>();

View File

@@ -72,10 +72,12 @@ public class FloorInfo {
// Hacky way to setup prop triggers // Hacky way to setup prop triggers
if (json.contains("Maze_GroupProp_OpenTreasure_WhenMonsterDie")) { if (json.contains("Maze_GroupProp_OpenTreasure_WhenMonsterDie")) {
prop.setTrigger(new TriggerOpenTreasureWhenMonsterDie(group.getId())); prop.setTrigger(new TriggerOpenTreasureWhenMonsterDie(group.getId()));
} else if (json.contains("Maze_Chap02_X201_Event_PuzzleCompass_WayPoint_Controller_01")) { } else if (json.contains("Maze_Chap02_X201_Event_PuzzleCompass_WayPoint_Controller")) {
prop.setTrigger(new TriggerPuzzleCompassWayPointController(prop.getSharedValueByKey("PuzzleCompass_Prop"), prop.getSharedValueByKey("PuzzleChest_Prop"))); prop.setTrigger(new TriggerPuzzleCompassWayPointController(group.getId()));
} }
// Clear for garbage collection
prop.setValueSource(null);
prop.setInitLevelGraph(null); prop.setInitLevelGraph(null);
} }
} }

View File

@@ -25,8 +25,8 @@ public class PropInfo extends ObjectInfo {
private int CocoonID; private int CocoonID;
private int FarmElementID; private int FarmElementID;
private boolean IsClientOnly; private boolean IsClientOnly;
private PropValueSource ValueSource;
@Setter private PropValueSource ValueSource;
@Setter private String InitLevelGraph; @Setter private String InitLevelGraph;
@Setter private PropState State = PropState.Closed; @Setter private PropState State = PropState.Closed;

View File

@@ -0,0 +1,27 @@
package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.game.enums.PropState;
import lombok.Getter;
@Getter
@ResourceType(name = {"InteractConfig.json"})
public class InteractExcel extends GameResource {
private int InteractID;
private PropState SrcState;
private PropState TargetState = PropState.Closed;
@Override
public int getId() {
return InteractID;
}
@Override
public void onLoad() {
// Just in case we forget to update the prop state enum
if (this.TargetState == null) {
this.TargetState = PropState.Closed;
}
}
}

View File

@@ -1,7 +1,10 @@
package emu.lunarcore.data.excel; package emu.lunarcore.data.excel;
import java.util.Set;
import emu.lunarcore.data.GameResource; import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType; import emu.lunarcore.data.ResourceType;
import emu.lunarcore.game.enums.PropState;
import emu.lunarcore.game.enums.PropType; import emu.lunarcore.game.enums.PropType;
import lombok.Getter; import lombok.Getter;
@@ -12,6 +15,7 @@ public class PropExcel extends GameResource {
private long PropName; private long PropName;
private String JsonPath; private String JsonPath;
private PropType PropType; private PropType PropType;
private Set<PropState> PropStateList;
private transient boolean recoverHp; private transient boolean recoverHp;
private transient boolean recoverMp; private transient boolean recoverMp;
@@ -34,6 +38,11 @@ public class PropExcel extends GameResource {
this.isDoor = true; this.isDoor = true;
} }
} }
// Sanity
if (this.PropStateList == null) {
this.PropStateList = Set.of();
}
// Clear for optimization // Clear for optimization
this.JsonPath = null; this.JsonPath = null;

View File

@@ -12,6 +12,7 @@ import emu.lunarcore.data.GameData;
import emu.lunarcore.data.config.AnchorInfo; import emu.lunarcore.data.config.AnchorInfo;
import emu.lunarcore.data.config.FloorInfo; import emu.lunarcore.data.config.FloorInfo;
import emu.lunarcore.data.config.PropInfo; import emu.lunarcore.data.config.PropInfo;
import emu.lunarcore.data.excel.InteractExcel;
import emu.lunarcore.data.excel.ItemUseExcel; import emu.lunarcore.data.excel.ItemUseExcel;
import emu.lunarcore.data.excel.MapEntranceExcel; import emu.lunarcore.data.excel.MapEntranceExcel;
import emu.lunarcore.data.excel.MazePlaneExcel; import emu.lunarcore.data.excel.MazePlaneExcel;
@@ -578,7 +579,7 @@ public class Player implements Tickable {
return true; return true;
} }
public EntityProp interactWithProp(int propEntityId) { public EntityProp interactWithProp(int interactId, int propEntityId) {
// Sanity // Sanity
if (this.getScene() == null) return null; if (this.getScene() == null) return null;
@@ -592,33 +593,44 @@ public class Player implements Tickable {
return null; return null;
} }
// Handle prop interaction action // Get interact handler
InteractExcel interactExcel = GameData.getInteractExcelMap().get(interactId);
if (interactExcel == null) {
return prop;
}
// Validate
if (interactExcel.getSrcState() != null && prop.getState() != interactExcel.getSrcState()) {
return prop;
}
// Save old state
PropState oldState = prop.getState();
// Set group and prop state
this.sendPacket(new PacketGroupStateChangeScNotify(getEntryId(), prop.getGroupId(), interactExcel.getTargetState()));
prop.setState(interactExcel.getTargetState());
// Handle any extra interaction actions
switch (prop.getExcel().getPropType()) { switch (prop.getExcel().getPropType()) {
case PROP_TREASURE_CHEST -> { case PROP_TREASURE_CHEST -> {
if (prop.getState() == PropState.ChestClosed) { if (oldState == PropState.ChestClosed && prop.getState() == PropState.ChestUsed) {
// Open chest
prop.setState(PropState.ChestUsed);
// Handle drops // Handle drops
var drops = this.getServer().getDropService().calculateDropsFromProp(prop.getPropId()); var drops = this.getServer().getDropService().calculateDropsFromProp(prop.getPropId());
this.getInventory().addItems(drops, true); this.getInventory().addItems(drops, true);
// Done
return prop;
} else {
return null;
} }
} }
case PROP_MAZE_PUZZLE -> { case PROP_MAZE_PUZZLE -> {
// Finish puzzle
prop.setState(PropState.Locked);
// Trigger event // Trigger event
this.getScene().invokePropTrigger(PropTriggerType.PUZZLE_FINISH, prop.getGroupId(), prop.getInstId()); this.getScene().invokePropTrigger(PropTriggerType.PUZZLE_FINISH, prop.getGroupId(), prop.getInstId());
//
return prop;
} }
default -> { default -> {
return null;
} }
} }
// Return prop when we are done
return prop;
} }
public void onMove() { public void onMove() {

View File

@@ -155,6 +155,14 @@ public class Scene implements Tickable {
public synchronized GameEntity getEntityById(int id) { public synchronized GameEntity getEntityById(int id) {
return this.getEntities().get(id); return this.getEntities().get(id);
} }
public synchronized <T extends GameEntity> List<T> getEntitiesByGroup(Class<T> entityType, int groupId) {
return this.getEntities().values()
.stream()
.filter(e -> entityType.isInstance(e) && e.getGroupId() == groupId)
.map(entityType::cast)
.toList();
}
public void syncLineup() { public void syncLineup() {
// Get current lineup // Get current lineup

View File

@@ -54,17 +54,30 @@ public class EntityProp implements GameEntity {
return excel.getId(); return excel.getId();
} }
public void setState(PropState state) { public boolean setState(PropState state) {
this.setState(state, this.getScene().isLoaded()); return this.setState(state, this.getScene().isLoaded());
} }
public void setState(PropState state, boolean sendPacket) { public boolean setState(PropState state, boolean sendPacket) {
// Only set state if its been changed
PropState oldState = this.getState();
if (oldState == state) return false;
// Sanity check
if (!this.getExcel().getPropStateList().contains(state)) {
return false;
}
// Set state // Set state
this.state = state; this.state = state;
// Sync state update to client // Sync state update to client
if (sendPacket) { if (sendPacket) {
this.getScene().getPlayer().sendPacket(new PacketSceneGroupRefreshScNotify(this, null)); this.getScene().getPlayer().sendPacket(new PacketSceneGroupRefreshScNotify(this, null));
} }
// Success
return true;
} }
@Override @Override
@@ -98,6 +111,10 @@ public class EntityProp implements GameEntity {
@Override @Override
public String toString() { public String toString() {
return "Prop: " + this.getEntityId() + ", Group: " + this.groupId + ", Inst: " + this.getInstId(); return "[Prop] EntityId: " + this.getEntityId() +
", PropId: " + this.getExcel().getId() +
" (" + this.getExcel().getPropType() + ")" +
", Group: " + this.groupId +
", ConfigId: " + this.getInstId();
} }
} }

View File

@@ -4,7 +4,6 @@ import emu.lunarcore.game.enums.PropState;
import emu.lunarcore.game.enums.PropType; import emu.lunarcore.game.enums.PropType;
import emu.lunarcore.game.scene.Scene; import emu.lunarcore.game.scene.Scene;
import emu.lunarcore.game.scene.entity.EntityProp; import emu.lunarcore.game.scene.entity.EntityProp;
import emu.lunarcore.game.scene.entity.GameEntity;
import lombok.Getter; import lombok.Getter;
@Getter @Getter
@@ -27,17 +26,10 @@ public class TriggerOpenTreasureWhenMonsterDie extends PropTrigger {
@Override @Override
public void run(Scene scene) { public void run(Scene scene) {
synchronized (scene) { // Open trigger
for (GameEntity entity : scene.getEntities().values()) { for (var prop : scene.getEntitiesByGroup(EntityProp.class, this.getGroupId())) {
if (entity.getGroupId() != this.groupId) { if (prop.getExcel().getPropType() == PropType.PROP_TREASURE_CHEST) {
continue; prop.setState(PropState.ChestClosed);
}
if (entity instanceof EntityProp prop) {
if (prop.getExcel().getPropType() == PropType.PROP_TREASURE_CHEST) {
prop.setState(PropState.ChestClosed);
}
}
} }
} }
} }

View File

@@ -3,23 +3,14 @@ package emu.lunarcore.game.scene.triggers;
import emu.lunarcore.game.enums.PropState; import emu.lunarcore.game.enums.PropState;
import emu.lunarcore.game.scene.Scene; import emu.lunarcore.game.scene.Scene;
import emu.lunarcore.game.scene.entity.EntityProp; import emu.lunarcore.game.scene.entity.EntityProp;
import emu.lunarcore.game.scene.entity.GameEntity;
import emu.lunarcore.util.Utils;
import lombok.Getter; import lombok.Getter;
@Getter @Getter
public class TriggerPuzzleCompassWayPointController extends PropTrigger { public class TriggerPuzzleCompassWayPointController extends PropTrigger {
private int groupId; private int groupId;
private int puzzleInstId;
private int chestInstId;
public TriggerPuzzleCompassWayPointController(String compassKey, String chestKey) { public TriggerPuzzleCompassWayPointController(int groupId) {
String[] compass = compassKey.split(","); this.groupId = groupId;
String[] chest = chestKey.split(",");
this.groupId = Utils.parseSafeInt(compass[0]);
this.puzzleInstId = Utils.parseSafeInt(compass[1]);
this.chestInstId = Utils.parseSafeInt(chest[1]);
} }
@Override @Override
@@ -29,23 +20,13 @@ public class TriggerPuzzleCompassWayPointController extends PropTrigger {
@Override @Override
public boolean shouldRun(int groupId, int instId) { public boolean shouldRun(int groupId, int instId) {
return this.groupId == groupId && this.puzzleInstId == instId; return this.groupId == groupId;
} }
@Override @Override
public void run(Scene scene) { public void run(Scene scene) {
synchronized (scene) { for (var prop : scene.getEntitiesByGroup(EntityProp.class, groupId)) {
for (GameEntity entity : scene.getEntities().values()) { prop.setState(PropState.Open);
if (entity.getGroupId() != this.groupId) {
continue;
}
if (entity instanceof EntityProp prop) {
if (prop.getInstId() == chestInstId) {
prop.setState(PropState.ChestClosed);
}
}
}
} }
} }
} }

View File

@@ -0,0 +1,23 @@
package emu.lunarcore.server.packet.recv;
import emu.lunarcore.proto.GroupStateChangeCsReqOuterClass.GroupStateChangeCsReq;
import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.server.packet.Opcodes;
import emu.lunarcore.server.packet.PacketHandler;
import emu.lunarcore.server.packet.send.PacketGroupStateChangeScNotify;
import emu.lunarcore.server.packet.send.PacketGroupStateChangeScRsp;
@Opcodes(CmdId.GroupStateChangeCsReq)
public class HandlerGroupStateChangeCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] data) throws Exception {
var req = GroupStateChangeCsReq.parseFrom(data);
var groupInfo = req.getMutableGroupInfo();
session.send(new PacketGroupStateChangeScNotify(groupInfo));
session.send(new PacketGroupStateChangeScRsp(groupInfo));
}
}

View File

@@ -15,7 +15,7 @@ public class HandlerInteractPropCsReq extends PacketHandler {
public void handle(GameSession session, byte[] data) throws Exception { public void handle(GameSession session, byte[] data) throws Exception {
var req = InteractPropCsReq.parseFrom(data); var req = InteractPropCsReq.parseFrom(data);
EntityProp prop = session.getPlayer().interactWithProp(req.getPropEntityId()); EntityProp prop = session.getPlayer().interactWithProp(req.getInteractId(), req.getPropEntityId());
session.send(new PacketInteractPropScRsp(prop)); session.send(new PacketInteractPropScRsp(prop));
} }

View File

@@ -0,0 +1,32 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.game.enums.PropState;
import emu.lunarcore.proto.GroupStateChangeScNotifyOuterClass.GroupStateChangeScNotify;
import emu.lunarcore.proto.GroupStateInfoOuterClass.GroupStateInfo;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
public class PacketGroupStateChangeScNotify extends BasePacket {
public PacketGroupStateChangeScNotify(GroupStateInfo groupInfo) {
super(CmdId.GroupStateChangeScNotify);
var data = GroupStateChangeScNotify.newInstance();
data.setGroupInfo(groupInfo);
this.setData(data);
}
public PacketGroupStateChangeScNotify(int entryId, int groupId, PropState state) {
super(CmdId.GroupStateChangeScNotify);
var data = GroupStateChangeScNotify.newInstance();
data.getMutableGroupInfo()
.setEntryId(entryId)
.setGroupId(groupId)
.setGroupState(state.getVal());
this.setData(data);
}
}

View File

@@ -0,0 +1,18 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.proto.GroupStateChangeScNotifyOuterClass.GroupStateChangeScNotify;
import emu.lunarcore.proto.GroupStateInfoOuterClass.GroupStateInfo;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
public class PacketGroupStateChangeScRsp extends BasePacket {
public PacketGroupStateChangeScRsp(GroupStateInfo groupInfo) {
super(CmdId.GroupStateChangeScRsp);
var data = GroupStateChangeScNotify.newInstance();
data.setGroupInfo(groupInfo);
this.setData(data);
}
}

View File

@@ -35,12 +35,16 @@ public class PacketSceneGroupRefreshScNotify extends BasePacket {
var group = SceneGroupRefreshInfo.newInstance(); var group = SceneGroupRefreshInfo.newInstance();
for (var entity : toAdd) { if (toAdd != null) {
group.addRefreshEntity(SceneEntityRefreshInfo.newInstance().setAddEntity(entity.toSceneEntityProto())); for (var entity : toAdd) {
group.addRefreshEntity(SceneEntityRefreshInfo.newInstance().setAddEntity(entity.toSceneEntityProto()));
}
} }
for (var entity : toRemove) { if (toRemove != null) {
group.addRefreshEntity(SceneEntityRefreshInfo.newInstance().setDelEntity(entity.getEntityId())); for (var entity : toRemove) {
group.addRefreshEntity(SceneEntityRefreshInfo.newInstance().setDelEntity(entity.getEntityId()));
}
} }
var data = SceneGroupRefreshScNotify.newInstance() var data = SceneGroupRefreshScNotify.newInstance()