mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-02-07 02:26:43 +01:00
Refactor game server managers to systems
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
package emu.grasscutter.server.game;
|
||||
|
||||
public abstract class BaseGameSystem {
|
||||
protected final GameServer server;
|
||||
|
||||
public BaseGameSystem(GameServer server) {
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
public GameServer getServer() {
|
||||
return this.server;
|
||||
}
|
||||
}
|
||||
@@ -5,27 +5,27 @@ import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.command.CommandMap;
|
||||
import emu.grasscutter.database.DatabaseHelper;
|
||||
import emu.grasscutter.game.Account;
|
||||
import emu.grasscutter.game.battlepass.BattlePassMissionManager;
|
||||
import emu.grasscutter.game.battlepass.BattlePassSystem;
|
||||
import emu.grasscutter.game.combine.CombineManger;
|
||||
import emu.grasscutter.game.drop.DropManager;
|
||||
import emu.grasscutter.game.dungeons.DungeonManager;
|
||||
import emu.grasscutter.game.drop.DropSystem;
|
||||
import emu.grasscutter.game.dungeons.DungeonSystem;
|
||||
import emu.grasscutter.game.dungeons.challenge.DungeonChallenge;
|
||||
import emu.grasscutter.game.expedition.ExpeditionManager;
|
||||
import emu.grasscutter.game.gacha.GachaManager;
|
||||
import emu.grasscutter.game.managers.AnnouncementManager;
|
||||
import emu.grasscutter.game.expedition.ExpeditionSystem;
|
||||
import emu.grasscutter.game.gacha.GachaSystem;
|
||||
import emu.grasscutter.game.managers.AnnouncementSystem;
|
||||
import emu.grasscutter.game.managers.CookingManager;
|
||||
import emu.grasscutter.game.managers.InventoryManager;
|
||||
import emu.grasscutter.game.managers.MultiplayerManager;
|
||||
import emu.grasscutter.game.managers.InventorySystem;
|
||||
import emu.grasscutter.game.managers.MultiplayerSystem;
|
||||
import emu.grasscutter.game.managers.chat.ChatManager;
|
||||
import emu.grasscutter.game.managers.chat.ChatManagerHandler;
|
||||
import emu.grasscutter.game.managers.energy.EnergyManager;
|
||||
import emu.grasscutter.game.managers.stamina.StaminaManager;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.ServerQuestHandler;
|
||||
import emu.grasscutter.game.shop.ShopManager;
|
||||
import emu.grasscutter.game.tower.TowerScheduleManager;
|
||||
import emu.grasscutter.game.quest.QuestSystem;
|
||||
import emu.grasscutter.game.shop.ShopSystem;
|
||||
import emu.grasscutter.game.tower.TowerSystem;
|
||||
import emu.grasscutter.game.world.World;
|
||||
import emu.grasscutter.game.world.WorldDataManager;
|
||||
import emu.grasscutter.game.world.WorldDataSystem;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.proto.SocialDetailOuterClass.SocialDetail;
|
||||
import emu.grasscutter.server.event.types.ServerEvent;
|
||||
@@ -47,30 +47,35 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
import static emu.grasscutter.utils.Language.translate;
|
||||
import static emu.grasscutter.Configuration.*;
|
||||
|
||||
@Getter
|
||||
public final class GameServer extends KcpServer {
|
||||
private final InetSocketAddress address;
|
||||
// Game server base
|
||||
private final InetSocketAddress address;
|
||||
private final GameServerPacketHandler packetHandler;
|
||||
private final ServerQuestHandler questHandler;
|
||||
@Getter private final ServerTaskScheduler scheduler;
|
||||
|
||||
private final Map<Integer, Player> players;
|
||||
private final Set<World> worlds;
|
||||
private final Map<Integer, Player> players;
|
||||
private final Set<World> worlds;
|
||||
|
||||
// Server systems
|
||||
private final InventorySystem inventorySystem;
|
||||
private final GachaSystem gachaSystem;
|
||||
private final ShopSystem shopSystem;
|
||||
private final MultiplayerSystem multiplayerSystem;
|
||||
private final DungeonSystem dungeonSystem;
|
||||
private final ExpeditionSystem expeditionSystem;
|
||||
private final DropSystem dropSystem;
|
||||
private final WorldDataSystem worldDataSystem;
|
||||
private final BattlePassSystem battlePassSystem;
|
||||
private final CombineManger combineSystem;
|
||||
private final TowerSystem towerSystem;
|
||||
private final AnnouncementSystem announcementSystem;
|
||||
private final QuestSystem questSystem;
|
||||
|
||||
// Extra
|
||||
private final ServerTaskScheduler scheduler;
|
||||
private final CommandMap commandMap;
|
||||
private final TaskMap taskMap;
|
||||
|
||||
private ChatManagerHandler chatManager;
|
||||
@Getter private final InventoryManager inventoryManager;
|
||||
@Getter private final GachaManager gachaManager;
|
||||
@Getter private final ShopManager shopManager;
|
||||
@Getter private final MultiplayerManager multiplayerManager;
|
||||
@Getter private final DungeonManager dungeonManager;
|
||||
@Getter private final ExpeditionManager expeditionManager;
|
||||
@Getter private final CommandMap commandMap;
|
||||
@Getter private final TaskMap taskMap;
|
||||
@Getter private final DropManager dropManager;
|
||||
@Getter private final WorldDataManager worldDataManager;
|
||||
@Getter private final BattlePassMissionManager battlePassMissionManager;
|
||||
@Getter private final CombineManger combineManger;
|
||||
@Getter private final TowerScheduleManager towerScheduleManager;
|
||||
@Getter private final AnnouncementManager announcementManager;
|
||||
|
||||
public GameServer() {
|
||||
this(getAdapterInetSocketAddress());
|
||||
@@ -78,11 +83,11 @@ public final class GameServer extends KcpServer {
|
||||
|
||||
public GameServer(InetSocketAddress address) {
|
||||
ChannelConfig channelConfig = new ChannelConfig();
|
||||
channelConfig.nodelay(true,40,2,true);
|
||||
channelConfig.nodelay(true, 40, 2, true);
|
||||
channelConfig.setMtu(1400);
|
||||
channelConfig.setSndwnd(256);
|
||||
channelConfig.setRcvwnd(256);
|
||||
channelConfig.setTimeoutMillis(30*1000);//30s
|
||||
channelConfig.setTimeoutMillis(30 * 1000);//30s
|
||||
channelConfig.setUseConvChannel(true);
|
||||
channelConfig.setAckNoDelay(false);
|
||||
|
||||
@@ -94,56 +99,56 @@ public final class GameServer extends KcpServer {
|
||||
CookingManager.initialize();
|
||||
CombineManger.initialize();
|
||||
|
||||
// Game Server base
|
||||
this.address = address;
|
||||
this.packetHandler = new GameServerPacketHandler(PacketHandler.class);
|
||||
this.questHandler = new ServerQuestHandler();
|
||||
this.scheduler = new ServerTaskScheduler();
|
||||
this.players = new ConcurrentHashMap<>();
|
||||
this.worlds = Collections.synchronizedSet(new HashSet<>());
|
||||
|
||||
this.chatManager = new ChatManager(this);
|
||||
this.inventoryManager = new InventoryManager(this);
|
||||
this.gachaManager = new GachaManager(this);
|
||||
this.shopManager = new ShopManager(this);
|
||||
this.multiplayerManager = new MultiplayerManager(this);
|
||||
this.dungeonManager = new DungeonManager(this);
|
||||
|
||||
// Extra
|
||||
this.scheduler = new ServerTaskScheduler();
|
||||
this.commandMap = new CommandMap(true);
|
||||
this.taskMap = new TaskMap(true);
|
||||
this.dropManager = new DropManager(this);
|
||||
this.expeditionManager = new ExpeditionManager(this);
|
||||
this.combineManger = new CombineManger(this);
|
||||
this.towerScheduleManager = new TowerScheduleManager(this);
|
||||
this.worldDataManager = new WorldDataManager(this);
|
||||
this.battlePassMissionManager = new BattlePassMissionManager(this);
|
||||
this.announcementManager = new AnnouncementManager(this);
|
||||
this.taskMap = new TaskMap(true);
|
||||
|
||||
// Create game systems
|
||||
this.inventorySystem = new InventorySystem(this);
|
||||
this.gachaSystem = new GachaSystem(this);
|
||||
this.shopSystem = new ShopSystem(this);
|
||||
this.multiplayerSystem = new MultiplayerSystem(this);
|
||||
this.dungeonSystem = new DungeonSystem(this);
|
||||
this.dropSystem = new DropSystem(this);
|
||||
this.expeditionSystem = new ExpeditionSystem(this);
|
||||
this.combineSystem = new CombineManger(this);
|
||||
this.towerSystem = new TowerSystem(this);
|
||||
this.worldDataSystem = new WorldDataSystem(this);
|
||||
this.battlePassSystem = new BattlePassSystem(this);
|
||||
this.announcementSystem = new AnnouncementSystem(this);
|
||||
this.questSystem = new QuestSystem(this);
|
||||
|
||||
// Chata manager
|
||||
this.chatManager = new ChatManager(this);
|
||||
|
||||
// Hook into shutdown event.
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(this::onServerShutdown));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ChatManagerHandler getChatManager() {
|
||||
return chatManager;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void setChatManager(ChatManagerHandler chatManager) {
|
||||
this.chatManager = chatManager;
|
||||
}
|
||||
|
||||
public ChatManagerHandler getChatSystem() {
|
||||
return chatManager;
|
||||
}
|
||||
|
||||
public GameServerPacketHandler getPacketHandler() {
|
||||
return packetHandler;
|
||||
}
|
||||
|
||||
public ServerQuestHandler getQuestHandler() {
|
||||
return questHandler;
|
||||
}
|
||||
|
||||
public Map<Integer, Player> getPlayers() {
|
||||
return players;
|
||||
}
|
||||
|
||||
public Set<World> getWorlds() {
|
||||
return worlds;
|
||||
}
|
||||
|
||||
public ChatManagerHandler getChatManager() {
|
||||
return chatManager;
|
||||
}
|
||||
|
||||
public void setChatManager(ChatManagerHandler chatManager) {
|
||||
this.chatManager = chatManager;
|
||||
}
|
||||
|
||||
public void setChatSystem(ChatManagerHandler chatManager) {
|
||||
this.chatManager = chatManager;
|
||||
}
|
||||
|
||||
private static InetSocketAddress getAdapterInetSocketAddress(){
|
||||
InetSocketAddress inetSocketAddress;
|
||||
|
||||
@@ -4,7 +4,7 @@ import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.database.DatabaseHelper;
|
||||
import emu.grasscutter.game.Account;
|
||||
import emu.grasscutter.game.gacha.GachaBanner;
|
||||
import emu.grasscutter.game.gacha.GachaManager;
|
||||
import emu.grasscutter.game.gacha.GachaSystem;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.server.http.Router;
|
||||
import emu.grasscutter.tools.Tools;
|
||||
@@ -108,7 +108,7 @@ public final class GachaHandler implements Router {
|
||||
|
||||
// Get the banner info for the banner we want.
|
||||
int scheduleId = Integer.parseInt(request.query("scheduleId"));
|
||||
GachaManager manager = Grasscutter.getGameServer().getGachaManager();
|
||||
GachaSystem manager = Grasscutter.getGameServer().getGachaSystem();
|
||||
GachaBanner banner = manager.getGachaBanners().get(scheduleId);
|
||||
|
||||
// Add 5-star items.
|
||||
|
||||
@@ -34,8 +34,8 @@ public class HandlerAvatarExpeditionGetRewardReq extends PacketHandler {
|
||||
|
||||
List<GameItem> items = new LinkedList<>();
|
||||
|
||||
if (session.getServer().getExpeditionManager().getExpeditionRewardDataList().containsKey(expInfo.getExpId())) {
|
||||
for (ExpeditionRewardDataList RewardDataList : session.getServer().getExpeditionManager().getExpeditionRewardDataList().get(expInfo.getExpId())) {
|
||||
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()){
|
||||
for (ExpeditionRewardData RewardData :RewardDataList.getExpeditionRewardData()) {
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerAvatarPromoteReq extends PacketHandler {
|
||||
AvatarPromoteReq req = AvatarPromoteReq.parseFrom(payload);
|
||||
|
||||
// Ascend avatar
|
||||
session.getServer().getInventoryManager().promoteAvatar(session.getPlayer(), req.getGuid());
|
||||
session.getServer().getInventorySystem().promoteAvatar(session.getPlayer(), req.getGuid());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerAvatarSkillUpgradeReq extends PacketHandler {
|
||||
AvatarSkillUpgradeReq req = AvatarSkillUpgradeReq.parseFrom(payload);
|
||||
|
||||
// Level up avatar talent
|
||||
session.getServer().getInventoryManager().upgradeAvatarSkill(session.getPlayer(), req.getAvatarGuid(), req.getAvatarSkillId());
|
||||
session.getServer().getInventorySystem().upgradeAvatarSkill(session.getPlayer(), req.getAvatarGuid(), req.getAvatarSkillId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerAvatarUpgradeReq extends PacketHandler {
|
||||
AvatarUpgradeReq req = AvatarUpgradeReq.parseFrom(payload);
|
||||
|
||||
// Level up avatar
|
||||
session.getServer().getInventoryManager().upgradeAvatar(
|
||||
session.getServer().getInventorySystem().upgradeAvatar(
|
||||
session.getPlayer(),
|
||||
req.getAvatarGuid(),
|
||||
req.getItemId(),
|
||||
|
||||
@@ -6,7 +6,7 @@ import emu.grasscutter.game.inventory.GameItem;
|
||||
import emu.grasscutter.game.props.ActionReason;
|
||||
import emu.grasscutter.game.shop.ShopInfo;
|
||||
import emu.grasscutter.game.shop.ShopLimit;
|
||||
import emu.grasscutter.game.shop.ShopManager;
|
||||
import emu.grasscutter.game.shop.ShopSystem;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
@@ -29,7 +29,7 @@ public class HandlerBuyGoodsReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
BuyGoodsReqOuterClass.BuyGoodsReq buyGoodsReq = BuyGoodsReqOuterClass.BuyGoodsReq.parseFrom(payload);
|
||||
List<ShopInfo> configShop = session.getServer().getShopManager().getShopData().get(buyGoodsReq.getShopType());
|
||||
List<ShopInfo> configShop = session.getServer().getShopSystem().getShopData().get(buyGoodsReq.getShopType());
|
||||
if (configShop == null)
|
||||
return;
|
||||
|
||||
@@ -46,7 +46,7 @@ public class HandlerBuyGoodsReq extends PacketHandler {
|
||||
int bought = 0;
|
||||
if (shopLimit != null) {
|
||||
if (currentTs > shopLimit.getNextRefreshTime()) {
|
||||
shopLimit.setNextRefreshTime(ShopManager.getShopNextRefreshTime(sg));
|
||||
shopLimit.setNextRefreshTime(ShopSystem.getShopNextRefreshTime(sg));
|
||||
} else {
|
||||
bought = shopLimit.getHasBoughtInPeriod();
|
||||
}
|
||||
@@ -65,7 +65,7 @@ public class HandlerBuyGoodsReq extends PacketHandler {
|
||||
return;
|
||||
}
|
||||
|
||||
session.getPlayer().addShopLimit(sg.getGoodsId(), buyGoodsReq.getBuyCount(), ShopManager.getShopNextRefreshTime(sg));
|
||||
session.getPlayer().addShopLimit(sg.getGoodsId(), buyGoodsReq.getBuyCount(), ShopSystem.getShopNextRefreshTime(sg));
|
||||
GameItem item = new GameItem(GameData.getItemDataMap().get(sg.getGoodsItem().getId()));
|
||||
item.setCount(buyGoodsReq.getBuyCount() * sg.getGoodsItem().getCount());
|
||||
session.getPlayer().getInventory().addItem(item, ActionReason.Shop, true); // fix: not notify when got virtual item from shop
|
||||
|
||||
@@ -17,7 +17,7 @@ public class HandlerCalcWeaponUpgradeReturnItemsReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
CalcWeaponUpgradeReturnItemsReq req = CalcWeaponUpgradeReturnItemsReq.parseFrom(payload);
|
||||
|
||||
List<ItemParam> returnOres = session.getServer().getInventoryManager().calcWeaponUpgradeReturnItems(
|
||||
List<ItemParam> returnOres = session.getServer().getInventorySystem().calcWeaponUpgradeReturnItems(
|
||||
session.getPlayer(),
|
||||
req.getTargetWeaponGuid(),
|
||||
req.getFoodWeaponGuidListList(),
|
||||
|
||||
@@ -21,7 +21,7 @@ public class HandlerCombineReq extends PacketHandler {
|
||||
|
||||
CombineReqOuterClass.CombineReq req = CombineReqOuterClass.CombineReq.parseFrom(payload);
|
||||
|
||||
var result = session.getServer().getCombineManger()
|
||||
var result = session.getServer().getCombineSystem()
|
||||
.combineItem(session.getPlayer(), req.getCombineId(), req.getCombineCount());
|
||||
|
||||
if(result == null){
|
||||
|
||||
@@ -13,6 +13,6 @@ public class HandlerDestroyMaterialReq extends PacketHandler {
|
||||
DestroyMaterialReq req = DestroyMaterialReq.parseFrom(payload);
|
||||
|
||||
// Delete items
|
||||
session.getServer().getInventoryManager().destroyMaterial(session.getPlayer(), req.getMaterialListList());
|
||||
session.getServer().getInventorySystem().destroyMaterial(session.getPlayer(), req.getMaterialListList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,6 @@ public class HandlerDoGachaReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
DoGachaReq req = DoGachaReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getGachaManager().doPulls(session.getPlayer(), req.getGachaScheduleId(), req.getGachaTimes());
|
||||
session.getServer().getGachaSystem().doPulls(session.getPlayer(), req.getGachaScheduleId(), req.getGachaTimes());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ public class HandlerDungeonEntryInfoReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
DungeonEntryInfoReq req = DungeonEntryInfoReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getDungeonManager().getEntryInfo(session.getPlayer(), req.getPointId());
|
||||
session.getServer().getDungeonSystem().getEntryInfo(session.getPlayer(), req.getPointId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ public class HandlerGachaWishReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
GachaWishReq req = GachaWishReq.parseFrom(payload);
|
||||
|
||||
GachaBanner banner = session.getServer().getGachaManager().getGachaBanners().get(req.getGachaScheduleId());
|
||||
GachaBanner banner = session.getServer().getGachaSystem().getGachaBanners().get(req.getGachaScheduleId());
|
||||
PlayerGachaBannerInfo gachaInfo = session.getPlayer().getGachaInfo().getBannerInfo(banner);
|
||||
|
||||
gachaInfo.setFailedChosenItemPulls(0);
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerGetGachaInfoReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.send(new PacketGetGachaInfoRsp(session.getServer().getGachaManager(), session.getPlayer()));
|
||||
session.send(new PacketGetGachaInfoRsp(session.getServer().getGachaSystem(), session.getPlayer()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ public class HandlerGetInvestigationMonsterReq extends PacketHandler {
|
||||
|
||||
session.send(new PacketGetInvestigationMonsterRsp(
|
||||
session.getPlayer(),
|
||||
session.getServer().getWorldDataManager(),
|
||||
session.getServer().getWorldDataSystem(),
|
||||
req.getCityIdListList()));
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerPlayerApplyEnterMpReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
PlayerApplyEnterMpReq req = PlayerApplyEnterMpReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getMultiplayerManager().applyEnterMp(session.getPlayer(), req.getTargetUid());
|
||||
session.getServer().getMultiplayerSystem().applyEnterMp(session.getPlayer(), req.getTargetUid());
|
||||
session.send(new PacketPlayerApplyEnterMpRsp(req.getTargetUid()));
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerPlayerApplyEnterMpResultReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
PlayerApplyEnterMpResultReq req = PlayerApplyEnterMpResultReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getMultiplayerManager().applyEnterMpReply(session.getPlayer(), req.getApplyUid(), req.getIsAgreed());
|
||||
session.getServer().getMultiplayerSystem().applyEnterMpReply(session.getPlayer(), req.getApplyUid(), req.getIsAgreed());
|
||||
session.send(new PacketPlayerApplyEnterMpResultRsp(req.getApplyUid(), req.getIsAgreed()));
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerPlayerEnterDungeonReq extends PacketHandler {
|
||||
// Auto template
|
||||
PlayerEnterDungeonReq req = PlayerEnterDungeonReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getDungeonManager().enterDungeon(session.getPlayer(), req.getPointId(), req.getDungeonId());
|
||||
session.getServer().getDungeonSystem().enterDungeon(session.getPlayer(), req.getPointId(), req.getDungeonId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ public class HandlerPlayerGetForceQuitBanInfoReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
|
||||
if (session.getServer().getMultiplayerManager().leaveCoop(session.getPlayer())) {
|
||||
if (session.getServer().getMultiplayerSystem().leaveCoop(session.getPlayer())) {
|
||||
// Success
|
||||
session.send(new PacketPlayerGetForceQuitBanInfoRsp(RetcodeOuterClass.Retcode.RET_SUCC_VALUE));
|
||||
} else {
|
||||
|
||||
@@ -10,7 +10,7 @@ public class HandlerPlayerQuitDungeonReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.getPlayer().getServer().getDungeonManager().exitDungeon(session.getPlayer());
|
||||
session.getPlayer().getServer().getDungeonSystem().exitDungeon(session.getPlayer());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,6 +11,6 @@ public class HandlerReliquaryDecomposeReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
ReliquaryDecomposeReq req = ReliquaryDecomposeReq.parseFrom(payload);
|
||||
session.getServer().getCombineManger().decomposeReliquaries(session.getPlayer(), req.getConfigId(), req.getTargetCount(), req.getGuidListList());
|
||||
session.getServer().getCombineSystem().decomposeReliquaries(session.getPlayer(), req.getConfigId(), req.getTargetCount(), req.getGuidListList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ public class HandlerReliquaryUpgradeReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
ReliquaryUpgradeReq req = ReliquaryUpgradeReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getInventoryManager().upgradeRelic(session.getPlayer(), req.getTargetReliquaryGuid(), req.getFoodReliquaryGuidListList(), req.getItemParamListList());
|
||||
session.getServer().getInventorySystem().upgradeRelic(session.getPlayer(), req.getTargetReliquaryGuid(), req.getFoodReliquaryGuidListList(), req.getItemParamListList());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerSceneKickPlayerReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
SceneKickPlayerReq req = SceneKickPlayerReq.parseFrom(payload);
|
||||
|
||||
if (session.getServer().getMultiplayerManager().kickPlayer(session.getPlayer(), req.getTargetUid())) {
|
||||
if (session.getServer().getMultiplayerSystem().kickPlayer(session.getPlayer(), req.getTargetUid())) {
|
||||
// Success
|
||||
session.send(new PacketSceneKickPlayerRsp(req.getTargetUid()));
|
||||
} else {
|
||||
|
||||
@@ -13,7 +13,7 @@ public class HandlerSetEquipLockStateReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
SetEquipLockStateReq req = SetEquipLockStateReq.parseFrom(payload);
|
||||
|
||||
session.getServer().getInventoryManager().lockEquip(session.getPlayer(), req.getTargetEquipGuid(), req.getIsLocked());
|
||||
session.getServer().getInventorySystem().lockEquip(session.getPlayer(), req.getTargetEquipGuid(), req.getIsLocked());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ public class HandlerTowerAllDataReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.send(new PacketTowerAllDataRsp(
|
||||
session.getServer().getTowerScheduleManager(),
|
||||
session.getServer().getTowerSystem(),
|
||||
session.getPlayer().getTowerManager()
|
||||
));
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerUnlockAvatarTalentReq extends PacketHandler {
|
||||
UnlockAvatarTalentReq req = UnlockAvatarTalentReq.parseFrom(payload);
|
||||
|
||||
// Unlock avatar const
|
||||
session.getServer().getInventoryManager().unlockAvatarConstellation(session.getPlayer(), req.getAvatarGuid());
|
||||
session.getServer().getInventorySystem().unlockAvatarConstellation(session.getPlayer(), req.getAvatarGuid());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public class HandlerUseItemReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
UseItemReq req = UseItemReq.parseFrom(payload);
|
||||
|
||||
GameItem useItem = session.getServer().getInventoryManager().useItem(session.getPlayer(), req.getTargetGuid(), req.getGuid(), req.getCount(), req.getOptionIdx());
|
||||
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 {
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerWeaponAwakenReq extends PacketHandler {
|
||||
WeaponAwakenReq req = WeaponAwakenReq.parseFrom(payload);
|
||||
|
||||
// Weapon refinement
|
||||
session.getServer().getInventoryManager().refineWeapon(session.getPlayer(), req.getTargetWeaponGuid(), req.getItemGuid());
|
||||
session.getServer().getInventorySystem().refineWeapon(session.getPlayer(), req.getTargetWeaponGuid(), req.getItemGuid());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerWeaponPromoteReq extends PacketHandler {
|
||||
WeaponPromoteReq req = WeaponPromoteReq.parseFrom(payload);
|
||||
|
||||
// Ascend weapon
|
||||
session.getServer().getInventoryManager().promoteWeapon(session.getPlayer(), req.getTargetWeaponGuid());
|
||||
session.getServer().getInventorySystem().promoteWeapon(session.getPlayer(), req.getTargetWeaponGuid());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerWeaponUpgradeReq extends PacketHandler {
|
||||
WeaponUpgradeReq req = WeaponUpgradeReq.parseFrom(payload);
|
||||
|
||||
// Level up weapon
|
||||
session.getServer().getInventoryManager().upgradeWeapon(
|
||||
session.getServer().getInventorySystem().upgradeWeapon(
|
||||
session.getPlayer(),
|
||||
req.getTargetWeaponGuid(),
|
||||
req.getFoodWeaponGuidListList(),
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.gacha.GachaManager;
|
||||
import emu.grasscutter.game.gacha.GachaSystem;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
|
||||
public class PacketGetGachaInfoRsp extends BasePacket {
|
||||
|
||||
public PacketGetGachaInfoRsp(GachaManager manager, Player player) {
|
||||
public PacketGetGachaInfoRsp(GachaSystem manager, Player player) {
|
||||
super(PacketOpcodes.GetGachaInfoRsp);
|
||||
|
||||
this.setData(manager.toProto(player));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.world.WorldDataManager;
|
||||
import emu.grasscutter.game.world.WorldDataSystem;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.GetActivityInfoRspOuterClass;
|
||||
@@ -11,7 +11,7 @@ import java.util.List;
|
||||
|
||||
public class PacketGetInvestigationMonsterRsp extends BasePacket {
|
||||
|
||||
public PacketGetInvestigationMonsterRsp(Player player, WorldDataManager worldDataManager, List<Integer> cityIdListList) {
|
||||
public PacketGetInvestigationMonsterRsp(Player player, WorldDataSystem worldDataManager, List<Integer> cityIdListList) {
|
||||
|
||||
super(PacketOpcodes.GetInvestigationMonsterRsp);
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.shop.ShopInfo;
|
||||
import emu.grasscutter.game.shop.ShopLimit;
|
||||
import emu.grasscutter.game.shop.ShopManager;
|
||||
import emu.grasscutter.game.shop.ShopSystem;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.GetShopRspOuterClass;
|
||||
@@ -27,7 +27,7 @@ public class PacketGetShopRsp extends BasePacket {
|
||||
.setCityId(1) //mock
|
||||
.setCityReputationLevel(10); //mock
|
||||
|
||||
ShopManager manager = Grasscutter.getGameServer().getShopManager();
|
||||
ShopSystem manager = Grasscutter.getGameServer().getShopSystem();
|
||||
if (manager.getShopData().get(shopType) != null) {
|
||||
List<ShopInfo> list = manager.getShopData().get(shopType);
|
||||
List<ShopGoods> goodsList = new ArrayList<>();
|
||||
@@ -54,7 +54,7 @@ public class PacketGetShopRsp extends BasePacket {
|
||||
|
||||
int currentTs = Utils.getCurrentSeconds();
|
||||
ShopLimit currentShopLimit = inv.getGoodsLimit(info.getGoodsId());
|
||||
int nextRefreshTime = ShopManager.getShopNextRefreshTime(info);
|
||||
int nextRefreshTime = ShopSystem.getShopNextRefreshTime(info);
|
||||
if (currentShopLimit != null) {
|
||||
if (currentShopLimit.getNextRefreshTime() < currentTs) { // second game day
|
||||
currentShopLimit.setHasBoughtInPeriod(0);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.tower.TowerManager;
|
||||
import emu.grasscutter.game.tower.TowerScheduleManager;
|
||||
import emu.grasscutter.game.tower.TowerSystem;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp;
|
||||
@@ -17,7 +17,7 @@ import java.util.stream.IntStream;
|
||||
|
||||
public class PacketTowerAllDataRsp extends BasePacket {
|
||||
|
||||
public PacketTowerAllDataRsp(TowerScheduleManager towerScheduleManager, TowerManager towerManager) {
|
||||
public PacketTowerAllDataRsp(TowerSystem towerScheduleManager, TowerManager towerManager) {
|
||||
super(PacketOpcodes.TowerAllDataRsp);
|
||||
|
||||
var recordList = towerManager.getRecordMap().values().stream()
|
||||
|
||||
Reference in New Issue
Block a user