Skip to content

Commit

Permalink
Implement ability to change text via Chat instead of AnvilGUI (#97).
Browse files Browse the repository at this point in the history
It was necessary as Anvil has limited char input, while chat is almost unlimited.
  • Loading branch information
BONNe committed Apr 26, 2019
1 parent 507c68d commit a418594
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import org.bukkit.entity.EntityType;
import org.bukkit.inventory.ItemStack;
import java.util.*;
import java.util.stream.Collectors;

import net.wesjd.anvilgui.AnvilGUI;
import world.bentobox.bentobox.api.panels.PanelItem;
Expand Down Expand Up @@ -116,6 +117,10 @@ else if (this.currentMenuType.equals(MenuType.REWARDS))

panelBuilder.item(44, this.returnButton);

// Every time when this GUI is build, save challenge
// This will ensure that all main things will be always stored
this.addon.getChallengesManager().saveChallenge(this.challenge);

panelBuilder.build();
}

Expand Down Expand Up @@ -917,14 +922,14 @@ else if (this.challenge.getChallengeType().equals(Challenge.ChallengeType.OTHER)

icon = new ItemStack(Material.WRITTEN_BOOK);
clickHandler = (panel, user, clickType, slot) -> {
new AnvilGUI(this.addon.getPlugin(),
this.user.getPlayer(),
this.challenge.getRewardText(),
(player, reply) -> {
this.challenge.setRewardText(reply);
this.build();
return reply;
});
new StringListGUI(this.user, this.challenge.getRewardText(), lineLength, (status, value) -> {
if (status)
{
this.challenge.setRewardText(value.stream().map(s -> s + "|").collect(Collectors.joining()));
}

this.build();
});

return true;
};
Expand Down Expand Up @@ -1114,14 +1119,14 @@ else if (this.challenge.getChallengeType().equals(Challenge.ChallengeType.OTHER)

icon = new ItemStack(Material.WRITTEN_BOOK);
clickHandler = (panel, user, clickType, slot) -> {
new AnvilGUI(this.addon.getPlugin(),
this.user.getPlayer(),
this.challenge.getRepeatRewardText(),
(player, reply) -> {
this.challenge.setRepeatRewardText(reply);
this.build();
return reply;
});
new StringListGUI(this.user, this.challenge.getRepeatRewardText(), lineLength, (status, value) -> {
if (status)
{
this.challenge.setRepeatRewardText(value.stream().map(s -> s + "|").collect(Collectors.joining()));
}

this.build();
});

return true;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,10 @@ else if (this.currentMenuType.equals(MenuType.REWARDS))

panelBuilder.item(44, this.returnButton);

// Save challenge level every time this gui is build.
// It will ensure that changes are stored in database.
this.addon.getChallengesManager().saveLevel(this.challengeLevel);

panelBuilder.build();
}

Expand Down Expand Up @@ -422,14 +426,15 @@ private PanelItem createButton(Button button)
"[value]", "|" + this.challengeLevel.getUnlockMessage()));
icon = new ItemStack(Material.WRITABLE_BOOK);
clickHandler = (panel, user, clickType, slot) -> {
new AnvilGUI(this.addon.getPlugin(),
this.user.getPlayer(),
this.challengeLevel.getUnlockMessage(),
(player, reply) -> {
this.challengeLevel.setUnlockMessage(reply);
this.build();
return reply;
});
new StringListGUI(this.user, this.challengeLevel.getUnlockMessage(), lineLength, (status, value) -> {
if (status)
{
this.challengeLevel.setUnlockMessage(value.stream().map(s -> s + "|").collect(Collectors.joining()));
}

this.build();
});

return true;
};
glow = false;
Expand Down Expand Up @@ -492,14 +497,15 @@ private PanelItem createButton(Button button)
"[value]", "|" + this.challengeLevel.getRewardText()));
icon = new ItemStack(Material.WRITTEN_BOOK);
clickHandler = (panel, user, clickType, slot) -> {
new AnvilGUI(this.addon.getPlugin(),
this.user.getPlayer(),
this.challengeLevel.getRewardText(),
(player, reply) -> {
this.challengeLevel.setRewardText(reply);
this.build();
return reply;
});
new StringListGUI(this.user, this.challengeLevel.getRewardText(), lineLength, (status, value) -> {
if (status)
{
this.challengeLevel.setRewardText(value.stream().map(s -> s + "|").collect(Collectors.joining()));
}

this.build();
});

return true;
};
glow = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@
*/
public class StringListGUI
{
public StringListGUI(User user, String value, int lineLength, BiConsumer<Boolean, List<String>> consumer)
{
this(user, Collections.singleton(value), lineLength, consumer);
}


public StringListGUI(User user, Collection<String> value, int lineLength, BiConsumer<Boolean, List<String>> consumer)
{
this(user, new ArrayList<>(value), lineLength, consumer);
Expand Down

0 comments on commit a418594

Please sign in to comment.