Deregister empty scenes if a player leaves them

This commit is contained in:
Melledy
2022-04-18 23:00:12 -07:00
parent c65443f422
commit dd8d1752ed
2 changed files with 15 additions and 1 deletions

View File

@@ -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;