@@ -720,13 +720,20 @@ public boolean canActivateGenerator(@NotNull User user,
720
720
* @param generatorTier Generator that will be added.
721
721
*/
722
722
public void activateGenerator (@ NotNull User user ,
723
- @ NotNull GeneratorDataObject generatorData ,
724
- @ NotNull GeneratorTierObject generatorTier )
723
+ @ NotNull Island island ,
724
+ @ NotNull GeneratorDataObject generatorData ,
725
+ @ NotNull GeneratorTierObject generatorTier )
725
726
{
726
727
user .sendMessage (Constants .MESSAGE + "generator-activated" ,
727
- Constants .GENERATOR , generatorTier .getFriendlyName ());
728
+ Constants .GENERATOR , generatorTier .getFriendlyName ());
728
729
generatorData .getActiveGeneratorList ().add (generatorTier );
729
730
731
+ // check and send message that generator is disabled
732
+ if (!island .isAllowed (StoneGeneratorAddon .MAGIC_COBBLESTONE_GENERATOR ))
733
+ {
734
+ user .sendMessage (StoneGeneratorAddon .MAGIC_COBBLESTONE_GENERATOR .getHintReference ());
735
+ }
736
+
730
737
// Save object.
731
738
this .saveGeneratorData (generatorData );
732
739
}
@@ -743,38 +750,44 @@ public void activateGenerator(@NotNull User user,
743
750
* @return {@code true} if can purchase, {@false} if cannot purchase.
744
751
*/
745
752
public boolean canPurchaseGenerator (@ NotNull User user ,
746
- @ NotNull Island island ,
747
- @ NotNull GeneratorDataObject generatorData ,
748
- @ NotNull GeneratorTierObject generatorTier )
753
+ @ NotNull Island island ,
754
+ @ NotNull GeneratorDataObject generatorData ,
755
+ @ NotNull GeneratorTierObject generatorTier )
749
756
{
750
757
if (generatorData .getPurchasedTiers ().contains (generatorTier ))
751
758
{
752
759
// Generator is not unlocked. Return false.
753
760
user .sendMessage (Constants .ERRORS + "generator-already-purchased" ,
754
- Constants .GENERATOR , generatorTier .getFriendlyName ());
761
+ Constants .GENERATOR , generatorTier .getFriendlyName ());
762
+ return false ;
763
+ }
764
+ else if (!island .isAllowed (StoneGeneratorAddon .MAGIC_COBBLESTONE_GENERATOR_PERMISSION ))
765
+ {
766
+ user .sendMessage ("general.errors.insufficient-rank" ,
767
+ TextVariables .RANK ,
768
+ user .getTranslation (this .addon .getPlugin ().getRanksManager ().getRank (island .getRank (user ))));
755
769
return false ;
756
770
}
757
771
else if (generatorTier .getRequiredMinIslandLevel () > this .getIslandLevel (island ))
758
772
{
759
773
// Generator is not unlocked. Return false.
760
774
user .sendMessage (Constants .ERRORS + "island-level-not-reached" ,
761
- Constants .GENERATOR , generatorTier .getFriendlyName (),
762
- TextVariables .NUMBER , String .valueOf (generatorTier .getRequiredMinIslandLevel ()));
775
+ Constants .GENERATOR , generatorTier .getFriendlyName (),
776
+ TextVariables .NUMBER , String .valueOf (generatorTier .getRequiredMinIslandLevel ()));
763
777
return false ;
764
778
}
765
779
else if (!generatorTier .getRequiredPermissions ().isEmpty () &&
766
- !generatorTier .getRequiredPermissions ().stream ().allMatch (permission ->
780
+ !generatorTier .getRequiredPermissions ().stream ().allMatch (permission ->
767
781
User .getInstance (island .getOwner ()).hasPermission (permission )))
768
782
{
769
- Optional <String > missingPermission =
770
- generatorTier .getRequiredPermissions ().stream ().
771
- filter (permission -> !User .getInstance (island .getOwner ()).hasPermission (permission )).
772
- findAny ();
783
+ Optional <String > missingPermission = generatorTier .getRequiredPermissions ().stream ().
784
+ filter (permission -> !User .getInstance (island .getOwner ()).hasPermission (permission )).
785
+ findAny ();
773
786
774
787
// Generator is not unlocked. Return false.
775
788
user .sendMessage (Constants .ERRORS + "missing-permission" ,
776
- Constants .GENERATOR , generatorTier .getFriendlyName (),
777
- TextVariables .PERMISSION , missingPermission .get ());
789
+ Constants .GENERATOR , generatorTier .getFriendlyName (),
790
+ TextVariables .PERMISSION , missingPermission .get ());
778
791
return false ;
779
792
}
780
793
else
@@ -783,15 +796,15 @@ else if (!generatorTier.getRequiredPermissions().isEmpty() &&
783
796
{
784
797
// Return true only if user has enough money and its removal was successful.
785
798
if (this .addon .getVaultHook ().has (user , generatorTier .getGeneratorTierCost ()) &&
786
- this .addon .getVaultHook ().withdraw (user ,
787
- generatorTier .getGeneratorTierCost ()).transactionSuccess ())
799
+ this .addon .getVaultHook ().withdraw (user ,
800
+ generatorTier .getGeneratorTierCost ()).transactionSuccess ())
788
801
{
789
802
return true ;
790
803
}
791
804
else
792
805
{
793
806
user .sendMessage (Constants .ERRORS + "no-credits" ,
794
- TextVariables .NUMBER , String .valueOf (generatorTier .getGeneratorTierCost ()));
807
+ TextVariables .NUMBER , String .valueOf (generatorTier .getGeneratorTierCost ()));
795
808
return false ;
796
809
}
797
810
}
0 commit comments