88import java .util .Collections ;
99import java .util .HashMap ;
1010import java .util .List ;
11+ import java .util .Locale ;
1112import java .util .Map ;
1213import java .util .Objects ;
1314import java .util .concurrent .atomic .AtomicReference ;
@@ -344,7 +345,7 @@ private Attempt<LoadedMultiverseWorld, ImportFailureReason> doImportBukkitWorld(
344345
345346 private MultiverseWorld newMultiverseWorld (String worldName , WorldConfig worldConfig ) {
346347 MultiverseWorld mvWorld = new MultiverseWorld (worldName , worldConfig , config );
347- worldsMap .put (mvWorld .getName (), mvWorld );
348+ worldsMap .put (mvWorld .getName (). toLowerCase ( Locale . ENGLISH ) , mvWorld );
348349 corePermissions .addWorldPermissions (mvWorld );
349350 return mvWorld ;
350351 }
@@ -381,7 +382,7 @@ private LoadedMultiverseWorld newLoadedMultiverseWorld(
381382 locationManipulation ,
382383 entityPurger
383384 );
384- loadedWorldsMap .put (loadedWorld .getName (), loadedWorld );
385+ loadedWorldsMap .put (loadedWorld .getName (). toLowerCase ( Locale . ENGLISH ) , loadedWorld );
385386 saveWorldsConfig ();
386387 pluginManager .callEvent (new MVWorldLoadedEvent (loadedWorld ));
387388 return loadedWorld ;
@@ -500,7 +501,7 @@ private Attempt<LoadedMultiverseWorld, LoadFailureReason> newLoadedMultiverseWor
500501 locationManipulation ,
501502 entityPurger
502503 );
503- loadedWorldsMap .put (loadedWorld .getName (), loadedWorld );
504+ loadedWorldsMap .put (loadedWorld .getName (). toLowerCase ( Locale . ENGLISH ) , loadedWorld );
504505 saveWorldsConfig ();
505506 pluginManager .callEvent (new MVWorldLoadedEvent (loadedWorld ));
506507 return Attempt .success (loadedWorld );
@@ -967,7 +968,9 @@ public Option<MultiverseWorld> getWorld(@Nullable World world) {
967968 * @return The world if it exists.
968969 */
969970 public Option <MultiverseWorld > getWorld (@ Nullable String worldName ) {
970- return getLoadedWorld (worldName ).fold (() -> getUnloadedWorld (worldName ), Option ::of );
971+ return getLoadedWorld (worldName )
972+ .map (world -> (MultiverseWorld ) world )
973+ .orElse (() -> getUnloadedWorld (worldName ));
971974 }
972975
973976 /**
@@ -979,7 +982,8 @@ public Option<MultiverseWorld> getWorld(@Nullable String worldName) {
979982 */
980983 public Option <MultiverseWorld > getWorldByNameOrAlias (@ Nullable String worldNameOrAlias ) {
981984 return getLoadedWorldByNameOrAlias (worldNameOrAlias )
982- .fold (() -> getUnloadedWorldByNameOrAlias (worldNameOrAlias ), Option ::of );
985+ .map (world -> (MultiverseWorld ) world )
986+ .orElse (() -> getUnloadedWorldByNameOrAlias (worldNameOrAlias ));
983987 }
984988
985989 /**
@@ -994,7 +998,8 @@ public Option<MultiverseWorld> getWorldByNameOrAlias(@Nullable String worldNameO
994998 public Collection <MultiverseWorld > getWorlds () {
995999 return worldsMap .values ().stream ()
9961000 .map (world -> getLoadedWorld (world )
997- .fold (() -> world , loadedWorld -> loadedWorld ))
1001+ .map (loadedWorld -> (MultiverseWorld ) loadedWorld )
1002+ .getOrElse (world ))
9981003 .toList ();
9991004 }
10001005
@@ -1005,7 +1010,7 @@ public Collection<MultiverseWorld> getWorlds() {
10051010 * @return True if the world is a world is known to multiverse, but may or may not be loaded.
10061011 */
10071012 public boolean isWorld (@ Nullable String worldName ) {
1008- return worldsMap .containsKey (worldName );
1013+ return worldName != null && worldsMap .containsKey (worldName . toLowerCase ( Locale . ENGLISH ) );
10091014 }
10101015
10111016 /**
@@ -1015,7 +1020,9 @@ public boolean isWorld(@Nullable String worldName) {
10151020 * @return The world if it exists.
10161021 */
10171022 public Option <MultiverseWorld > getUnloadedWorld (@ Nullable String worldName ) {
1018- return isLoadedWorld (worldName ) ? Option .none () : Option .of (worldsMap .get (worldName ));
1023+ return isLoadedWorld (worldName )
1024+ ? Option .none ()
1025+ : Option .of (worldName ).flatMap (name -> Option .of (worldsMap .get (name .toLowerCase (Locale .ENGLISH ))));
10191026 }
10201027
10211028 /**
@@ -1067,7 +1074,7 @@ public boolean isUnloadedWorld(@Nullable String worldName) {
10671074 * @return The multiverse world if it exists.
10681075 */
10691076 public Option <LoadedMultiverseWorld > getLoadedWorld (@ Nullable World world ) {
1070- return world == null ? Option .none () : Option . of ( loadedWorldsMap . get ( world .getName ()));
1077+ return Option .of ( world ). flatMap ( notNullWorld -> getLoadedWorld ( notNullWorld .getName ()));
10711078 }
10721079
10731080 /**
@@ -1077,7 +1084,7 @@ public Option<LoadedMultiverseWorld> getLoadedWorld(@Nullable World world) {
10771084 * @return The multiverse world if it exists.
10781085 */
10791086 public Option <LoadedMultiverseWorld > getLoadedWorld (@ Nullable MultiverseWorld world ) {
1080- return world == null ? Option .none () : Option . of ( loadedWorldsMap . get ( world .getName ()));
1087+ return Option .of ( world ). flatMap ( notNullWorld -> getLoadedWorld ( notNullWorld .getName ()));
10811088 }
10821089
10831090 /**
@@ -1087,7 +1094,8 @@ public Option<LoadedMultiverseWorld> getLoadedWorld(@Nullable MultiverseWorld wo
10871094 * @return The multiverse world if it exists.
10881095 */
10891096 public Option <LoadedMultiverseWorld > getLoadedWorld (@ Nullable String worldName ) {
1090- return Option .of (loadedWorldsMap .get (worldName ));
1097+ return Option .of (worldName )
1098+ .flatMap (name -> Option .of (loadedWorldsMap .get (name .toLowerCase (Locale .ENGLISH ))));
10911099 }
10921100
10931101 /**
@@ -1148,7 +1156,7 @@ public boolean isLoadedWorld(@Nullable MultiverseWorld world) {
11481156 * @return True if the world is a multiverse world that is loaded.
11491157 */
11501158 public boolean isLoadedWorld (@ Nullable String worldName ) {
1151- return loadedWorldsMap .containsKey (worldName );
1159+ return worldName != null && loadedWorldsMap .containsKey (worldName . toLowerCase ( Locale . ENGLISH ) );
11521160 }
11531161
11541162 /**
0 commit comments