mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-19 18:34:49 +01:00
Merge branch 'dev-world-scripts' of https://github.com/Grasscutters/Grasscutter into development
This commit is contained in:
@@ -13,7 +13,7 @@ public class HandlerGadgetInteractReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
GadgetInteractReq req = GadgetInteractReq.parseFrom(payload);
|
||||
|
||||
session.getPlayer().interactWith(req.getGadgetEntityId(), req);
|
||||
session.getPlayer().interactWith(req.getGadgetEntityId(), req.getOpType());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.GetInvestigationMonsterReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketGetInvestigationMonsterRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.GetInvestigationMonsterReq)
|
||||
public class HandlerGetInvestigationMonsterReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = GetInvestigationMonsterReqOuterClass.GetInvestigationMonsterReq.parseFrom(payload);
|
||||
|
||||
session.send(new PacketGetInvestigationMonsterRsp(req.getCityIdListList()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,13 +1,13 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.dungeons.DungeonChallenge;
|
||||
import emu.grasscutter.game.dungeons.challenge.WorldChallenge;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.ChallengeDataNotifyOuterClass.ChallengeDataNotify;
|
||||
|
||||
public class PacketChallengeDataNotify extends BasePacket {
|
||||
|
||||
public PacketChallengeDataNotify(DungeonChallenge challenge, int index, int value) {
|
||||
|
||||
public PacketChallengeDataNotify(WorldChallenge challenge, int index, int value) {
|
||||
super(PacketOpcodes.ChallengeDataNotify);
|
||||
|
||||
ChallengeDataNotify proto = ChallengeDataNotify.newBuilder()
|
||||
|
||||
@@ -1,23 +1,22 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.dungeons.DungeonChallenge;
|
||||
import emu.grasscutter.game.dungeons.challenge.WorldChallenge;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.DungeonChallengeBeginNotifyOuterClass.DungeonChallengeBeginNotify;
|
||||
|
||||
public class PacketDungeonChallengeBeginNotify extends BasePacket {
|
||||
|
||||
public PacketDungeonChallengeBeginNotify(DungeonChallenge challenge) {
|
||||
public PacketDungeonChallengeBeginNotify(WorldChallenge challenge) {
|
||||
super(PacketOpcodes.DungeonChallengeBeginNotify, true);
|
||||
|
||||
DungeonChallengeBeginNotify proto = DungeonChallengeBeginNotify.newBuilder()
|
||||
.setChallengeId(challenge.getChallengeId())
|
||||
.setChallengeIndex(challenge.getChallengeIndex())
|
||||
.setGroupId(challenge.getGroup().id)
|
||||
.addParamList(challenge.getObjective())
|
||||
.addParamList(challenge.getTimeLimit())
|
||||
.addAllParamList(challenge.getParamList())
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.dungeons.DungeonChallenge;
|
||||
import emu.grasscutter.game.dungeons.challenge.WorldChallenge;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.DungeonChallengeFinishNotifyOuterClass.DungeonChallengeFinishNotify;
|
||||
|
||||
public class PacketDungeonChallengeFinishNotify extends BasePacket {
|
||||
|
||||
public PacketDungeonChallengeFinishNotify(DungeonChallenge challenge) {
|
||||
|
||||
public PacketDungeonChallengeFinishNotify(WorldChallenge challenge) {
|
||||
super(PacketOpcodes.DungeonChallengeFinishNotify, true);
|
||||
|
||||
DungeonChallengeFinishNotify proto = DungeonChallengeFinishNotify.newBuilder()
|
||||
@@ -15,7 +15,7 @@ public class PacketDungeonChallengeFinishNotify extends BasePacket {
|
||||
.setIsSuccess(challenge.isSuccess())
|
||||
.setChallengeRecordType(2)
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.dungeons.DungeonChallenge;
|
||||
import emu.grasscutter.game.dungeons.challenge.WorldChallenge;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.DungeonSettleNotifyOuterClass.DungeonSettleNotify;
|
||||
@@ -9,7 +9,7 @@ import emu.grasscutter.net.proto.TowerLevelEndNotifyOuterClass.TowerLevelEndNoti
|
||||
|
||||
public class PacketDungeonSettleNotify extends BasePacket {
|
||||
|
||||
public PacketDungeonSettleNotify(DungeonChallenge challenge) {
|
||||
public PacketDungeonSettleNotify(WorldChallenge challenge) {
|
||||
super(PacketOpcodes.DungeonSettleNotify);
|
||||
|
||||
DungeonSettleNotify proto = DungeonSettleNotify.newBuilder()
|
||||
@@ -22,10 +22,10 @@ public class PacketDungeonSettleNotify extends BasePacket {
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
public PacketDungeonSettleNotify(DungeonChallenge challenge,
|
||||
boolean canJump,
|
||||
boolean hasNextLevel,
|
||||
int nextFloorId
|
||||
public PacketDungeonSettleNotify(WorldChallenge challenge,
|
||||
boolean canJump,
|
||||
boolean hasNextLevel,
|
||||
int nextFloorId
|
||||
) {
|
||||
super(PacketOpcodes.DungeonSettleNotify);
|
||||
|
||||
|
||||
@@ -4,20 +4,27 @@ import emu.grasscutter.game.entity.EntityBaseGadget;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.GadgetInteractRspOuterClass.GadgetInteractRsp;
|
||||
import emu.grasscutter.net.proto.InterOpTypeOuterClass;
|
||||
import emu.grasscutter.net.proto.InteractTypeOuterClass.InteractType;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass;
|
||||
|
||||
public class PacketGadgetInteractRsp extends BasePacket {
|
||||
public PacketGadgetInteractRsp(EntityBaseGadget gadget, InteractType interact) {
|
||||
this(gadget, interact, null);
|
||||
}
|
||||
public PacketGadgetInteractRsp(EntityBaseGadget gadget, InteractType interact, InterOpTypeOuterClass.InterOpType opType) {
|
||||
super(PacketOpcodes.GadgetInteractRsp);
|
||||
|
||||
GadgetInteractRsp proto = GadgetInteractRsp.newBuilder()
|
||||
var proto = GadgetInteractRsp.newBuilder()
|
||||
.setGadgetEntityId(gadget.getId())
|
||||
.setInteractType(interact)
|
||||
.setGadgetId(gadget.getGadgetId())
|
||||
.build();
|
||||
.setGadgetId(gadget.getGadgetId());
|
||||
|
||||
if(opType != null){
|
||||
proto.setOpType(opType);
|
||||
}
|
||||
|
||||
this.setData(proto);
|
||||
this.setData(proto.build());
|
||||
}
|
||||
|
||||
public PacketGadgetInteractRsp() {
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.GetActivityInfoRspOuterClass;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PacketGetInvestigationMonsterRsp extends BasePacket {
|
||||
|
||||
public PacketGetInvestigationMonsterRsp(List<Integer> cityIdListList) {
|
||||
super(PacketOpcodes.GetInvestigationMonsterRsp);
|
||||
|
||||
var resp = GetActivityInfoRspOuterClass.GetActivityInfoRsp.newBuilder();
|
||||
|
||||
|
||||
|
||||
this.setData(resp.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.entity.EntityNPC;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.GroupSuiteNotifyOuterClass;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PacketGroupSuiteNotify extends BasePacket {
|
||||
|
||||
/**
|
||||
* control which npc suite is loaded
|
||||
*/
|
||||
public PacketGroupSuiteNotify(List<EntityNPC> list) {
|
||||
super(PacketOpcodes.GroupSuiteNotify);
|
||||
|
||||
var proto = GroupSuiteNotifyOuterClass.GroupSuiteNotify.newBuilder();
|
||||
|
||||
list.forEach(item -> proto.putGroupMap(item.getGroupId(), item.getSuiteId()));
|
||||
|
||||
this.setData(proto);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,23 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.avatar.Avatar;
|
||||
import emu.grasscutter.game.entity.GameEntity;
|
||||
import emu.grasscutter.game.props.LifeState;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.LifeStateChangeNotifyOuterClass.LifeStateChangeNotify;
|
||||
import emu.grasscutter.net.proto.PlayerDieTypeOuterClass.PlayerDieType;
|
||||
import emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class PacketLifeStateChangeNotify extends BasePacket {
|
||||
public PacketLifeStateChangeNotify(GameEntity target, LifeState lifeState) {
|
||||
super(PacketOpcodes.LifeStateChangeNotify);
|
||||
|
||||
LifeStateChangeNotify proto = LifeStateChangeNotify.newBuilder()
|
||||
.setEntityId(target.getId())
|
||||
.setLifeState(lifeState.getValue())
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
public PacketLifeStateChangeNotify(GameEntity attacker, GameEntity target, LifeState lifeState) {
|
||||
super(PacketOpcodes.LifeStateChangeNotify);
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ public class PacketSceneEntityAppearNotify extends BasePacket {
|
||||
this(player.getTeamManager().getCurrentAvatarEntity());
|
||||
}
|
||||
|
||||
public PacketSceneEntityAppearNotify(Collection<GameEntity> entities, VisionType visionType) {
|
||||
public PacketSceneEntityAppearNotify(Collection<? extends GameEntity> entities, VisionType visionType) {
|
||||
super(PacketOpcodes.SceneEntityAppearNotify, true);
|
||||
|
||||
SceneEntityAppearNotify.Builder proto = SceneEntityAppearNotify.newBuilder()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.entity.EntityGadget;
|
||||
import emu.grasscutter.game.entity.gadget.GadgetWorktop;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.WorktopOptionNotifyOuterClass.WorktopOptionNotify;
|
||||
@@ -13,8 +14,8 @@ public class PacketWorktopOptionNotify extends BasePacket {
|
||||
WorktopOptionNotify.Builder proto = WorktopOptionNotify.newBuilder()
|
||||
.setGadgetEntityId(gadget.getId());
|
||||
|
||||
if (gadget.getWorktopOptions() != null) {
|
||||
proto.addAllOptionList(gadget.getWorktopOptions());
|
||||
if (gadget.getContent() instanceof GadgetWorktop worktop) {
|
||||
proto.addAllOptionList(worktop.getWorktopOptions());
|
||||
}
|
||||
|
||||
this.setData(proto);
|
||||
|
||||
Reference in New Issue
Block a user