Skip to content

Commit 91d18a0

Browse files
authored
Merge pull request #2718 from BentoBoxWorld/develop
Release 3.7.2
2 parents f7747a3 + 3f38c89 commit 91d18a0

File tree

17 files changed

+96
-87
lines changed

17 files changed

+96
-87
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
<!-- Do not change unless you want different name for local builds. -->
7676
<build.number>-LOCAL</build.number>
7777
<!-- This allows to change between versions. -->
78-
<build.version>3.7.1</build.version>
78+
<build.version>3.7.2</build.version>
7979
<sonar.organization>bentobox-world</sonar.organization>
8080
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
8181
<server.jars>${project.basedir}/lib</server.jars>

src/main/java/world/bentobox/bentobox/BentoBox.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import world.bentobox.bentobox.api.configuration.Config;
2323
import world.bentobox.bentobox.api.events.BentoBoxReadyEvent;
2424
import world.bentobox.bentobox.api.localization.TextVariables;
25+
import world.bentobox.bentobox.api.panels.Panel;
2526
import world.bentobox.bentobox.api.user.Notifier;
2627
import world.bentobox.bentobox.api.user.User;
2728
import world.bentobox.bentobox.commands.BentoBoxCommand;
@@ -60,6 +61,7 @@
6061
import world.bentobox.bentobox.managers.RanksManager;
6162
import world.bentobox.bentobox.managers.WebManager;
6263
import world.bentobox.bentobox.util.ExpiringMap;
64+
import world.bentobox.bentobox.util.Pair;
6365
import world.bentobox.bentobox.util.heads.HeadGetter;
6466
import world.bentobox.bentobox.versions.ServerCompatibility;
6567

@@ -94,7 +96,7 @@ public class BentoBox extends JavaPlugin implements Listener {
9496
private Notifier notifier;
9597

9698
// Click limiter
97-
private ExpiringMap<UUID, Boolean> lastClick ;
99+
private ExpiringMap<Pair<UUID, String>, Boolean> lastClick ;
98100

99101
private HeadGetter headGetter;
100102

@@ -146,7 +148,7 @@ public void onEnable(){
146148
saveConfig();
147149

148150
// Set up click timeout
149-
lastClick = new ExpiringMap<UUID, Boolean>(getSettings().getClickCooldownMs(), TimeUnit.MILLISECONDS);
151+
lastClick = new ExpiringMap<Pair<UUID, String>, Boolean>(getSettings().getClickCooldownMs(), TimeUnit.MILLISECONDS);
150152

151153
// Start Database managers
152154
playersManager = new PlayersManager(this);
@@ -666,12 +668,12 @@ public boolean isShutdown() {
666668
* @param user user
667669
* @return false if they can click and the timeout is started, otherwise true.
668670
*/
669-
public boolean onTimeout(User user) {
670-
if (lastClick.containsKey(user.getUniqueId())) {
671+
public boolean onTimeout(User user, Panel panel) {
672+
if (lastClick.containsKey(new Pair<UUID, String>(user.getUniqueId(), panel.getName()))) {
671673
user.notify("general.errors.slow-down");
672674
return true;
673675
}
674-
lastClick.put(user.getUniqueId(), true);
676+
lastClick.put(new Pair<UUID, String>(user.getUniqueId(), panel.getName()), true);
675677
return false;
676678
}
677679
}

src/main/java/world/bentobox/bentobox/api/flags/clicklisteners/CycleClick.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,6 @@ public CycleClick(String id, int minRank, int maxRank) {
6060

6161
@Override
6262
public boolean onClick(Panel panel, User user2, ClickType click, int slot) {
63-
if (plugin.onTimeout(user2)) {
64-
return true;
65-
}
6663
if (panel.getWorld().isEmpty()) {
6764
plugin.logError("Panel " + panel.getName()
6865
+ " has no world associated with it. Please report this bug to the author.");

src/main/java/world/bentobox/bentobox/api/flags/clicklisteners/IslandToggleClick.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ public IslandToggleClick(String id) {
4040

4141
@Override
4242
public boolean onClick(Panel panel, User user, ClickType click, int slot) {
43-
if (plugin.onTimeout(user)) {
44-
return true;
45-
}
4643
// This click listener is used with TabbedPanel and SettingsTabs only
4744
TabbedPanel tp = (TabbedPanel)panel;
4845
SettingsTab st = (SettingsTab)tp.getActiveTab();

src/main/java/world/bentobox/bentobox/api/flags/clicklisteners/WorldToggleClick.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ public WorldToggleClick(String id) {
3333

3434
@Override
3535
public boolean onClick(Panel panel, User user, ClickType click, int slot) {
36-
if (plugin.onTimeout(user)) {
37-
return true;
38-
}
3936
World world = panel.getWorld().orElseThrow(); // The panel must have a world
4037
String reqPerm = plugin.getIWM().getPermissionPrefix(world) + "admin.world.settings." + id;
4138
if (!user.hasPermission(reqPerm)) {

src/main/java/world/bentobox/bentobox/api/panels/TabbedPanel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public void onInventoryClose(InventoryCloseEvent event) {
169169

170170
@Override
171171
public void onInventoryClick(User user, InventoryClickEvent event) {
172-
if (plugin.onTimeout(user)) {
172+
if (plugin.onTimeout(user, this)) {
173173
event.setCancelled(true);
174174
return;
175175
}

src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/CommandCycleClick.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,7 @@ public CommandCycleClick(CommandRankClickListener commandRankClickListener, Stri
3939
*/
4040
@Override
4141
public boolean onClick(Panel panel, User user, ClickType click, int slot) {
42-
if (plugin.onTimeout(user)) {
43-
return true;
44-
}
45-
// Left clicking increases the rank required
42+
// Left clicking increases the rank required
4643
// Right clicking decreases the rank required
4744
World world = panel.getWorld().orElse(user.getWorld());
4845
Island island = panel.getIsland();

src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/CommandRankClickListener.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@ public class CommandRankClickListener implements ClickHandler {
4141
*/
4242
@Override
4343
public boolean onClick(Panel panel, User user, ClickType clickType, int slot) {
44-
if (plugin.onTimeout(user)) {
45-
return true;
46-
}
4744
// This click listener is used with TabbedPanel and SettingsTabs only
4845
TabbedPanel tp = (TabbedPanel)panel;
4946
SettingsTab st = (SettingsTab)tp.getActiveTab();
@@ -81,6 +78,9 @@ public boolean onClick(Panel panel, User user, ClickType clickType, int slot) {
8178
String panelName = user.getTranslation("protection.flags.COMMAND_RANKS.name");
8279
if (panel.getName().equals(panelName)) {
8380
// This is a click on the panel
81+
if (plugin.onTimeout(user, panel)) {
82+
return true;
83+
}
8484
// Slot relates to the command
8585
String c = getCommands(panel.getWorld().orElse(user.getWorld()), user).get(slot);
8686
// Apply change to panel

src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/GeoLimitClickListener.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ public class GeoLimitClickListener implements ClickHandler {
2424

2525
@Override
2626
public boolean onClick(Panel panel, User user, ClickType clickType, int slot) {
27-
if (BentoBox.getInstance().onTimeout(user)) {
28-
return true;
29-
}
3027
// Get the world
3128
if (!user.inWorld()) {
3229
user.sendMessage("general.errors.wrong-world");

src/main/java/world/bentobox/bentobox/listeners/flags/clicklisteners/GeoMobLimitTab.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,6 @@ public GeoMobLimitTab(@NonNull User user, @NonNull EntityLimitTabType type, Worl
6464

6565
@Override
6666
public boolean onClick(Panel panel, User user, ClickType clickType, int slot) {
67-
if (plugin.onTimeout(user)) {
68-
return true;
69-
}
7067
// Case panel to Tabbed Panel to get the active page
7168
TabbedPanel tp = (TabbedPanel)panel;
7269
// Convert the slot and active page to an index

0 commit comments

Comments
 (0)