Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
ziqian zhang
Grasscutter
Commits
2e19e70f
Commit
2e19e70f
authored
Jul 18, 2022
by
Melledy
Browse files
Refactor game server managers to systems
parent
d20e9d1f
Changes
63
Hide whitespace changes
Inline
Side-by-side
src/main/java/emu/grasscutter/command/commands/AnnounceCommand.java
View file @
2e19e70f
...
@@ -22,7 +22,7 @@ public final class AnnounceCommand implements CommandHandler {
...
@@ -22,7 +22,7 @@ public final class AnnounceCommand implements CommandHandler {
@Override
@Override
public
void
execute
(
Player
sender
,
Player
targetPlayer
,
List
<
String
>
args
)
{
public
void
execute
(
Player
sender
,
Player
targetPlayer
,
List
<
String
>
args
)
{
var
manager
=
Grasscutter
.
getGameServer
().
getAnnouncement
Manager
();
var
manager
=
Grasscutter
.
getGameServer
().
getAnnouncement
System
();
if
(
args
.
size
()
<
1
)
{
if
(
args
.
size
()
<
1
)
{
CommandHandler
.
sendTranslatedMessage
(
sender
,
"commands.announce.command_usage"
);
CommandHandler
.
sendTranslatedMessage
(
sender
,
"commands.announce.command_usage"
);
return
;
return
;
...
...
src/main/java/emu/grasscutter/command/commands/CoopCommand.java
View file @
2e19e70f
...
@@ -41,10 +41,10 @@ public final class CoopCommand implements CommandHandler {
...
@@ -41,10 +41,10 @@ public final class CoopCommand implements CommandHandler {
// There's no target==host check but this just places them in multiplayer in their own world which seems fine.
// There's no target==host check but this just places them in multiplayer in their own world which seems fine.
if
(
targetPlayer
.
isInMultiplayer
())
{
if
(
targetPlayer
.
isInMultiplayer
())
{
targetPlayer
.
getServer
().
getMultiplayer
Manager
().
leaveCoop
(
targetPlayer
);
targetPlayer
.
getServer
().
getMultiplayer
System
().
leaveCoop
(
targetPlayer
);
}
}
host
.
getServer
().
getMultiplayer
Manager
().
applyEnterMp
(
targetPlayer
,
host
.
getUid
());
host
.
getServer
().
getMultiplayer
System
().
applyEnterMp
(
targetPlayer
,
host
.
getUid
());
targetPlayer
.
getServer
().
getMultiplayer
Manager
().
applyEnterMpReply
(
host
,
targetPlayer
.
getUid
(),
true
);
targetPlayer
.
getServer
().
getMultiplayer
System
().
applyEnterMpReply
(
host
,
targetPlayer
.
getUid
(),
true
);
CommandHandler
.
sendMessage
(
sender
,
translate
(
sender
,
"commands.coop.success"
,
targetPlayer
.
getNickname
(),
host
.
getNickname
()));
CommandHandler
.
sendMessage
(
sender
,
translate
(
sender
,
"commands.coop.success"
,
targetPlayer
.
getNickname
(),
host
.
getNickname
()));
}
}
}
}
src/main/java/emu/grasscutter/command/commands/EnterDungeonCommand.java
View file @
2e19e70f
...
@@ -25,7 +25,7 @@ public final class EnterDungeonCommand implements CommandHandler {
...
@@ -25,7 +25,7 @@ public final class EnterDungeonCommand implements CommandHandler {
return
;
return
;
}
}
boolean
result
=
targetPlayer
.
getServer
().
getDungeon
Manager
().
enterDungeon
(
targetPlayer
.
getSession
().
getPlayer
(),
0
,
dungeonId
);
boolean
result
=
targetPlayer
.
getServer
().
getDungeon
System
().
enterDungeon
(
targetPlayer
.
getSession
().
getPlayer
(),
0
,
dungeonId
);
if
(!
result
)
{
if
(!
result
)
{
CommandHandler
.
sendMessage
(
sender
,
translate
(
sender
,
"commands.enter_dungeon.not_found_error"
));
CommandHandler
.
sendMessage
(
sender
,
translate
(
sender
,
"commands.enter_dungeon.not_found_error"
));
...
...
src/main/java/emu/grasscutter/command/commands/ReloadCommand.java
View file @
2e19e70f
...
@@ -18,9 +18,9 @@ public final class ReloadCommand implements CommandHandler {
...
@@ -18,9 +18,9 @@ public final class ReloadCommand implements CommandHandler {
Grasscutter
.
loadConfig
();
Grasscutter
.
loadConfig
();
Grasscutter
.
loadLanguage
();
Grasscutter
.
loadLanguage
();
Grasscutter
.
getGameServer
().
getGacha
Manager
().
load
();
Grasscutter
.
getGameServer
().
getGacha
System
().
load
();
Grasscutter
.
getGameServer
().
getDrop
Manager
().
load
();
Grasscutter
.
getGameServer
().
getDrop
System
().
load
();
Grasscutter
.
getGameServer
().
getShop
Manager
().
load
();
Grasscutter
.
getGameServer
().
getShop
System
().
load
();
CommandHandler
.
sendMessage
(
sender
,
translate
(
sender
,
"commands.reload.reload_done"
));
CommandHandler
.
sendMessage
(
sender
,
translate
(
sender
,
"commands.reload.reload_done"
));
}
}
...
...
src/main/java/emu/grasscutter/command/commands/SetPropCommand.java
View file @
2e19e70f
...
@@ -146,7 +146,7 @@ public final class SetPropCommand implements CommandHandler {
...
@@ -146,7 +146,7 @@ public final class SetPropCommand implements CommandHandler {
}
}
private
boolean
setTowerLevel
(
Player
sender
,
Player
targetPlayer
,
int
topFloor
)
{
private
boolean
setTowerLevel
(
Player
sender
,
Player
targetPlayer
,
int
topFloor
)
{
List
<
Integer
>
floorIds
=
targetPlayer
.
getServer
().
getTowerS
cheduleManager
().
getAllFloors
();
List
<
Integer
>
floorIds
=
targetPlayer
.
getServer
().
getTowerS
ystem
().
getAllFloors
();
if
(
topFloor
<
0
||
topFloor
>
floorIds
.
size
())
{
if
(
topFloor
<
0
||
topFloor
>
floorIds
.
size
())
{
String
min
=
Integer
.
toString
(
0
);
String
min
=
Integer
.
toString
(
0
);
String
max
=
Integer
.
toString
(
floorIds
.
size
());
String
max
=
Integer
.
toString
(
floorIds
.
size
());
...
...
src/main/java/emu/grasscutter/game/battlepass/BattlePassManager.java
View file @
2e19e70f
...
@@ -140,11 +140,11 @@ public class BattlePassManager extends BasePlayerDataManager {
...
@@ -140,11 +140,11 @@ public class BattlePassManager extends BasePlayerDataManager {
// Mission triggers
// Mission triggers
public
void
triggerMission
(
WatcherTriggerType
triggerType
)
{
public
void
triggerMission
(
WatcherTriggerType
triggerType
)
{
getPlayer
().
getServer
().
getBattlePass
MissionManager
().
triggerMission
(
getPlayer
(),
triggerType
);
getPlayer
().
getServer
().
getBattlePass
System
().
triggerMission
(
getPlayer
(),
triggerType
);
}
}
public
void
triggerMission
(
WatcherTriggerType
triggerType
,
int
param
,
int
progress
)
{
public
void
triggerMission
(
WatcherTriggerType
triggerType
,
int
param
,
int
progress
)
{
getPlayer
().
getServer
().
getBattlePass
MissionManager
().
triggerMission
(
getPlayer
(),
triggerType
,
param
,
progress
);
getPlayer
().
getServer
().
getBattlePass
System
().
triggerMission
(
getPlayer
(),
triggerType
,
param
,
progress
);
}
}
// Handlers
// Handlers
...
...
src/main/java/emu/grasscutter/game/battlepass/BattlePass
MissionManager
.java
→
src/main/java/emu/grasscutter/game/battlepass/BattlePass
System
.java
View file @
2e19e70f
...
@@ -11,16 +11,17 @@ import emu.grasscutter.game.player.Player;
...
@@ -11,16 +11,17 @@ import emu.grasscutter.game.player.Player;
import
emu.grasscutter.game.props.BattlePassMissionRefreshType
;
import
emu.grasscutter.game.props.BattlePassMissionRefreshType
;
import
emu.grasscutter.game.props.BattlePassMissionStatus
;
import
emu.grasscutter.game.props.BattlePassMissionStatus
;
import
emu.grasscutter.game.props.WatcherTriggerType
;
import
emu.grasscutter.game.props.WatcherTriggerType
;
import
emu.grasscutter.server.game.BaseGameSystem
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.packet.send.PacketBattlePassMissionUpdateNotify
;
import
emu.grasscutter.server.packet.send.PacketBattlePassMissionUpdateNotify
;
public
class
BattlePassMissionManager
{
public
class
BattlePassSystem
extends
BaseGameSystem
{
private
final
GameServer
server
;
private
final
Map
<
WatcherTriggerType
,
List
<
BattlePassMissionData
>>
cachedTriggers
;
private
final
Map
<
WatcherTriggerType
,
List
<
BattlePassMissionData
>>
cachedTriggers
;
// BP Mission manager for the server, contains cached triggers so we dont have to load it for each player
// BP Mission manager for the server, contains cached triggers so we dont have to load it for each player
public
BattlePassMissionManager
(
GameServer
server
)
{
public
BattlePassSystem
(
GameServer
server
)
{
this
.
server
=
server
;
super
(
server
);
this
.
cachedTriggers
=
new
HashMap
<>();
this
.
cachedTriggers
=
new
HashMap
<>();
for
(
BattlePassMissionData
missionData
:
GameData
.
getBattlePassMissionDataMap
().
values
())
{
for
(
BattlePassMissionData
missionData
:
GameData
.
getBattlePassMissionDataMap
().
values
())
{
...
...
src/main/java/emu/grasscutter/game/combine/CombineManger.java
View file @
2e19e70f
...
@@ -12,6 +12,7 @@ import emu.grasscutter.game.player.Player;
...
@@ -12,6 +12,7 @@ import emu.grasscutter.game.player.Player;
import
emu.grasscutter.game.props.ActionReason
;
import
emu.grasscutter.game.props.ActionReason
;
import
emu.grasscutter.net.proto.RetcodeOuterClass
;
import
emu.grasscutter.net.proto.RetcodeOuterClass
;
import
emu.grasscutter.net.proto.RetcodeOuterClass.Retcode
;
import
emu.grasscutter.net.proto.RetcodeOuterClass.Retcode
;
import
emu.grasscutter.server.game.BaseGameSystem
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.packet.send.PacketCombineFormulaDataNotify
;
import
emu.grasscutter.server.packet.send.PacketCombineFormulaDataNotify
;
import
emu.grasscutter.server.packet.send.PacketCombineRsp
;
import
emu.grasscutter.server.packet.send.PacketCombineRsp
;
...
@@ -29,16 +30,11 @@ import java.util.List;
...
@@ -29,16 +30,11 @@ import java.util.List;
import
com.google.gson.reflect.TypeToken
;
import
com.google.gson.reflect.TypeToken
;
public
class
CombineManger
{
public
class
CombineManger
extends
BaseGameSystem
{
private
final
GameServer
gameServer
;
private
final
static
Int2ObjectMap
<
List
<
Integer
>>
reliquaryDecomposeData
=
new
Int2ObjectOpenHashMap
<>();
private
final
static
Int2ObjectMap
<
List
<
Integer
>>
reliquaryDecomposeData
=
new
Int2ObjectOpenHashMap
<>();
public
GameServer
getGameServer
()
{
public
CombineManger
(
GameServer
server
)
{
return
gameServer
;
super
(
server
);
}
public
CombineManger
(
GameServer
gameServer
)
{
this
.
gameServer
=
gameServer
;
}
}
public
static
void
initialize
()
{
public
static
void
initialize
()
{
...
...
src/main/java/emu/grasscutter/game/drop/Drop
Manager
.java
→
src/main/java/emu/grasscutter/game/drop/Drop
System
.java
View file @
2e19e70f
...
@@ -12,6 +12,7 @@ import emu.grasscutter.game.inventory.ItemType;
...
@@ -12,6 +12,7 @@ import emu.grasscutter.game.inventory.ItemType;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.game.props.ActionReason
;
import
emu.grasscutter.game.props.ActionReason
;
import
emu.grasscutter.game.world.Scene
;
import
emu.grasscutter.game.world.Scene
;
import
emu.grasscutter.server.game.BaseGameSystem
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.utils.Position
;
import
emu.grasscutter.utils.Position
;
import
emu.grasscutter.utils.Utils
;
import
emu.grasscutter.utils.Utils
;
...
@@ -23,24 +24,18 @@ import java.io.Reader;
...
@@ -23,24 +24,18 @@ import java.io.Reader;
import
java.util.Collection
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.List
;
public
class
DropManager
{
public
class
DropSystem
extends
BaseGameSystem
{
public
GameServer
getGameServer
()
{
return
gameServer
;
}
private
final
GameServer
gameServer
;
public
Int2ObjectMap
<
List
<
DropData
>>
getDropData
()
{
return
dropData
;
}
private
final
Int2ObjectMap
<
List
<
DropData
>>
dropData
;
private
final
Int2ObjectMap
<
List
<
DropData
>>
dropData
;
public
Drop
Manager
(
GameServer
gameS
erver
)
{
public
Drop
System
(
GameServer
s
erver
)
{
this
.
gameServer
=
gameS
erver
;
super
(
s
erver
)
;
this
.
dropData
=
new
Int2ObjectOpenHashMap
<>();
this
.
dropData
=
new
Int2ObjectOpenHashMap
<>();
this
.
load
();
this
.
load
();
}
}
public
Int2ObjectMap
<
List
<
DropData
>>
getDropData
()
{
return
dropData
;
}
public
synchronized
void
load
()
{
public
synchronized
void
load
()
{
try
(
Reader
fileReader
=
new
InputStreamReader
(
DataLoader
.
load
(
"Drop.json"
)))
{
try
(
Reader
fileReader
=
new
InputStreamReader
(
DataLoader
.
load
(
"Drop.json"
)))
{
...
...
src/main/java/emu/grasscutter/game/dungeons/Dungeon
Manager
.java
→
src/main/java/emu/grasscutter/game/dungeons/Dungeon
System
.java
View file @
2e19e70f
...
@@ -11,6 +11,7 @@ import emu.grasscutter.game.quest.enums.QuestTrigger;
...
@@ -11,6 +11,7 @@ import emu.grasscutter.game.quest.enums.QuestTrigger;
import
emu.grasscutter.game.world.Scene
;
import
emu.grasscutter.game.world.Scene
;
import
emu.grasscutter.net.packet.BasePacket
;
import
emu.grasscutter.net.packet.BasePacket
;
import
emu.grasscutter.net.packet.PacketOpcodes
;
import
emu.grasscutter.net.packet.PacketOpcodes
;
import
emu.grasscutter.server.game.BaseGameSystem
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.packet.send.PacketDungeonEntryInfoRsp
;
import
emu.grasscutter.server.packet.send.PacketDungeonEntryInfoRsp
;
import
emu.grasscutter.server.packet.send.PacketPlayerEnterDungeonRsp
;
import
emu.grasscutter.server.packet.send.PacketPlayerEnterDungeonRsp
;
...
@@ -18,15 +19,11 @@ import emu.grasscutter.utils.Position;
...
@@ -18,15 +19,11 @@ import emu.grasscutter.utils.Position;
import
java.util.List
;
import
java.util.List
;
public
class
DungeonManager
{
public
class
DungeonSystem
extends
BaseGameSystem
{
private
final
GameServer
server
;
private
static
final
BasicDungeonSettleListener
basicDungeonSettleObserver
=
new
BasicDungeonSettleListener
();
private
static
final
BasicDungeonSettleListener
basicDungeonSettleObserver
=
new
BasicDungeonSettleListener
();
public
DungeonManager
(
GameServer
server
)
{
this
.
server
=
server
;
public
DungeonSystem
(
GameServer
server
)
{
}
super
(
server
);
public
GameServer
getServer
()
{
return
server
;
}
}
public
void
getEntryInfo
(
Player
player
,
int
pointId
)
{
public
void
getEntryInfo
(
Player
player
,
int
pointId
)
{
...
...
src/main/java/emu/grasscutter/game/entity/gadget/GadgetChest.java
View file @
2e19e70f
...
@@ -19,7 +19,7 @@ public class GadgetChest extends GadgetContent {
...
@@ -19,7 +19,7 @@ public class GadgetChest extends GadgetContent {
}
}
public
boolean
onInteract
(
Player
player
,
GadgetInteractReq
req
)
{
public
boolean
onInteract
(
Player
player
,
GadgetInteractReq
req
)
{
var
chestInteractHandlerMap
=
getGadget
().
getScene
().
getWorld
().
getServer
().
getWorldData
Manager
().
getChestInteractHandlerMap
();
var
chestInteractHandlerMap
=
getGadget
().
getScene
().
getWorld
().
getServer
().
getWorldData
System
().
getChestInteractHandlerMap
();
var
handler
=
chestInteractHandlerMap
.
get
(
getGadget
().
getGadgetData
().
getJsonName
());
var
handler
=
chestInteractHandlerMap
.
get
(
getGadget
().
getGadgetData
().
getJsonName
());
if
(
handler
==
null
){
if
(
handler
==
null
){
Grasscutter
.
getLogger
().
warn
(
"Could not found the handler of this type of Chests {}"
,
getGadget
().
getGadgetData
().
getJsonName
());
Grasscutter
.
getLogger
().
warn
(
"Could not found the handler of this type of Chests {}"
,
getGadget
().
getGadgetData
().
getJsonName
());
...
...
src/main/java/emu/grasscutter/game/entity/gadget/chest/BossChestInteractHandler.java
View file @
2e19e70f
...
@@ -19,7 +19,7 @@ public class BossChestInteractHandler implements ChestInteractHandler{
...
@@ -19,7 +19,7 @@ public class BossChestInteractHandler implements ChestInteractHandler{
@Override
@Override
public
boolean
onInteract
(
GadgetChest
chest
,
Player
player
)
{
public
boolean
onInteract
(
GadgetChest
chest
,
Player
player
)
{
var
worldDataManager
=
chest
.
getGadget
().
getScene
().
getWorld
().
getServer
().
getWorldData
Manager
();
var
worldDataManager
=
chest
.
getGadget
().
getScene
().
getWorld
().
getServer
().
getWorldData
System
();
var
monster
=
chest
.
getGadget
().
getMetaGadget
().
group
.
monsters
.
get
(
chest
.
getGadget
().
getMetaGadget
().
boss_chest
.
monster_config_id
);
var
monster
=
chest
.
getGadget
().
getMetaGadget
().
group
.
monsters
.
get
(
chest
.
getGadget
().
getMetaGadget
().
boss_chest
.
monster_config_id
);
var
reward
=
worldDataManager
.
getRewardByBossId
(
monster
.
monster_id
);
var
reward
=
worldDataManager
.
getRewardByBossId
(
monster
.
monster_id
);
...
...
src/main/java/emu/grasscutter/game/expedition/Expedition
Manager
.java
→
src/main/java/emu/grasscutter/game/expedition/Expedition
System
.java
View file @
2e19e70f
...
@@ -3,6 +3,7 @@ package emu.grasscutter.game.expedition;
...
@@ -3,6 +3,7 @@ package emu.grasscutter.game.expedition;
import
com.google.gson.reflect.TypeToken
;
import
com.google.gson.reflect.TypeToken
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.DataLoader
;
import
emu.grasscutter.data.DataLoader
;
import
emu.grasscutter.server.game.BaseGameSystem
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.game.GameServer
;
import
it.unimi.dsi.fastutil.ints.Int2ObjectMap
;
import
it.unimi.dsi.fastutil.ints.Int2ObjectMap
;
import
it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap
;
import
it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap
;
...
@@ -15,22 +16,18 @@ import java.util.List;
...
@@ -15,22 +16,18 @@ import java.util.List;
import
static
emu
.
grasscutter
.
Configuration
.*;
import
static
emu
.
grasscutter
.
Configuration
.*;
public
class
ExpeditionManager
{
public
class
ExpeditionSystem
extends
BaseGameSystem
{
public
GameServer
getGameServer
()
{
return
gameServer
;
}
private
final
GameServer
gameServer
;
public
Int2ObjectMap
<
List
<
ExpeditionRewardDataList
>>
getExpeditionRewardDataList
()
{
return
expeditionRewardData
;
}
private
final
Int2ObjectMap
<
List
<
ExpeditionRewardDataList
>>
expeditionRewardData
;
private
final
Int2ObjectMap
<
List
<
ExpeditionRewardDataList
>>
expeditionRewardData
;
public
Expedition
Manager
(
GameServer
gameS
erver
)
{
public
Expedition
System
(
GameServer
s
erver
)
{
this
.
gameServer
=
gameS
erver
;
super
(
s
erver
)
;
this
.
expeditionRewardData
=
new
Int2ObjectOpenHashMap
<>();
this
.
expeditionRewardData
=
new
Int2ObjectOpenHashMap
<>();
this
.
load
();
this
.
load
();
}
}
public
Int2ObjectMap
<
List
<
ExpeditionRewardDataList
>>
getExpeditionRewardDataList
()
{
return
expeditionRewardData
;
}
public
synchronized
void
load
()
{
public
synchronized
void
load
()
{
try
(
Reader
fileReader
=
new
InputStreamReader
(
DataLoader
.
load
(
"ExpeditionReward.json"
)))
{
try
(
Reader
fileReader
=
new
InputStreamReader
(
DataLoader
.
load
(
"ExpeditionReward.json"
)))
{
...
...
src/main/java/emu/grasscutter/game/gacha/Gacha
Manager
.java
→
src/main/java/emu/grasscutter/game/gacha/Gacha
System
.java
View file @
2e19e70f
...
@@ -33,6 +33,7 @@ import emu.grasscutter.net.proto.GachaTransferItemOuterClass.GachaTransferItem;
...
@@ -33,6 +33,7 @@ import emu.grasscutter.net.proto.GachaTransferItemOuterClass.GachaTransferItem;
import
emu.grasscutter.net.proto.GetGachaInfoRspOuterClass.GetGachaInfoRsp
;
import
emu.grasscutter.net.proto.GetGachaInfoRspOuterClass.GetGachaInfoRsp
;
import
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam
;
import
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam
;
import
emu.grasscutter.net.proto.RetcodeOuterClass.Retcode
;
import
emu.grasscutter.net.proto.RetcodeOuterClass.Retcode
;
import
emu.grasscutter.server.game.BaseGameSystem
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.game.GameServerTickEvent
;
import
emu.grasscutter.server.game.GameServerTickEvent
;
import
emu.grasscutter.server.packet.send.PacketDoGachaRsp
;
import
emu.grasscutter.server.packet.send.PacketDoGachaRsp
;
...
@@ -46,8 +47,7 @@ import org.greenrobot.eventbus.Subscribe;
...
@@ -46,8 +47,7 @@ import org.greenrobot.eventbus.Subscribe;
import
static
emu
.
grasscutter
.
Configuration
.*;
import
static
emu
.
grasscutter
.
Configuration
.*;
public
class
GachaManager
{
public
class
GachaSystem
extends
BaseGameSystem
{
private
final
GameServer
server
;
private
final
Int2ObjectMap
<
GachaBanner
>
gachaBanners
;
private
final
Int2ObjectMap
<
GachaBanner
>
gachaBanners
;
private
WatchService
watchService
;
private
WatchService
watchService
;
...
@@ -56,17 +56,13 @@ public class GachaManager {
...
@@ -56,17 +56,13 @@ public class GachaManager {
private
int
[]
fallbackItems4Pool2Default
=
{
11401
,
11402
,
11403
,
11405
,
12401
,
12402
,
12403
,
12405
,
13401
,
13407
,
14401
,
14402
,
14403
,
14409
,
15401
,
15402
,
15403
,
15405
};
private
int
[]
fallbackItems4Pool2Default
=
{
11401
,
11402
,
11403
,
11405
,
12401
,
12402
,
12403
,
12405
,
13401
,
13407
,
14401
,
14402
,
14403
,
14409
,
15401
,
15402
,
15403
,
15405
};
private
int
[]
fallbackItems5Pool2Default
=
{
11501
,
11502
,
12501
,
12502
,
13502
,
13505
,
14501
,
14502
,
15501
,
15502
};
private
int
[]
fallbackItems5Pool2Default
=
{
11501
,
11502
,
12501
,
12502
,
13502
,
13505
,
14501
,
14502
,
15501
,
15502
};
public
Gacha
Manager
(
GameServer
server
)
{
public
Gacha
System
(
GameServer
server
)
{
this
.
server
=
server
;
super
(
server
)
;
this
.
gachaBanners
=
new
Int2ObjectOpenHashMap
<>();
this
.
gachaBanners
=
new
Int2ObjectOpenHashMap
<>();
this
.
load
();
this
.
load
();
this
.
startWatcher
(
server
);
this
.
startWatcher
(
server
);
}
}
public
GameServer
getServer
()
{
return
server
;
}
public
Int2ObjectMap
<
GachaBanner
>
getGachaBanners
()
{
public
Int2ObjectMap
<
GachaBanner
>
getGachaBanners
()
{
return
gachaBanners
;
return
gachaBanners
;
}
}
...
...
src/main/java/emu/grasscutter/game/inventory/Inventory.java
View file @
2e19e70f
...
@@ -260,11 +260,11 @@ public class Inventory extends BasePlayerManager implements Iterable<GameItem> {
...
@@ -260,11 +260,11 @@ public class Inventory extends BasePlayerManager implements Iterable<GameItem> {
private
void
addVirtualItem
(
int
itemId
,
int
count
)
{
private
void
addVirtualItem
(
int
itemId
,
int
count
)
{
switch
(
itemId
)
{
switch
(
itemId
)
{
case
101
->
// Character exp
case
101
->
// Character exp
this
.
player
.
getServer
().
getInventory
Manager
().
upgradeAvatar
(
this
.
player
,
this
.
player
.
getTeamManager
().
getCurrentAvatarEntity
().
getAvatar
(),
count
);
this
.
player
.
getServer
().
getInventory
System
().
upgradeAvatar
(
this
.
player
,
this
.
player
.
getTeamManager
().
getCurrentAvatarEntity
().
getAvatar
(),
count
);
case
102
->
// Adventure exp
case
102
->
// Adventure exp
this
.
player
.
addExpDirectly
(
count
);
this
.
player
.
addExpDirectly
(
count
);
case
105
->
// Companionship exp
case
105
->
// Companionship exp
this
.
player
.
getServer
().
getInventory
Manager
().
upgradeAvatarFetterLevel
(
this
.
player
,
this
.
player
.
getTeamManager
().
getCurrentAvatarEntity
().
getAvatar
(),
count
);
this
.
player
.
getServer
().
getInventory
System
().
upgradeAvatarFetterLevel
(
this
.
player
,
this
.
player
.
getTeamManager
().
getCurrentAvatarEntity
().
getAvatar
(),
count
);
case
106
->
// Resin
case
106
->
// Resin
this
.
player
.
getResinManager
().
addResin
(
count
);
this
.
player
.
getResinManager
().
addResin
(
count
);
case
107
->
// Legendary Key
case
107
->
// Legendary Key
...
...
src/main/java/emu/grasscutter/game/managers/Announcement
Manager
.java
→
src/main/java/emu/grasscutter/game/managers/Announcement
System
.java
View file @
2e19e70f
...
@@ -6,6 +6,7 @@ import emu.grasscutter.data.DataLoader;
...
@@ -6,6 +6,7 @@ import emu.grasscutter.data.DataLoader;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.game.world.World
;
import
emu.grasscutter.game.world.World
;
import
emu.grasscutter.net.proto.AnnounceDataOuterClass
;
import
emu.grasscutter.net.proto.AnnounceDataOuterClass
;
import
emu.grasscutter.server.game.BaseGameSystem
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.packet.send.PacketServerAnnounceNotify
;
import
emu.grasscutter.server.packet.send.PacketServerAnnounceNotify
;
import
emu.grasscutter.server.packet.send.PacketServerAnnounceRevokeNotify
;
import
emu.grasscutter.server.packet.send.PacketServerAnnounceRevokeNotify
;
...
@@ -19,24 +20,22 @@ import java.io.InputStreamReader;
...
@@ -19,24 +20,22 @@ import java.io.InputStreamReader;
import
java.util.*
;
import
java.util.*
;
@Getter
@Getter
public
class
AnnouncementManager
{
public
class
AnnouncementSystem
extends
BaseGameSystem
{
private
final
Map
<
Integer
,
AnnounceConfigItem
>
announceConfigItemMap
;
public
final
GameServer
server
;
public
AnnouncementManager
(
GameServer
server
){
public
AnnouncementSystem
(
GameServer
server
){
this
.
server
=
server
;
super
(
server
);
this
.
announceConfigItemMap
=
new
HashMap
<>();
loadConfig
();
loadConfig
();
}
}
Map
<
Integer
,
AnnounceConfigItem
>
announceConfigItemMap
=
new
HashMap
<>();
private
int
loadConfig
()
{
private
int
loadConfig
()
{
try
(
var
fileReader
=
new
InputStreamReader
(
DataLoader
.
load
(
"Announcement.json"
)))
{
try
(
var
fileReader
=
new
InputStreamReader
(
DataLoader
.
load
(
"Announcement.json"
)))
{
List
<
AnnounceConfigItem
>
announceConfigItems
=
Grasscutter
.
getGsonFactory
().
fromJson
(
fileReader
,
List
<
AnnounceConfigItem
>
announceConfigItems
=
Grasscutter
.
getGsonFactory
().
fromJson
(
fileReader
,
TypeToken
.
getParameterized
(
List
.
class
,
AnnounceConfigItem
.
class
).
getType
());
TypeToken
.
getParameterized
(
List
.
class
,
AnnounceConfigItem
.
class
).
getType
());
announceConfigItemMap
=
new
HashMap
<>
();
announceConfigItemMap
.
clear
();
announceConfigItems
.
forEach
(
i
->
announceConfigItemMap
.
put
(
i
.
getTemplateId
(),
i
));
announceConfigItems
.
forEach
(
i
->
announceConfigItemMap
.
put
(
i
.
getTemplateId
(),
i
));
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
Grasscutter
.
getLogger
().
error
(
"Unable to load server announce config."
,
e
);
Grasscutter
.
getLogger
().
error
(
"Unable to load server announce config."
,
e
);
}
}
...
...
src/main/java/emu/grasscutter/game/managers/Inventory
Manager
.java
→
src/main/java/emu/grasscutter/game/managers/Inventory
System
.java
View file @
2e19e70f
...
@@ -27,15 +27,14 @@ import emu.grasscutter.game.shop.ShopChestBatchUseTable;
...
@@ -27,15 +27,14 @@ import emu.grasscutter.game.shop.ShopChestBatchUseTable;
import
emu.grasscutter.game.shop.ShopChestTable
;
import
emu.grasscutter.game.shop.ShopChestTable
;
import
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam
;
import
emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam
;
import
emu.grasscutter.net.proto.MaterialInfoOuterClass.MaterialInfo
;
import
emu.grasscutter.net.proto.MaterialInfoOuterClass.MaterialInfo
;
import
emu.grasscutter.server.game.BaseGameSystem
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.packet.send.*
;
import
emu.grasscutter.server.packet.send.*
;
import
emu.grasscutter.utils.Utils
;
import
emu.grasscutter.utils.Utils
;
import
it.unimi.dsi.fastutil.ints.Int2IntMap
;
import
it.unimi.dsi.fastutil.ints.Int2IntMap
;
import
it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap
;
import
it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap
;
public
class
InventoryManager
{
public
class
InventorySystem
extends
BaseGameSystem
{
private
final
GameServer
server
;
private
final
static
int
RELIC_MATERIAL_1
=
105002
;
// Sanctifying Unction
private
final
static
int
RELIC_MATERIAL_1
=
105002
;
// Sanctifying Unction
private
final
static
int
RELIC_MATERIAL_2
=
105003
;
// Sanctifying Essence
private
final
static
int
RELIC_MATERIAL_2
=
105003
;
// Sanctifying Essence
private
final
static
int
RELIC_MATERIAL_EXP_1
=
2500
;
// Sanctifying Unction
private
final
static
int
RELIC_MATERIAL_EXP_1
=
2500
;
// Sanctifying Unction
...
@@ -55,12 +54,8 @@ public class InventoryManager {
...
@@ -55,12 +54,8 @@ public class InventoryManager {
private
final
static
int
AVATAR_BOOK_EXP_2
=
5000
;
// Adventurer's Experience
private
final
static
int
AVATAR_BOOK_EXP_2
=
5000
;
// Adventurer's Experience
private
final
static
int
AVATAR_BOOK_EXP_3
=
20000
;
// Hero's Wit
private
final
static
int
AVATAR_BOOK_EXP_3
=
20000
;
// Hero's Wit
public
InventoryManager
(
GameServer
server
)
{
public
InventorySystem
(
GameServer
server
)
{
this
.
server
=
server
;
super
(
server
);
}
public
GameServer
getServer
()
{
return
server
;
}
}
public
void
lockEquip
(
Player
player
,
long
targetEquipGuid
,
boolean
isLocked
)
{
public
void
lockEquip
(
Player
player
,
long
targetEquipGuid
,
boolean
isLocked
)
{
...
@@ -850,7 +845,7 @@ public class InventoryManager {
...
@@ -850,7 +845,7 @@ public class InventoryManager {
// Handle combine diagrams.
// Handle combine diagrams.
if
(
useItem
.
getItemData
().
getItemUse
().
get
(
0
).
getUseOp
().
equals
(
"ITEM_USE_UNLOCK_COMBINE"
))
{
if
(
useItem
.
getItemData
().
getItemUse
().
get
(
0
).
getUseOp
().
equals
(
"ITEM_USE_UNLOCK_COMBINE"
))
{
// Unlock.
// Unlock.
useSuccess
=
player
.
getServer
().
getCombine
Manger
().
unlockCombineDiagram
(
player
,
useItem
);
useSuccess
=
player
.
getServer
().
getCombine
System
().
unlockCombineDiagram
(
player
,
useItem
);
}
}
// Handle cooking recipies.
// Handle cooking recipies.
if
(
useItem
.
getItemData
().
getItemUse
().
get
(
0
).
getUseOp
().
equals
(
"ITEM_USE_UNLOCK_COOK_RECIPE"
))
{
if
(
useItem
.
getItemData
().
getItemUse
().
get
(
0
).
getUseOp
().
equals
(
"ITEM_USE_UNLOCK_COOK_RECIPE"
))
{
...
@@ -883,7 +878,7 @@ public class InventoryManager {
...
@@ -883,7 +878,7 @@ public class InventoryManager {
}
}
break
;
break
;
case
MATERIAL_CHEST:
case
MATERIAL_CHEST:
List
<
ShopChestTable
>
shopChestTableList
=
player
.
getServer
().
getShop
Manager
().
getShopChestData
();
List
<
ShopChestTable
>
shopChestTableList
=
player
.
getServer
().
getShop
System
().
getShopChestData
();
List
<
GameItem
>
rewardItemList
=
new
ArrayList
<>();
List
<
GameItem
>
rewardItemList
=
new
ArrayList
<>();
for
(
ShopChestTable
shopChestTable
:
shopChestTableList
)
{
for
(
ShopChestTable
shopChestTable
:
shopChestTableList
)
{
if
(
shopChestTable
.
getItemId
()
!=
useItem
.
getItemId
())
{
if
(
shopChestTable
.
getItemId
()
!=
useItem
.
getItemId
())
{
...
@@ -914,7 +909,7 @@ public class InventoryManager {
...
@@ -914,7 +909,7 @@ public class InventoryManager {
if
(
optionId
<
1
)
{
if
(
optionId
<
1
)
{
break
;
break
;
}
}
List
<
ShopChestBatchUseTable
>
shopChestBatchUseTableList
=
player
.
getServer
().
getShop
Manager
().
getShopChestBatchUseData
();
List
<
ShopChestBatchUseTable
>
shopChestBatchUseTableList
=
player
.
getServer
().
getShop
System
().
getShopChestBatchUseData
();
for
(
ShopChestBatchUseTable
shopChestBatchUseTable
:
shopChestBatchUseTableList
)
{
for
(
ShopChestBatchUseTable
shopChestBatchUseTable
:
shopChestBatchUseTableList
)
{
if
(
shopChestBatchUseTable
.
getItemId
()
!=
useItem
.
getItemId
())
{
if
(
shopChestBatchUseTable
.
getItemId
()
!=
useItem
.
getItemId
())
{
continue
;
continue
;
...
...
src/main/java/emu/grasscutter/game/managers/Multiplayer
Manager
.java
→
src/main/java/emu/grasscutter/game/managers/Multiplayer
System
.java
View file @
2e19e70f
...
@@ -8,20 +8,16 @@ import emu.grasscutter.net.proto.PlayerApplyEnterMpReasonOuterClass.PlayerApplyE
...
@@ -8,20 +8,16 @@ import emu.grasscutter.net.proto.PlayerApplyEnterMpReasonOuterClass.PlayerApplyE
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.game.player.Player.SceneLoadState
;
import
emu.grasscutter.game.player.Player.SceneLoadState
;
import
emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass
;
import
emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass
;
import
emu.grasscutter.server.game.BaseGameSystem
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.game.GameServer
;
import
emu.grasscutter.server.packet.send.PacketPlayerApplyEnterMpNotify
;
import
emu.grasscutter.server.packet.send.PacketPlayerApplyEnterMpNotify
;
import
emu.grasscutter.server.packet.send.PacketPlayerApplyEnterMpResultNotify
;
import
emu.grasscutter.server.packet.send.PacketPlayerApplyEnterMpResultNotify
;
import
emu.grasscutter.server.packet.send.PacketPlayerEnterSceneNotify
;
import
emu.grasscutter.server.packet.send.PacketPlayerEnterSceneNotify
;
public
class
MultiplayerManager
{
public
class
MultiplayerSystem
extends
BaseGameSystem
{
private
final
GameServer
server
;
public
MultiplayerManager
(
GameServer
server
)
{
this
.
server
=
server
;
}
public
GameServer
getS
erver
(
)
{
public
MultiplayerSystem
(
GameServer
s
erver
)
{
return
server
;
super
(
server
)
;
}
}
public
void
applyEnterMp
(
Player
player
,
int
targetUid
)
{
public
void
applyEnterMp
(
Player
player
,
int
targetUid
)
{
...
...
src/main/java/emu/grasscutter/game/player/Player.java
View file @
2e19e70f
...
@@ -1436,7 +1436,7 @@ public class Player {
...
@@ -1436,7 +1436,7 @@ public class Player {
getStaminaManager
().
stopSustainedStaminaHandler
();
getStaminaManager
().
stopSustainedStaminaHandler
();
// force to leave the dungeon (inside has a "if")
// force to leave the dungeon (inside has a "if")
this
.
getServer
().
getDungeon
Manager
().
exitDungeon
(
this
);
this
.
getServer
().
getDungeon
System
().
exitDungeon
(
this
);
// Leave world
// Leave world
if
(
this
.
getWorld
()
!=
null
)
{
if
(
this
.
getWorld
()
!=
null
)
{
...
...
src/main/java/emu/grasscutter/game/quest/GameQuest.java
View file @
2e19e70f
...
@@ -58,7 +58,7 @@ public class GameQuest {
...
@@ -58,7 +58,7 @@ public class GameQuest {
this
.
mainQuest
.
getChildQuests
().
put
(
this
.
questId
,
this
);
this
.
mainQuest
.
getChildQuests
().
put
(
this
.
questId
,
this
);
this
.
getData
().
getBeginExec
().
forEach
(
e
->
getOwner
().
getServer
().
getQuest
Handler
().
triggerExec
(
this
,
e
,
e
.
getParam
()));
this
.
getData
().
getBeginExec
().
forEach
(
e
->
getOwner
().
getServer
().
getQuest
System
().
triggerExec
(
this
,
e
,
e
.
getParam
()));
this
.
getOwner
().
getQuestManager
().
triggerEvent
(
QuestTrigger
.
QUEST_CONTENT_QUEST_STATE_EQUAL
,
this
.
questId
,
this
.
state
.
getValue
());
this
.
getOwner
().
getQuestManager
().
triggerEvent
(
QuestTrigger
.
QUEST_CONTENT_QUEST_STATE_EQUAL
,
this
.
questId
,
this
.
state
.
getValue
());
...
@@ -171,7 +171,7 @@ public class GameQuest {
...
@@ -171,7 +171,7 @@ public class GameQuest {
this
.
save
();
this
.
save
();
}
}
this
.
getData
().
getFinishExec
().
forEach
(
e
->
getOwner
().
getServer
().
getQuest
Handler
().
triggerExec
(
this
,
e
,
e
.
getParam
()));
this
.
getData
().
getFinishExec
().
forEach
(
e
->
getOwner
().
getServer
().
getQuest
System
().
triggerExec
(
this
,
e
,
e
.
getParam
()));
this
.
getOwner
().
getQuestManager
().
triggerEvent
(
QuestTrigger
.
QUEST_CONTENT_QUEST_STATE_EQUAL
,
this
.
questId
,
this
.
state
.
getValue
());
this
.
getOwner
().
getQuestManager
().
triggerEvent
(
QuestTrigger
.
QUEST_CONTENT_QUEST_STATE_EQUAL
,
this
.
questId
,
this
.
state
.
getValue
());
...
@@ -205,7 +205,7 @@ public class GameQuest {
...
@@ -205,7 +205,7 @@ public class GameQuest {
// TODO
// TODO
for
(
int
i
=
0
;
i
<
questData
.
getAcceptCond
().
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
questData
.
getAcceptCond
().
size
();
i
++)
{
QuestCondition
condition
=
questData
.
getAcceptCond
().
get
(
i
);
QuestCondition
condition
=
questData
.
getAcceptCond
().
get
(
i
);
boolean
result
=
getOwner
().
getServer
().
getQuest
Handler
().
triggerCondition
(
this
,
condition
,
boolean
result
=
getOwner
().
getServer
().
getQuest
System
().
triggerCondition
(
this
,
condition
,
condition
.
getParamStr
(),
condition
.
getParamStr
(),
condition
.
getParam
());
condition
.
getParam
());
...
...
Prev
1
2
3
4
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment