Skip to content

Commit 10a8c47

Browse files
committed
Merge remote-tracking branch 'remotes/origin/develop'
# Conflicts: # pom.xml # src/main/java/world/bentobox/magiccobblestonegenerator/StoneGeneratorAddon.java # src/main/java/world/bentobox/magiccobblestonegenerator/managers/StoneGeneratorManager.java # src/main/java/world/bentobox/magiccobblestonegenerator/panels/CommonPanel.java # src/main/java/world/bentobox/magiccobblestonegenerator/panels/player/GeneratorUserPanel.java # src/main/java/world/bentobox/magiccobblestonegenerator/panels/player/GeneratorViewPanel.java # src/main/resources/generatorTemplate.yml # src/main/resources/locales/en-US.yml
2 parents a774d8e + 8884eac commit 10a8c47

File tree

8 files changed

+230
-62
lines changed

8 files changed

+230
-62
lines changed

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<!-- Revision variable removes warning about dynamic version -->
4444
<revision>${build.version}-SNAPSHOT</revision>
4545
<!-- This allows to change between versions and snapshots. -->
46-
<build.version>2.0.0</build.version>
46+
<build.version>2.1.0</build.version>
4747
<build.number>-LOCAL</build.number>
4848
</properties>
4949

src/main/java/world/bentobox/magiccobblestonegenerator/StoneGeneratorAddon.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public void onEnable()
132132

133133
if (!upgrades.isPresent())
134134
{
135-
this.logWarning("Upgrades add-on not found so Magic Cobblestone Generator, some parts may not work!");
135+
// this.logWarning("Upgrades add-on not found so Magic Cobblestone Generator, some parts may not work!");
136136
this.upgradesAddon = null;
137137
}
138138
else
@@ -535,6 +535,6 @@ public static StoneGeneratorAddon getInstance()
535535
new Flag.Builder("MAGIC_COBBLESTONE_GENERATOR_PERMISSION", Material.DIAMOND_PICKAXE).
536536
type(Flag.Type.PROTECTION).
537537
defaultRank(RanksManager.SUB_OWNER_RANK).
538-
clickHandler(new CycleClick("MCG_PERMISSIONS", RanksManager.MEMBER_RANK, RanksManager.OWNER_RANK)).
538+
clickHandler(new CycleClick("MAGIC_COBBLESTONE_GENERATOR_PERMISSION", RanksManager.MEMBER_RANK, RanksManager.OWNER_RANK)).
539539
build();
540540
}

src/main/java/world/bentobox/magiccobblestonegenerator/managers/StoneGeneratorManager.java

+32-19
Original file line numberDiff line numberDiff line change
@@ -720,13 +720,20 @@ public boolean canActivateGenerator(@NotNull User user,
720720
* @param generatorTier Generator that will be added.
721721
*/
722722
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)
725726
{
726727
user.sendMessage(Constants.MESSAGE + "generator-activated",
727-
Constants.GENERATOR, generatorTier.getFriendlyName());
728+
Constants.GENERATOR, generatorTier.getFriendlyName());
728729
generatorData.getActiveGeneratorList().add(generatorTier);
729730

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+
730737
// Save object.
731738
this.saveGeneratorData(generatorData);
732739
}
@@ -743,38 +750,44 @@ public void activateGenerator(@NotNull User user,
743750
* @return {@code true} if can purchase, {@false} if cannot purchase.
744751
*/
745752
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)
749756
{
750757
if (generatorData.getPurchasedTiers().contains(generatorTier))
751758
{
752759
// Generator is not unlocked. Return false.
753760
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))));
755769
return false;
756770
}
757771
else if (generatorTier.getRequiredMinIslandLevel() > this.getIslandLevel(island))
758772
{
759773
// Generator is not unlocked. Return false.
760774
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()));
763777
return false;
764778
}
765779
else if (!generatorTier.getRequiredPermissions().isEmpty() &&
766-
!generatorTier.getRequiredPermissions().stream().allMatch(permission ->
780+
!generatorTier.getRequiredPermissions().stream().allMatch(permission ->
767781
User.getInstance(island.getOwner()).hasPermission(permission)))
768782
{
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();
773786

774787
// Generator is not unlocked. Return false.
775788
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());
778791
return false;
779792
}
780793
else
@@ -783,15 +796,15 @@ else if (!generatorTier.getRequiredPermissions().isEmpty() &&
783796
{
784797
// Return true only if user has enough money and its removal was successful.
785798
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())
788801
{
789802
return true;
790803
}
791804
else
792805
{
793806
user.sendMessage(Constants.ERRORS + "no-credits",
794-
TextVariables.NUMBER, String.valueOf(generatorTier.getGeneratorTierCost()));
807+
TextVariables.NUMBER, String.valueOf(generatorTier.getGeneratorTierCost()));
795808
return false;
796809
}
797810
}

src/main/java/world/bentobox/magiccobblestonegenerator/panels/CommonPanel.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33

44

5+
import org.bukkit.ChatColor;
56
import org.jetbrains.annotations.Nullable;
67

78
import org.bukkit.World;
@@ -76,7 +77,10 @@ protected List<String> generateGeneratorDescription(GeneratorTierObject generato
7677
boolean isUnlocked,
7778
long islandLevel)
7879
{
79-
List<String> description = new ArrayList<>(generator.getDescription());
80+
List<String> description = new ArrayList<>(5);
81+
82+
generator.getDescription().forEach(line ->
83+
description.add(ChatColor.translateAlternateColorCodes('&', line)));
8084

8185
if (isActive)
8286
{
@@ -133,6 +137,18 @@ else if (isUnlocked)
133137
}
134138
}
135139

140+
description.add("");
141+
description.add(this.user.getTranslation(Constants.DESCRIPTION + "click-to-view"));
142+
143+
if (isActive)
144+
{
145+
description.add(this.user.getTranslation(Constants.DESCRIPTION + "click-to-deactivate"));
146+
}
147+
else if (isUnlocked)
148+
{
149+
description.add(this.user.getTranslation(Constants.DESCRIPTION + "click-to-activate"));
150+
}
151+
136152
return description;
137153
}
138154

src/main/java/world/bentobox/magiccobblestonegenerator/panels/player/GeneratorUserPanel.java

+29-6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.util.List;
88
import java.util.stream.Collectors;
99

10+
import world.bentobox.bentobox.api.localization.TextVariables;
1011
import world.bentobox.bentobox.api.panels.PanelItem;
1112
import world.bentobox.bentobox.api.panels.builders.PanelBuilder;
1213
import world.bentobox.bentobox.api.panels.builders.PanelItemBuilder;
@@ -102,9 +103,26 @@ public void build()
102103

103104
panelBuilder.item(2, this.createButton(Action.SHOW_ACTIVE));
104105

105-
panelBuilder.item(4, this.createButton(Action.SHOW_COBBLESTONE));
106-
panelBuilder.item(5, this.createButton(Action.SHOW_STONE));
107-
panelBuilder.item(6, this.createButton(Action.SHOW_BASALT));
106+
// Do not show cobblestone button if there are no cobblestone generators.
107+
if (this.generatorList.stream().anyMatch(generator ->
108+
generator.getGeneratorType().equals(GeneratorTierObject.GeneratorType.COBBLESTONE)))
109+
{
110+
panelBuilder.item(4, this.createButton(Action.SHOW_COBBLESTONE));
111+
}
112+
113+
// Do not show stone if there are no stone generators.
114+
if (this.generatorList.stream().anyMatch(generator ->
115+
generator.getGeneratorType().equals(GeneratorTierObject.GeneratorType.STONE)))
116+
{
117+
panelBuilder.item(5, this.createButton(Action.SHOW_STONE));
118+
}
119+
120+
// Do not show basalt if there are no basalt generators.
121+
if (this.generatorList.stream().anyMatch(generator ->
122+
generator.getGeneratorType().equals(GeneratorTierObject.GeneratorType.BASALT)))
123+
{
124+
panelBuilder.item(6, this.createButton(Action.SHOW_BASALT));
125+
}
108126

109127
panelBuilder.item(8, this.createButton(Action.TOGGLE_VISIBILITY));
110128

@@ -326,8 +344,7 @@ private PanelItem createGeneratorButton(GeneratorTierObject generatorTier)
326344
// Open view panel.
327345
GeneratorViewPanel.openPanel(this, generatorTier);
328346
}
329-
else if (this.island.isAllowed(user,
330-
StoneGeneratorAddon.MAGIC_COBBLESTONE_GENERATOR_PERMISSION))
347+
else if (this.island.isAllowed(user, StoneGeneratorAddon.MAGIC_COBBLESTONE_GENERATOR_PERMISSION))
331348
{
332349
if (glow)
333350
{
@@ -337,11 +354,17 @@ else if (this.island.isAllowed(user,
337354
}
338355
else if (this.manager.canActivateGenerator(user, this.generatorData, generatorTier))
339356
{
340-
this.manager.activateGenerator(user, this.generatorData, generatorTier);
357+
this.manager.activateGenerator(user, this.island, this.generatorData, generatorTier);
341358
// Build whole gui.
342359
this.build();
343360
}
344361
}
362+
else
363+
{
364+
user.sendMessage("general.errors.insufficient-rank",
365+
TextVariables.RANK,
366+
user.getTranslation(this.addon.getPlugin().getRanksManager().getRank(this.island.getRank(user))));
367+
}
345368

346369
// Always return true.
347370
return true;

0 commit comments

Comments
 (0)