@@ -824,9 +824,12 @@ private void addIslandData(@NotNull Island island)
824
824
pd .setIslandBundle (null );
825
825
826
826
// Update owner data.
827
- this .updateOwnerBundle (island , pd );
828
- this .updateOwnerGeneratorCount (island , pd );
829
- this .updateOwnerWorkingRange (island , pd );
827
+ if (!island .isSpawn ())
828
+ {
829
+ this .updateOwnerBundle (island , pd );
830
+ this .updateOwnerGeneratorCount (island , pd );
831
+ this .updateOwnerWorkingRange (island , pd );
832
+ }
830
833
831
834
// Save data.
832
835
this .saveGeneratorData (pd );
@@ -907,11 +910,16 @@ private void addIslandData(@NotNull Island island)
907
910
*/
908
911
private void updateOwnerWorkingRange (@ NotNull Island island , @ NotNull GeneratorDataObject dataObject )
909
912
{
910
- User owner = User .getInstance (island .getOwner ());
911
-
912
913
// Permission check can be done only to a player object.
913
- if (owner != null && owner . isPlayer () )
914
+ if (island . getOwner () != null )
914
915
{
916
+ User owner = User .getInstance (island .getOwner ());
917
+
918
+ if (!owner .isPlayer ())
919
+ {
920
+ return ;
921
+ }
922
+
915
923
// Update max island generation range.
916
924
int permissionRange = Utils .getPermissionValue (owner ,
917
925
Utils .getPermissionString (island .getWorld (), "[gamemode].stone-generator.max-range" ),
@@ -929,11 +937,16 @@ private void updateOwnerWorkingRange(@NotNull Island island, @NotNull GeneratorD
929
937
*/
930
938
private void updateOwnerGeneratorCount (@ NotNull Island island , @ NotNull GeneratorDataObject dataObject )
931
939
{
932
- User owner = User .getInstance (island .getOwner ());
933
-
934
940
// Permission check can be done only to a player object.
935
- if (owner != null && owner . isPlayer () )
941
+ if (island . getOwner () != null )
936
942
{
943
+ User owner = User .getInstance (island .getOwner ());
944
+
945
+ if (!owner .isPlayer ())
946
+ {
947
+ return ;
948
+ }
949
+
937
950
// Update max active generator count.
938
951
int permissionSize = Utils .getPermissionValue (owner ,
939
952
Utils .getPermissionString (island .getWorld (), "[gamemode].stone-generator.active-generators" ),
@@ -951,11 +964,16 @@ private void updateOwnerGeneratorCount(@NotNull Island island, @NotNull Generato
951
964
*/
952
965
private void updateOwnerBundle (@ NotNull Island island , @ NotNull GeneratorDataObject dataObject )
953
966
{
954
- User owner = User .getInstance (island .getOwner ());
955
-
956
967
// Permission check can be done only to a player object.
957
- if (owner != null && owner . isPlayer () )
968
+ if (island . getOwner () != null )
958
969
{
970
+ User owner = User .getInstance (island .getOwner ());
971
+
972
+ if (!owner .isPlayer ())
973
+ {
974
+ return ;
975
+ }
976
+
959
977
// Update max island generation range.
960
978
String permissionBundle = Utils .getPermissionValue (owner ,
961
979
Utils .getPermissionString (island .getWorld (), "[gamemode].stone-generator.bundle" ),
@@ -994,7 +1012,7 @@ public void checkGeneratorUnlockStatus(Island island, @Nullable User user, @Null
994
1012
995
1013
// If level is null, check value from addon.
996
1014
final long islandLevel = level == null ? this .getIslandLevel (island ) : level ;
997
- final User owner = User .getInstance (island .getOwner ());
1015
+ final User owner = island . isSpawn () ? null : User .getInstance (island .getOwner ());
998
1016
999
1017
this .getIslandGeneratorTiers (island .getWorld (), dataObject ).stream ().
1000
1018
// Filter out default generators. They are always unlocked and active.
@@ -1368,7 +1386,7 @@ public boolean canPurchaseGenerator(@NotNull User user,
1368
1386
@ NotNull GeneratorDataObject generatorData ,
1369
1387
@ NotNull GeneratorTierObject generatorTier )
1370
1388
{
1371
- final User owner = User .getInstance (island .getOwner ());
1389
+ final User owner = island . isSpawn () ? null : User .getInstance (island .getOwner ());
1372
1390
1373
1391
if (generatorData .getPurchasedTiers ().contains (generatorTier .getUniqueId ()))
1374
1392
{
0 commit comments