mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-17 09:25:06 +01:00
Deregister empty scenes if a player leaves them
This commit is contained in:
@@ -111,7 +111,7 @@ public class World implements Iterable<GenshinPlayer> {
|
||||
SceneData sceneData = GenshinData.getSceneDataMap().get(sceneId);
|
||||
if (sceneData != null) {
|
||||
scene = new GenshinScene(this, sceneData);
|
||||
this.getScenes().put(sceneId, scene);
|
||||
this.registerScene(scene);
|
||||
return scene;
|
||||
}
|
||||
|
||||
@@ -198,6 +198,14 @@ public class World implements Iterable<GenshinPlayer> {
|
||||
}
|
||||
}
|
||||
|
||||
public void registerScene(GenshinScene scene) {
|
||||
this.getScenes().put(scene.getId(), scene);
|
||||
}
|
||||
|
||||
public void deregisterScene(GenshinScene scene) {
|
||||
this.getScenes().remove(scene.getId());
|
||||
}
|
||||
|
||||
public boolean transferPlayerToScene(GenshinPlayer player, int sceneId, Position pos) {
|
||||
if (player.getScene().getId() == sceneId || GenshinData.getSceneDataMap().get(sceneId) == null) {
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user