mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-22 03:45:10 +01:00
Fix whitespace [skip actions]
This commit is contained in:
@@ -36,11 +36,11 @@ public class HandlerAvatarExpeditionGetRewardReq extends PacketHandler {
|
||||
|
||||
if (session.getServer().getExpeditionSystem().getExpeditionRewardDataList().containsKey(expInfo.getExpId())) {
|
||||
for (ExpeditionRewardDataList RewardDataList : session.getServer().getExpeditionSystem().getExpeditionRewardDataList().get(expInfo.getExpId())) {
|
||||
if(RewardDataList.getHourTime() == expInfo.getHourTime()){
|
||||
if(!RewardDataList.getExpeditionRewardData().isEmpty()){
|
||||
if (RewardDataList.getHourTime() == expInfo.getHourTime()) {
|
||||
if (!RewardDataList.getExpeditionRewardData().isEmpty()) {
|
||||
for (ExpeditionRewardData RewardData :RewardDataList.getExpeditionRewardData()) {
|
||||
int num = RewardData.getMinCount();
|
||||
if(RewardData.getMinCount() != RewardData.getMaxCount()){
|
||||
if (RewardData.getMinCount() != RewardData.getMaxCount()) {
|
||||
num = Utils.randomRange(RewardData.getMinCount(), RewardData.getMaxCount());
|
||||
}
|
||||
items.add(new GameItem(RewardData.getItemId(), num));
|
||||
|
||||
@@ -8,13 +8,13 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.AvatarPromoteReq)
|
||||
public class HandlerAvatarPromoteReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
AvatarPromoteReq req = AvatarPromoteReq.parseFrom(payload);
|
||||
|
||||
// Ascend avatar
|
||||
session.getServer().getInventorySystem().promoteAvatar(session.getPlayer(), req.getGuid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
AvatarPromoteReq req = AvatarPromoteReq.parseFrom(payload);
|
||||
|
||||
// Ascend avatar
|
||||
session.getServer().getInventorySystem().promoteAvatar(session.getPlayer(), req.getGuid());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.AvatarSkillUpgradeReq)
|
||||
public class HandlerAvatarSkillUpgradeReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
AvatarSkillUpgradeReq req = AvatarSkillUpgradeReq.parseFrom(payload);
|
||||
|
||||
// Level up avatar talent
|
||||
session.getServer().getInventorySystem().upgradeAvatarSkill(session.getPlayer(), req.getAvatarGuid(), req.getAvatarSkillId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
AvatarSkillUpgradeReq req = AvatarSkillUpgradeReq.parseFrom(payload);
|
||||
|
||||
// Level up avatar talent
|
||||
session.getServer().getInventorySystem().upgradeAvatarSkill(session.getPlayer(), req.getAvatarGuid(), req.getAvatarSkillId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,18 +8,18 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.AvatarUpgradeReq)
|
||||
public class HandlerAvatarUpgradeReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
AvatarUpgradeReq req = AvatarUpgradeReq.parseFrom(payload);
|
||||
|
||||
// Level up avatar
|
||||
session.getServer().getInventorySystem().upgradeAvatar(
|
||||
session.getPlayer(),
|
||||
req.getAvatarGuid(),
|
||||
req.getItemId(),
|
||||
req.getCount()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
AvatarUpgradeReq req = AvatarUpgradeReq.parseFrom(payload);
|
||||
|
||||
// Level up avatar
|
||||
session.getServer().getInventorySystem().upgradeAvatar(
|
||||
session.getPlayer(),
|
||||
req.getAvatarGuid(),
|
||||
req.getItemId(),
|
||||
req.getCount()
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,23 +12,23 @@ import emu.grasscutter.server.packet.send.PacketCalcWeaponUpgradeReturnItemsRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.CalcWeaponUpgradeReturnItemsReq)
|
||||
public class HandlerCalcWeaponUpgradeReturnItemsReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
CalcWeaponUpgradeReturnItemsReq req = CalcWeaponUpgradeReturnItemsReq.parseFrom(payload);
|
||||
|
||||
List<ItemParam> returnOres = session.getServer().getInventorySystem().calcWeaponUpgradeReturnItems(
|
||||
session.getPlayer(),
|
||||
req.getTargetWeaponGuid(),
|
||||
req.getFoodWeaponGuidListList(),
|
||||
req.getItemParamListList()
|
||||
);
|
||||
|
||||
if (returnOres != null) {
|
||||
session.send(new PacketCalcWeaponUpgradeReturnItemsRsp(req.getTargetWeaponGuid(), returnOres));
|
||||
} else {
|
||||
session.send(new PacketCalcWeaponUpgradeReturnItemsRsp());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
CalcWeaponUpgradeReturnItemsReq req = CalcWeaponUpgradeReturnItemsReq.parseFrom(payload);
|
||||
|
||||
List<ItemParam> returnOres = session.getServer().getInventorySystem().calcWeaponUpgradeReturnItems(
|
||||
session.getPlayer(),
|
||||
req.getTargetWeaponGuid(),
|
||||
req.getFoodWeaponGuidListList(),
|
||||
req.getItemParamListList()
|
||||
);
|
||||
|
||||
if (returnOres != null) {
|
||||
session.send(new PacketCalcWeaponUpgradeReturnItemsRsp(req.getTargetWeaponGuid(), returnOres));
|
||||
} else {
|
||||
session.send(new PacketCalcWeaponUpgradeReturnItemsRsp());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public class HandlerCombineReq extends PacketHandler {
|
||||
var result = session.getServer().getCombineSystem()
|
||||
.combineItem(session.getPlayer(), req.getCombineId(), req.getCombineCount());
|
||||
|
||||
if(result == null){
|
||||
if (result == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ public class HandlerCombineReq extends PacketHandler {
|
||||
toItemParamList(result.getBack())));
|
||||
}
|
||||
|
||||
private List<ItemParamOuterClass.ItemParam> toItemParamList(List<ItemParamData> list){
|
||||
private List<ItemParamOuterClass.ItemParam> toItemParamList(List<ItemParamData> list) {
|
||||
return list.stream()
|
||||
.map(item -> ItemParamOuterClass.ItemParam.newBuilder()
|
||||
.setItemId(item.getId())
|
||||
|
||||
@@ -8,11 +8,11 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.DestroyMaterialReq)
|
||||
public class HandlerDestroyMaterialReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
DestroyMaterialReq req = DestroyMaterialReq.parseFrom(payload);
|
||||
|
||||
// Delete items
|
||||
session.getServer().getInventorySystem().destroyMaterial(session.getPlayer(), req.getMaterialListList());
|
||||
}
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
DestroyMaterialReq req = DestroyMaterialReq.parseFrom(payload);
|
||||
|
||||
// Delete items
|
||||
session.getServer().getInventorySystem().destroyMaterial(session.getPlayer(), req.getMaterialListList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,10 +8,10 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.DoGachaReq)
|
||||
public class HandlerDoGachaReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
DoGachaReq req = DoGachaReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getGachaSystem().doPulls(session.getPlayer(), req.getGachaScheduleId(), req.getGachaTimes());
|
||||
}
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
DoGachaReq req = DoGachaReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getGachaSystem().doPulls(session.getPlayer(), req.getGachaScheduleId(), req.getGachaTimes());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,12 +8,12 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.DungeonEntryInfoReq)
|
||||
public class HandlerDungeonEntryInfoReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
DungeonEntryInfoReq req = DungeonEntryInfoReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getDungeonSystem().getEntryInfo(session.getPlayer(), req.getPointId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
DungeonEntryInfoReq req = DungeonEntryInfoReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getDungeonSystem().getEntryInfo(session.getPlayer(), req.getPointId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,10 +11,10 @@ import emu.grasscutter.server.packet.send.PacketGetGachaInfoRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.GetGachaInfoReq)
|
||||
public class HandlerGetGachaInfoReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.send(new PacketGetGachaInfoRsp(session.getServer().getGachaSystem(), session.getPlayer()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.send(new PacketGetGachaInfoRsp(session.getServer().getGachaSystem(), session.getPlayer()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,16 +9,16 @@ 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(
|
||||
session.getPlayer(),
|
||||
session.getServer().getWorldDataSystem(),
|
||||
req.getCityIdListList()));
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = GetInvestigationMonsterReqOuterClass.GetInvestigationMonsterReq.parseFrom(payload);
|
||||
|
||||
}
|
||||
session.send(new PacketGetInvestigationMonsterRsp(
|
||||
session.getPlayer(),
|
||||
session.getServer().getWorldDataSystem(),
|
||||
req.getCityIdListList()));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -27,77 +27,77 @@ import java.security.Signature;
|
||||
@Opcodes(PacketOpcodes.GetPlayerTokenReq)
|
||||
public class HandlerGetPlayerTokenReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
GetPlayerTokenReq req = GetPlayerTokenReq.parseFrom(payload);
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
GetPlayerTokenReq req = GetPlayerTokenReq.parseFrom(payload);
|
||||
|
||||
// Authenticate
|
||||
Account account = DatabaseHelper.getAccountById(req.getAccountUid());
|
||||
if (account == null || !account.getToken().equals(req.getAccountToken())) {
|
||||
return;
|
||||
}
|
||||
// Authenticate
|
||||
Account account = DatabaseHelper.getAccountById(req.getAccountUid());
|
||||
if (account == null || !account.getToken().equals(req.getAccountToken())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Set account
|
||||
session.setAccount(account);
|
||||
// Set account
|
||||
session.setAccount(account);
|
||||
|
||||
// Check if player object exists in server
|
||||
// NOTE: CHECKING MUST SITUATED HERE (BEFORE getPlayerByUid)! because to save firstly ,to load secondly !!!
|
||||
// TODO - optimize
|
||||
boolean kicked = false;
|
||||
Player exists = Grasscutter.getGameServer().getPlayerByAccountId(account.getId());
|
||||
if (exists != null) {
|
||||
GameSession existsSession = exists.getSession();
|
||||
if (existsSession != session) {// No self-kicking
|
||||
exists.onLogout();//must save immediately , or the below will load old data
|
||||
existsSession.close();
|
||||
Grasscutter.getLogger().warn("Player {} was kicked due to duplicated login", account.getUsername());
|
||||
kicked = true;
|
||||
}
|
||||
}
|
||||
// Check if player object exists in server
|
||||
// NOTE: CHECKING MUST SITUATED HERE (BEFORE getPlayerByUid)! because to save firstly ,to load secondly !!!
|
||||
// TODO - optimize
|
||||
boolean kicked = false;
|
||||
Player exists = Grasscutter.getGameServer().getPlayerByAccountId(account.getId());
|
||||
if (exists != null) {
|
||||
GameSession existsSession = exists.getSession();
|
||||
if (existsSession != session) {// No self-kicking
|
||||
exists.onLogout();//must save immediately , or the below will load old data
|
||||
existsSession.close();
|
||||
Grasscutter.getLogger().warn("Player {} was kicked due to duplicated login", account.getUsername());
|
||||
kicked = true;
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: If there are 5 online players, max count of player is 5,
|
||||
// a new client want to login by kicking one of them ,
|
||||
// I think it should be allowed
|
||||
if(!kicked) {
|
||||
// Max players limit
|
||||
if (ACCOUNT.maxPlayer > -1 && Grasscutter.getGameServer().getPlayers().size() >= ACCOUNT.maxPlayer) {
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
//NOTE: If there are 5 online players, max count of player is 5,
|
||||
// a new client want to login by kicking one of them ,
|
||||
// I think it should be allowed
|
||||
if (!kicked) {
|
||||
// Max players limit
|
||||
if (ACCOUNT.maxPlayer > -1 && Grasscutter.getGameServer().getPlayers().size() >= ACCOUNT.maxPlayer) {
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Call creation event.
|
||||
PlayerCreationEvent event = new PlayerCreationEvent(session, Player.class); event.call();
|
||||
|
||||
// Get player.
|
||||
Player player = DatabaseHelper.getPlayerByAccount(account, event.getPlayerClass());
|
||||
// Get player.
|
||||
Player player = DatabaseHelper.getPlayerByAccount(account, event.getPlayerClass());
|
||||
|
||||
if (player == null) {
|
||||
int nextPlayerUid = DatabaseHelper.getNextPlayerId(session.getAccount().getReservedPlayerUid());
|
||||
if (player == null) {
|
||||
int nextPlayerUid = DatabaseHelper.getNextPlayerId(session.getAccount().getReservedPlayerUid());
|
||||
|
||||
// Create player instance from event.
|
||||
player = event.getPlayerClass().getDeclaredConstructor(GameSession.class).newInstance(session);
|
||||
// Create player instance from event.
|
||||
player = event.getPlayerClass().getDeclaredConstructor(GameSession.class).newInstance(session);
|
||||
|
||||
// Save to db
|
||||
DatabaseHelper.generatePlayerUid(player, nextPlayerUid);
|
||||
}
|
||||
// Save to db
|
||||
DatabaseHelper.generatePlayerUid(player, nextPlayerUid);
|
||||
}
|
||||
|
||||
// Set player object for session
|
||||
session.setPlayer(player);
|
||||
// Set player object for session
|
||||
session.setPlayer(player);
|
||||
|
||||
// Checks if the player is banned
|
||||
if (session.getAccount().isBanned()) {
|
||||
session.send(new PacketGetPlayerTokenRsp(session, 21, "FORBID_CHEATING_PLUGINS", session.getAccount().getBanEndTime()));
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
// Checks if the player is banned
|
||||
if (session.getAccount().isBanned()) {
|
||||
session.send(new PacketGetPlayerTokenRsp(session, 21, "FORBID_CHEATING_PLUGINS", session.getAccount().getBanEndTime()));
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
|
||||
// Load player from database
|
||||
player.loadFromDatabase();
|
||||
// Load player from database
|
||||
player.loadFromDatabase();
|
||||
|
||||
// Set session state
|
||||
session.setUseSecretKey(true);
|
||||
session.setState(SessionState.WAITING_FOR_LOGIN);
|
||||
// Set session state
|
||||
session.setUseSecretKey(true);
|
||||
session.setState(SessionState.WAITING_FOR_LOGIN);
|
||||
|
||||
// Only >= 2.7.50 has this
|
||||
if (req.getKeyId() > 0) {
|
||||
|
||||
@@ -8,13 +8,13 @@ import emu.grasscutter.server.packet.send.PacketHomeUnknown2Rsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.Unk2700_ACILPONNGGK_ClientReq)
|
||||
public class HandlerHomeUnknown2Req extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
/*
|
||||
* This packet is about the edit mode
|
||||
*/
|
||||
session.send(new PacketHomeUnknown2Rsp());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
/*
|
||||
* This packet is about the edit mode
|
||||
*/
|
||||
session.send(new PacketHomeUnknown2Rsp());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,13 +9,13 @@ import emu.grasscutter.server.packet.send.PacketPlayerApplyEnterMpRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.PlayerApplyEnterMpReq)
|
||||
public class HandlerPlayerApplyEnterMpReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
PlayerApplyEnterMpReq req = PlayerApplyEnterMpReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getMultiplayerSystem().applyEnterMp(session.getPlayer(), req.getTargetUid());
|
||||
session.send(new PacketPlayerApplyEnterMpRsp(req.getTargetUid()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
PlayerApplyEnterMpReq req = PlayerApplyEnterMpReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getMultiplayerSystem().applyEnterMp(session.getPlayer(), req.getTargetUid());
|
||||
session.send(new PacketPlayerApplyEnterMpRsp(req.getTargetUid()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,13 +9,13 @@ import emu.grasscutter.server.packet.send.PacketPlayerApplyEnterMpResultRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.PlayerApplyEnterMpResultReq)
|
||||
public class HandlerPlayerApplyEnterMpResultReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
PlayerApplyEnterMpResultReq req = PlayerApplyEnterMpResultReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getMultiplayerSystem().applyEnterMpReply(session.getPlayer(), req.getApplyUid(), req.getIsAgreed());
|
||||
session.send(new PacketPlayerApplyEnterMpResultRsp(req.getApplyUid(), req.getIsAgreed()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
PlayerApplyEnterMpResultReq req = PlayerApplyEnterMpResultReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getMultiplayerSystem().applyEnterMpReply(session.getPlayer(), req.getApplyUid(), req.getIsAgreed());
|
||||
session.send(new PacketPlayerApplyEnterMpResultRsp(req.getApplyUid(), req.getIsAgreed()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.PlayerEnterDungeonReq)
|
||||
public class HandlerPlayerEnterDungeonReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
// Auto template
|
||||
PlayerEnterDungeonReq req = PlayerEnterDungeonReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getDungeonSystem().enterDungeon(session.getPlayer(), req.getPointId(), req.getDungeonId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
// Auto template
|
||||
PlayerEnterDungeonReq req = PlayerEnterDungeonReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getDungeonSystem().enterDungeon(session.getPlayer(), req.getPointId(), req.getDungeonId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,17 +9,17 @@ import emu.grasscutter.server.packet.send.PacketPlayerGetForceQuitBanInfoRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.PlayerGetForceQuitBanInfoReq)
|
||||
public class HandlerPlayerGetForceQuitBanInfoReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
|
||||
if (session.getServer().getMultiplayerSystem().leaveCoop(session.getPlayer())) {
|
||||
// Success
|
||||
session.send(new PacketPlayerGetForceQuitBanInfoRsp(RetcodeOuterClass.Retcode.RET_SUCC_VALUE));
|
||||
} else {
|
||||
// Fail
|
||||
session.send(new PacketPlayerGetForceQuitBanInfoRsp(RetcodeOuterClass.Retcode.RET_SVR_ERROR_VALUE));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
|
||||
if (session.getServer().getMultiplayerSystem().leaveCoop(session.getPlayer())) {
|
||||
// Success
|
||||
session.send(new PacketPlayerGetForceQuitBanInfoRsp(RetcodeOuterClass.Retcode.RET_SUCC_VALUE));
|
||||
} else {
|
||||
// Fail
|
||||
session.send(new PacketPlayerGetForceQuitBanInfoRsp(RetcodeOuterClass.Retcode.RET_SVR_ERROR_VALUE));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,39 +18,39 @@ import emu.grasscutter.server.packet.send.PacketTakeAchievementRewardReq;
|
||||
@Opcodes(PacketOpcodes.PlayerLoginReq) // Sends initial data packets
|
||||
public class HandlerPlayerLoginReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
// Check
|
||||
if (session.getAccount() == null) {
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
// Check
|
||||
if (session.getAccount() == null) {
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
|
||||
// Parse request
|
||||
PlayerLoginReq req = PlayerLoginReq.parseFrom(payload);
|
||||
// Parse request
|
||||
PlayerLoginReq req = PlayerLoginReq.parseFrom(payload);
|
||||
|
||||
// Authenticate session
|
||||
if (!req.getToken().equals(session.getAccount().getToken())) {
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
// Authenticate session
|
||||
if (!req.getToken().equals(session.getAccount().getToken())) {
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
|
||||
// Load character from db
|
||||
Player player = session.getPlayer();
|
||||
// Load character from db
|
||||
Player player = session.getPlayer();
|
||||
|
||||
// Show opening cutscene if player has no avatars
|
||||
if (player.getAvatars().getAvatarCount() == 0) {
|
||||
// Pick character
|
||||
session.setState(SessionState.PICKING_CHARACTER);
|
||||
session.send(new BasePacket(PacketOpcodes.DoSetPlayerBornDataNotify));
|
||||
} else {
|
||||
// Login done
|
||||
session.getPlayer().onLogin();
|
||||
}
|
||||
// Show opening cutscene if player has no avatars
|
||||
if (player.getAvatars().getAvatarCount() == 0) {
|
||||
// Pick character
|
||||
session.setState(SessionState.PICKING_CHARACTER);
|
||||
session.send(new BasePacket(PacketOpcodes.DoSetPlayerBornDataNotify));
|
||||
} else {
|
||||
// Login done
|
||||
session.getPlayer().onLogin();
|
||||
}
|
||||
|
||||
// Final packet to tell client logging in is done
|
||||
session.send(new PacketPlayerLoginRsp(session));
|
||||
session.send(new PacketTakeAchievementRewardReq(session));
|
||||
}
|
||||
// Final packet to tell client logging in is done
|
||||
session.send(new PacketPlayerLoginRsp(session));
|
||||
session.send(new PacketTakeAchievementRewardReq(session));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,10 +7,10 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.PlayerQuitDungeonReq)
|
||||
public class HandlerPlayerQuitDungeonReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.getPlayer().getServer().getDungeonSystem().exitDungeon(session.getPlayer());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.getPlayer().getServer().getDungeonSystem().exitDungeon(session.getPlayer());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,14 +9,14 @@ import emu.grasscutter.server.packet.send.PacketPullPrivateChatRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.PullPrivateChatReq)
|
||||
public class HandlerPullPrivateChatReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
PullPrivateChatReq req = PullPrivateChatReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getChatManager().handlePullPrivateChatReq(session.getPlayer(), req.getTargetUid());
|
||||
|
||||
// session.send(new PacketPullPrivateChatRsp(req.getTargetUid()));
|
||||
}
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
PullPrivateChatReq req = PullPrivateChatReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getChatManager().handlePullPrivateChatReq(session.getPlayer(), req.getTargetUid());
|
||||
|
||||
// session.send(new PacketPullPrivateChatRsp(req.getTargetUid()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@ import emu.grasscutter.server.packet.send.PacketPullRecentChatRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.PullRecentChatReq)
|
||||
public class HandlerPullRecentChatReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.getServer().getChatManager().handlePullRecentChatReq(session.getPlayer());
|
||||
}
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.getServer().getChatManager().handlePullRecentChatReq(session.getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,17 +11,17 @@ import emu.grasscutter.server.packet.send.PacketQueryPathRsp;
|
||||
@Opcodes(PacketOpcodes.QueryPathReq)
|
||||
public class HandlerQueryPathReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = QueryPathReq.parseFrom(payload);
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = QueryPathReq.parseFrom(payload);
|
||||
|
||||
/**
|
||||
* It is not the actual work
|
||||
*/
|
||||
|
||||
|
||||
if (req.getDestinationPosList().size() > 0) {
|
||||
session.send(new PacketQueryPathRsp(req));
|
||||
session.send(new PacketQueryPathRsp(req));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,9 +8,9 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.ReliquaryDecomposeReq)
|
||||
public class HandlerReliquaryDecomposeReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
ReliquaryDecomposeReq req = ReliquaryDecomposeReq.parseFrom(payload);
|
||||
session.getServer().getCombineSystem().decomposeReliquaries(session.getPlayer(), req.getConfigId(), req.getTargetCount(), req.getGuidListList());
|
||||
}
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
ReliquaryDecomposeReq req = ReliquaryDecomposeReq.parseFrom(payload);
|
||||
session.getServer().getCombineSystem().decomposeReliquaries(session.getPlayer(), req.getConfigId(), req.getTargetCount(), req.getGuidListList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,12 +8,12 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.ReliquaryUpgradeReq)
|
||||
public class HandlerReliquaryUpgradeReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
ReliquaryUpgradeReq req = ReliquaryUpgradeReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getInventorySystem().upgradeRelic(session.getPlayer(), req.getTargetReliquaryGuid(), req.getFoodReliquaryGuidListList(), req.getItemParamListList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
ReliquaryUpgradeReq req = ReliquaryUpgradeReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getInventorySystem().upgradeRelic(session.getPlayer(), req.getTargetReliquaryGuid(), req.getFoodReliquaryGuidListList(), req.getItemParamListList());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,18 +9,18 @@ import emu.grasscutter.server.packet.send.PacketSceneKickPlayerRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.SceneKickPlayerReq)
|
||||
public class HandlerSceneKickPlayerReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
SceneKickPlayerReq req = SceneKickPlayerReq.parseFrom(payload);
|
||||
|
||||
if (session.getServer().getMultiplayerSystem().kickPlayer(session.getPlayer(), req.getTargetUid())) {
|
||||
// Success
|
||||
session.send(new PacketSceneKickPlayerRsp(req.getTargetUid()));
|
||||
} else {
|
||||
// Fail
|
||||
session.send(new PacketSceneKickPlayerRsp());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
SceneKickPlayerReq req = SceneKickPlayerReq.parseFrom(payload);
|
||||
|
||||
if (session.getServer().getMultiplayerSystem().kickPlayer(session.getPlayer(), req.getTargetUid())) {
|
||||
// Success
|
||||
session.send(new PacketSceneKickPlayerRsp(req.getTargetUid()));
|
||||
} else {
|
||||
// Fail
|
||||
session.send(new PacketSceneKickPlayerRsp());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,12 +8,12 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.SetEquipLockStateReq)
|
||||
public class HandlerSetEquipLockStateReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
SetEquipLockStateReq req = SetEquipLockStateReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getInventorySystem().lockEquip(session.getPlayer(), req.getTargetEquipGuid(), req.getIsLocked());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
SetEquipLockStateReq req = SetEquipLockStateReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getInventorySystem().lockEquip(session.getPlayer(), req.getTargetEquipGuid(), req.getIsLocked());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,4 +23,4 @@ public class HandlerSetOpenStateReq extends PacketHandler {
|
||||
session.send(new PacketSetOpenStateRsp(openState,value));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,62 +23,62 @@ import java.util.Arrays;
|
||||
|
||||
@Opcodes(PacketOpcodes.SetPlayerBornDataReq)
|
||||
public class HandlerSetPlayerBornDataReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
SetPlayerBornDataReq req = SetPlayerBornDataReq.parseFrom(payload);
|
||||
|
||||
// Sanity checks
|
||||
int avatarId = req.getAvatarId();
|
||||
int startingSkillDepot;
|
||||
if (avatarId == GameConstants.MAIN_CHARACTER_MALE) {
|
||||
startingSkillDepot = 504;
|
||||
} else if (avatarId == GameConstants.MAIN_CHARACTER_FEMALE) {
|
||||
startingSkillDepot = 704;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
// Make sure resources folder is set
|
||||
if (!GameData.getAvatarDataMap().containsKey(avatarId)) {
|
||||
Grasscutter.getLogger().error("No avatar data found! Please check your ExcelBinOutput folder.");
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
|
||||
// Get player object
|
||||
Player player = session.getPlayer();
|
||||
player.setNickname(req.getNickName());
|
||||
|
||||
// Create avatar
|
||||
if (player.getAvatars().getAvatarCount() == 0) {
|
||||
Avatar mainCharacter = new Avatar(avatarId);
|
||||
mainCharacter.setSkillDepotData(GameData.getAvatarSkillDepotDataMap().get(startingSkillDepot));
|
||||
// Manually handle adding to team
|
||||
player.addAvatar(mainCharacter, false);
|
||||
player.setMainCharacterId(avatarId);
|
||||
player.setHeadImage(avatarId);
|
||||
player.getTeamManager().getCurrentSinglePlayerTeamInfo().getAvatars().add(mainCharacter.getAvatarId());
|
||||
player.save(); // TODO save player team in different object
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
// Login done
|
||||
session.getPlayer().onLogin();
|
||||
|
||||
// Born resp packet
|
||||
session.send(new BasePacket(PacketOpcodes.SetPlayerBornDataRsp));
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
SetPlayerBornDataReq req = SetPlayerBornDataReq.parseFrom(payload);
|
||||
|
||||
// Default mail
|
||||
var welcomeMail = GAME_INFO.joinOptions.welcomeMail;
|
||||
MailBuilder mailBuilder = new MailBuilder(player.getUid(), new Mail());
|
||||
mailBuilder.mail.mailContent.title = welcomeMail.title;
|
||||
mailBuilder.mail.mailContent.sender = welcomeMail.sender;
|
||||
// Please credit Grasscutter if changing something here. We don't condone commercial use of the project.
|
||||
mailBuilder.mail.mailContent.content = welcomeMail.content + "\n<type=\"browser\" text=\"GitHub\" href=\"https://github.com/Melledy/Grasscutter\"/>";
|
||||
mailBuilder.mail.itemList.addAll(Arrays.asList(welcomeMail.items));
|
||||
mailBuilder.mail.importance = 1;
|
||||
player.sendMail(mailBuilder.mail);
|
||||
}
|
||||
// Sanity checks
|
||||
int avatarId = req.getAvatarId();
|
||||
int startingSkillDepot;
|
||||
if (avatarId == GameConstants.MAIN_CHARACTER_MALE) {
|
||||
startingSkillDepot = 504;
|
||||
} else if (avatarId == GameConstants.MAIN_CHARACTER_FEMALE) {
|
||||
startingSkillDepot = 704;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
// Make sure resources folder is set
|
||||
if (!GameData.getAvatarDataMap().containsKey(avatarId)) {
|
||||
Grasscutter.getLogger().error("No avatar data found! Please check your ExcelBinOutput folder.");
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
|
||||
// Get player object
|
||||
Player player = session.getPlayer();
|
||||
player.setNickname(req.getNickName());
|
||||
|
||||
// Create avatar
|
||||
if (player.getAvatars().getAvatarCount() == 0) {
|
||||
Avatar mainCharacter = new Avatar(avatarId);
|
||||
mainCharacter.setSkillDepotData(GameData.getAvatarSkillDepotDataMap().get(startingSkillDepot));
|
||||
// Manually handle adding to team
|
||||
player.addAvatar(mainCharacter, false);
|
||||
player.setMainCharacterId(avatarId);
|
||||
player.setHeadImage(avatarId);
|
||||
player.getTeamManager().getCurrentSinglePlayerTeamInfo().getAvatars().add(mainCharacter.getAvatarId());
|
||||
player.save(); // TODO save player team in different object
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
// Login done
|
||||
session.getPlayer().onLogin();
|
||||
|
||||
// Born resp packet
|
||||
session.send(new BasePacket(PacketOpcodes.SetPlayerBornDataRsp));
|
||||
|
||||
// Default mail
|
||||
var welcomeMail = GAME_INFO.joinOptions.welcomeMail;
|
||||
MailBuilder mailBuilder = new MailBuilder(player.getUid(), new Mail());
|
||||
mailBuilder.mail.mailContent.title = welcomeMail.title;
|
||||
mailBuilder.mail.mailContent.sender = welcomeMail.sender;
|
||||
// Please credit Grasscutter if changing something here. We don't condone commercial use of the project.
|
||||
mailBuilder.mail.mailContent.content = welcomeMail.content + "\n<type=\"browser\" text=\"GitHub\" href=\"https://github.com/Melledy/Grasscutter\"/>";
|
||||
mailBuilder.mail.itemList.addAll(Arrays.asList(welcomeMail.items));
|
||||
mailBuilder.mail.importance = 1;
|
||||
player.sendMail(mailBuilder.mail);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@ import emu.grasscutter.server.packet.send.PacketTowerAllDataRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.TowerAllDataReq)
|
||||
public class HandlerTowerAllDataReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.send(new PacketTowerAllDataRsp(
|
||||
session.getServer().getTowerSystem(),
|
||||
session.getPlayer().getTowerManager()
|
||||
));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.send(new PacketTowerAllDataRsp(
|
||||
session.getServer().getTowerSystem(),
|
||||
session.getPlayer().getTowerManager()
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,28 +13,28 @@ import emu.grasscutter.Grasscutter.ServerDebugMode;
|
||||
|
||||
@Opcodes(PacketOpcodes.UnionCmdNotify)
|
||||
public class HandlerUnionCmdNotify extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
UnionCmdNotify req = UnionCmdNotify.parseFrom(payload);
|
||||
for (UnionCmd cmd : req.getCmdListList()) {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
UnionCmdNotify req = UnionCmdNotify.parseFrom(payload);
|
||||
for (UnionCmd cmd : req.getCmdListList()) {
|
||||
int cmdOpcode = cmd.getMessageId();
|
||||
byte[] cmdPayload = cmd.getBody().toByteArray();
|
||||
if(GAME_INFO.logPackets == ServerDebugMode.WHITELIST && SERVER.debugWhitelist.contains(cmd.getMessageId())) {
|
||||
if (GAME_INFO.logPackets == ServerDebugMode.WHITELIST && SERVER.debugWhitelist.contains(cmd.getMessageId())) {
|
||||
session.logPacket("RECV in Union", cmdOpcode, cmdPayload);
|
||||
} else if (GAME_INFO.logPackets == ServerDebugMode.BLACKLIST && !SERVER.debugBlacklist.contains(cmd.getMessageId())) {
|
||||
session.logPacket("RECV in Union", cmdOpcode, cmdPayload);
|
||||
}
|
||||
//debugLevel ALL ignores UnionCmdNotify, so we will also ignore the contained opcodes
|
||||
session.getServer().getPacketHandler().handle(session, cmd.getMessageId(), EMPTY_BYTE_ARRAY, cmd.getBody().toByteArray());
|
||||
}
|
||||
}
|
||||
|
||||
// Update
|
||||
session.getPlayer().getCombatInvokeHandler().update(session.getPlayer());
|
||||
session.getPlayer().getAbilityInvokeHandler().update(session.getPlayer());
|
||||
// Update
|
||||
session.getPlayer().getCombatInvokeHandler().update(session.getPlayer());
|
||||
session.getPlayer().getAbilityInvokeHandler().update(session.getPlayer());
|
||||
|
||||
// Handle attack results last
|
||||
while (!session.getPlayer().getAttackResults().isEmpty()) {
|
||||
session.getPlayer().getScene().handleAttack(session.getPlayer().getAttackResults().poll());
|
||||
}
|
||||
}
|
||||
while (!session.getPlayer().getAttackResults().isEmpty()) {
|
||||
session.getPlayer().getScene().handleAttack(session.getPlayer().getAttackResults().poll());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.UnlockAvatarTalentReq)
|
||||
public class HandlerUnlockAvatarTalentReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
UnlockAvatarTalentReq req = UnlockAvatarTalentReq.parseFrom(payload);
|
||||
|
||||
// Unlock avatar const
|
||||
session.getServer().getInventorySystem().unlockAvatarConstellation(session.getPlayer(), req.getAvatarGuid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
UnlockAvatarTalentReq req = UnlockAvatarTalentReq.parseFrom(payload);
|
||||
|
||||
// Unlock avatar const
|
||||
session.getServer().getInventorySystem().unlockAvatarConstellation(session.getPlayer(), req.getAvatarGuid());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -10,17 +10,17 @@ import emu.grasscutter.server.packet.send.PacketUseItemRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.UseItemReq)
|
||||
public class HandlerUseItemReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
UseItemReq req = UseItemReq.parseFrom(payload);
|
||||
|
||||
GameItem useItem = session.getServer().getInventorySystem().useItem(session.getPlayer(), req.getTargetGuid(), req.getGuid(), req.getCount(), req.getOptionIdx());
|
||||
if (useItem != null) {
|
||||
session.send(new PacketUseItemRsp(req.getTargetGuid(), useItem));
|
||||
} else {
|
||||
session.send(new PacketUseItemRsp());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
UseItemReq req = UseItemReq.parseFrom(payload);
|
||||
|
||||
GameItem useItem = session.getServer().getInventorySystem().useItem(session.getPlayer(), req.getTargetGuid(), req.getGuid(), req.getCount(), req.getOptionIdx());
|
||||
if (useItem != null) {
|
||||
session.send(new PacketUseItemRsp(req.getTargetGuid(), useItem));
|
||||
} else {
|
||||
session.send(new PacketUseItemRsp());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.WeaponAwakenReq)
|
||||
public class HandlerWeaponAwakenReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
WeaponAwakenReq req = WeaponAwakenReq.parseFrom(payload);
|
||||
|
||||
// Weapon refinement
|
||||
session.getServer().getInventorySystem().refineWeapon(session.getPlayer(), req.getTargetWeaponGuid(), req.getItemGuid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
WeaponAwakenReq req = WeaponAwakenReq.parseFrom(payload);
|
||||
|
||||
// Weapon refinement
|
||||
session.getServer().getInventorySystem().refineWeapon(session.getPlayer(), req.getTargetWeaponGuid(), req.getItemGuid());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.WeaponPromoteReq)
|
||||
public class HandlerWeaponPromoteReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
WeaponPromoteReq req = WeaponPromoteReq.parseFrom(payload);
|
||||
|
||||
// Ascend weapon
|
||||
session.getServer().getInventorySystem().promoteWeapon(session.getPlayer(), req.getTargetWeaponGuid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
WeaponPromoteReq req = WeaponPromoteReq.parseFrom(payload);
|
||||
|
||||
// Ascend weapon
|
||||
session.getServer().getInventorySystem().promoteWeapon(session.getPlayer(), req.getTargetWeaponGuid());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,18 +8,18 @@ import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.WeaponUpgradeReq)
|
||||
public class HandlerWeaponUpgradeReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
WeaponUpgradeReq req = WeaponUpgradeReq.parseFrom(payload);
|
||||
|
||||
// Level up weapon
|
||||
session.getServer().getInventorySystem().upgradeWeapon(
|
||||
session.getPlayer(),
|
||||
req.getTargetWeaponGuid(),
|
||||
req.getFoodWeaponGuidListList(),
|
||||
req.getItemParamListList()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
WeaponUpgradeReq req = WeaponUpgradeReq.parseFrom(payload);
|
||||
|
||||
// Level up weapon
|
||||
session.getServer().getInventorySystem().upgradeWeapon(
|
||||
session.getPlayer(),
|
||||
req.getTargetWeaponGuid(),
|
||||
req.getFoodWeaponGuidListList(),
|
||||
req.getItemParamListList()
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user