Fixed bug where island level was not checked.
This commit is contained in:
parent
48c96cf3d3
commit
8bc438a6b7
|
@ -1,5 +1,5 @@
|
|||
name: BSkyBlock-WelcomeWarps
|
||||
main: bskyblock.addon.warps.Warp
|
||||
name: BentoBox-WelcomeWarps
|
||||
main: bentobox.addon.warps.Warp
|
||||
version: 0.1
|
||||
|
||||
authors: tastybento
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
package bskyblock.addon.warps;
|
||||
package bentobox.addon.warps;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.World;
|
||||
|
||||
import bskyblock.addon.warps.commands.WarpCommand;
|
||||
import bskyblock.addon.warps.commands.WarpsCommand;
|
||||
import bskyblock.addon.warps.config.PluginConfig;
|
||||
import bentobox.addon.warps.commands.WarpCommand;
|
||||
import bentobox.addon.warps.commands.WarpsCommand;
|
||||
import bentobox.addon.warps.config.PluginConfig;
|
||||
import world.bentobox.bentobox.BentoBox;
|
||||
import world.bentobox.bentobox.api.addons.Addon;
|
||||
import world.bentobox.bentobox.api.commands.CompositeCommand;
|
||||
|
@ -21,7 +20,8 @@ import world.bentobox.bentobox.util.Util;
|
|||
*/
|
||||
public class Warp extends Addon {
|
||||
|
||||
private static final String LEVEL_PLUGIN_NAME = "BSkyBlock-Level";
|
||||
private static final String BSKYBLOCK = "BSkyBlock";
|
||||
private static final String ACIDISLAND = "AcidIsland";
|
||||
|
||||
// The plugin instance.
|
||||
private BentoBox plugin;
|
||||
|
@ -32,9 +32,6 @@ public class Warp extends Addon {
|
|||
// Warps signs object
|
||||
private WarpSignsManager warpSignsManager;
|
||||
|
||||
// Level addon
|
||||
private Optional<Addon> levelAddon;
|
||||
|
||||
private Set<World> registeredWorlds;
|
||||
|
||||
private PluginConfig settings;
|
||||
|
@ -61,26 +58,24 @@ public class Warp extends Addon {
|
|||
// Register commands
|
||||
getServer().getScheduler().runTask(getPlugin(), () -> {
|
||||
// BSkyBlock hook in
|
||||
this.getPlugin().getAddonsManager().getAddonByName("BSkyBlock").ifPresent(acidIsland -> {
|
||||
this.getPlugin().getAddonsManager().getAddonByName(BSKYBLOCK).ifPresent(acidIsland -> {
|
||||
CompositeCommand bsbIslandCmd = BentoBox.getInstance().getCommandsManager().getCommand("island");
|
||||
if (bsbIslandCmd != null) {
|
||||
new WarpCommand(this, bsbIslandCmd);
|
||||
new WarpsCommand(this, bsbIslandCmd);
|
||||
registeredWorlds.add(plugin.getIWM().getWorld("BSkyBlock"));
|
||||
registeredWorlds.add(plugin.getIWM().getWorld(BSKYBLOCK));
|
||||
}
|
||||
});
|
||||
// AcidIsland hook in
|
||||
this.getPlugin().getAddonsManager().getAddonByName("AcidIsland").ifPresent(acidIsland -> {
|
||||
this.getPlugin().getAddonsManager().getAddonByName(ACIDISLAND).ifPresent(acidIsland -> {
|
||||
CompositeCommand acidIslandCmd = getPlugin().getCommandsManager().getCommand("ai");
|
||||
if (acidIslandCmd != null) {
|
||||
new WarpCommand(this, acidIslandCmd);
|
||||
new WarpsCommand(this, acidIslandCmd);
|
||||
registeredWorlds.add(plugin.getIWM().getWorld("AcidIsland"));
|
||||
registeredWorlds.add(plugin.getIWM().getWorld(ACIDISLAND));
|
||||
}
|
||||
});
|
||||
});
|
||||
// Get the level addon if it exists
|
||||
setLevelAddon(getPlugin().getAddonsManager().getAddonByName(LEVEL_PLUGIN_NAME));
|
||||
});
|
||||
// Done
|
||||
}
|
||||
|
@ -104,14 +99,6 @@ public class Warp extends Addon {
|
|||
return warpSignsManager;
|
||||
}
|
||||
|
||||
public Optional<Addon> getLevelAddon() {
|
||||
return levelAddon;
|
||||
}
|
||||
|
||||
public void setLevelAddon(Optional<Addon> levelAddon) {
|
||||
this.levelAddon = levelAddon;
|
||||
}
|
||||
|
||||
public String getPermPrefix(World world) {
|
||||
this.getPlugin().getIWM().getPermissionPrefix(world);
|
||||
return null;
|
|
@ -1,4 +1,4 @@
|
|||
package bskyblock.addon.warps;
|
||||
package bentobox.addon.warps;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
|
@ -1,4 +1,4 @@
|
|||
package bskyblock.addon.warps;
|
||||
package bentobox.addon.warps;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
@ -15,8 +15,8 @@ import org.bukkit.event.Listener;
|
|||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.SignChangeEvent;
|
||||
|
||||
import bskyblock.addon.level.Level;
|
||||
import bskyblock.addon.warps.event.WarpRemoveEvent;
|
||||
import bentobox.addon.level.Level;
|
||||
import bentobox.addon.warps.event.WarpRemoveEvent;
|
||||
import world.bentobox.bentobox.BentoBox;
|
||||
import world.bentobox.bentobox.api.user.User;
|
||||
|
||||
|
@ -27,6 +27,8 @@ import world.bentobox.bentobox.api.user.User;
|
|||
*
|
||||
*/
|
||||
public class WarpSignsListener implements Listener {
|
||||
private static final String LEVEL_PLUGIN_NAME = "BentoBox-Level";
|
||||
|
||||
private BentoBox plugin;
|
||||
|
||||
private Warp addon;
|
||||
|
@ -101,17 +103,16 @@ public class WarpSignsListener implements Listener {
|
|||
user.sendMessage("general.errors.you-need", "[permission]", addon.getPermPrefix(b.getWorld()) + "island.addwarp");
|
||||
return;
|
||||
}
|
||||
if (addon.getLevelAddon().isPresent()) {
|
||||
Level lev = (Level) addon.getLevelAddon().get();
|
||||
if (lev.getIslandLevel(b.getWorld(), user.getUniqueId()) < addon.getSettings().getWarpLevelRestriction()) {
|
||||
long level = plugin.getAddonsManager().getAddonByName(LEVEL_PLUGIN_NAME).map(l -> (Level)l)
|
||||
.map(l -> l.getIslandLevel(b.getWorld(), user.getUniqueId()))
|
||||
.filter(l -> l < addon.getSettings().getWarpLevelRestriction()).orElse(0L);
|
||||
if (level > 0) {
|
||||
user.sendMessage("warps.error.not-enough-level");
|
||||
user.sendMessage("warps.error.your-level-is",
|
||||
"[level]", String.valueOf(lev.getIslandLevel(b.getWorld(), user.getUniqueId())),
|
||||
"[level]", String.valueOf(level),
|
||||
"[required]", String.valueOf(addon.getSettings().getWarpLevelRestriction()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Check that the player is on their island
|
||||
if (!(plugin.getIslands().userIsOnIsland(b.getWorld(), user))) {
|
|
@ -1,4 +1,4 @@
|
|||
package bskyblock.addon.warps;
|
||||
package bentobox.addon.warps;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
@ -24,9 +24,9 @@ import org.bukkit.block.Block;
|
|||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.block.Sign;
|
||||
|
||||
import bskyblock.addon.warps.database.object.WarpsData;
|
||||
import bskyblock.addon.warps.event.WarpInitiateEvent;
|
||||
import bskyblock.addon.warps.event.WarpListEvent;
|
||||
import bentobox.addon.warps.database.object.WarpsData;
|
||||
import bentobox.addon.warps.event.WarpInitiateEvent;
|
||||
import bentobox.addon.warps.event.WarpListEvent;
|
||||
import world.bentobox.bentobox.BentoBox;
|
||||
import world.bentobox.bentobox.api.user.User;
|
||||
import world.bentobox.bentobox.database.BSBDatabase;
|
|
@ -1,4 +1,4 @@
|
|||
package bskyblock.addon.warps.commands;
|
||||
package bentobox.addon.warps.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -6,7 +6,7 @@ import java.util.Optional;
|
|||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import bskyblock.addon.warps.Warp;
|
||||
import bentobox.addon.warps.Warp;
|
||||
import world.bentobox.bentobox.api.commands.CompositeCommand;
|
||||
import world.bentobox.bentobox.api.user.User;
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package bskyblock.addon.warps.commands;
|
||||
package bentobox.addon.warps.commands;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import bskyblock.addon.warps.Warp;
|
||||
import bentobox.addon.warps.Warp;
|
||||
import world.bentobox.bentobox.api.commands.CompositeCommand;
|
||||
import world.bentobox.bentobox.api.user.User;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package bskyblock.addon.warps.config;
|
||||
package bentobox.addon.warps.config;
|
||||
|
||||
import bskyblock.addon.warps.Warp;
|
||||
import bentobox.addon.warps.Warp;
|
||||
|
||||
public class PluginConfig {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package bskyblock.addon.warps.database.object;
|
||||
package bentobox.addon.warps.database.object;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
|
@ -1,4 +1,4 @@
|
|||
package bskyblock.addon.warps.event;
|
||||
package bentobox.addon.warps.event;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -6,7 +6,7 @@ import org.bukkit.Location;
|
|||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import bskyblock.addon.warps.Warp;
|
||||
import bentobox.addon.warps.Warp;
|
||||
|
||||
/**
|
||||
* This event is fired when a Warp is created
|
|
@ -1,4 +1,4 @@
|
|||
package bskyblock.addon.warps.event;
|
||||
package bentobox.addon.warps.event;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -7,7 +7,7 @@ import org.bukkit.event.Cancellable;
|
|||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import bskyblock.addon.warps.Warp;
|
||||
import bentobox.addon.warps.Warp;
|
||||
|
||||
/**
|
||||
* This event is fired when a player tries to do a warp
|
|
@ -15,7 +15,7 @@
|
|||
* along with ASkyBlock. If not, see <http://www.gnu.org/licenses/>.
|
||||
*******************************************************************************/
|
||||
|
||||
package bskyblock.addon.warps.event;
|
||||
package bentobox.addon.warps.event;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
@ -23,7 +23,7 @@ import java.util.UUID;
|
|||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import bskyblock.addon.warps.Warp;
|
||||
import bentobox.addon.warps.Warp;
|
||||
|
||||
/**
|
||||
* This event is fired when request is made for a sorted list of warps or when
|
|
@ -1,4 +1,4 @@
|
|||
package bskyblock.addon.warps.event;
|
||||
package bentobox.addon.warps.event;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -6,7 +6,7 @@ import org.bukkit.Location;
|
|||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import bskyblock.addon.warps.Warp;
|
||||
import bentobox.addon.warps.Warp;
|
||||
|
||||
/**
|
||||
* This event is fired when a Warp is removed (when a warp sign is broken)
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package bskyblock.addon.warps;
|
||||
package bentobox.addon.warps;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
@ -27,6 +27,9 @@ import org.powermock.api.mockito.PowerMockito;
|
|||
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||
import org.powermock.modules.junit4.PowerMockRunner;
|
||||
|
||||
import bentobox.addon.warps.Warp;
|
||||
import bentobox.addon.warps.WarpPanelManager;
|
||||
import bentobox.addon.warps.WarpSignsManager;
|
||||
import world.bentobox.bentobox.BentoBox;
|
||||
import world.bentobox.bentobox.api.user.User;
|
||||
import world.bentobox.bentobox.managers.PlayersManager;
|
||||
|
@ -99,7 +102,7 @@ public class WarpPanelManagerTest {
|
|||
when(Bukkit.createInventory(Mockito.any(), Mockito.anyInt(), Mockito.any())).thenReturn(top); }
|
||||
|
||||
/**
|
||||
* Test method for {@link bskyblock.addon.warps.WarpPanelManager#showWarpPanel(org.bukkit.World, world.bentobox.bbox.api.user.User, int)}.
|
||||
* Test method for {@link bentobox.addon.warps.WarpPanelManager#showWarpPanel(org.bukkit.World, world.bentobox.bbox.api.user.User, int)}.
|
||||
*/
|
||||
@Test
|
||||
public void testShowWarpPanelFirst() {
|
||||
|
@ -111,7 +114,7 @@ public class WarpPanelManagerTest {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test method for {@link bskyblock.addon.warps.WarpPanelManager#showWarpPanel(org.bukkit.World, world.bentobox.bbox.api.user.User, int)}.
|
||||
* Test method for {@link bentobox.addon.warps.WarpPanelManager#showWarpPanel(org.bukkit.World, world.bentobox.bbox.api.user.User, int)}.
|
||||
*/
|
||||
@Test
|
||||
public void testShowWarpPanelMiddle() {
|
||||
|
@ -123,7 +126,7 @@ public class WarpPanelManagerTest {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test method for {@link bskyblock.addon.warps.WarpPanelManager#showWarpPanel(org.bukkit.World, world.bentobox.bbox.api.user.User, int)}.
|
||||
* Test method for {@link bentobox.addon.warps.WarpPanelManager#showWarpPanel(org.bukkit.World, world.bentobox.bbox.api.user.User, int)}.
|
||||
*/
|
||||
@Test
|
||||
public void testShowWarpPanelLast() {
|
||||
|
@ -135,7 +138,7 @@ public class WarpPanelManagerTest {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test method for {@link bskyblock.addon.warps.WarpPanelManager#showWarpPanel(org.bukkit.World, world.bentobox.bbox.api.user.User, int)}.
|
||||
* Test method for {@link bentobox.addon.warps.WarpPanelManager#showWarpPanel(org.bukkit.World, world.bentobox.bbox.api.user.User, int)}.
|
||||
*/
|
||||
@Test
|
||||
public void testShowWarpPanelTestCache() {
|
||||
|
@ -150,7 +153,7 @@ public class WarpPanelManagerTest {
|
|||
|
||||
|
||||
/**
|
||||
* Test method for {@link bskyblock.addon.warps.WarpPanelManager#removeWarp(org.bukkit.World, java.util.UUID)}.
|
||||
* Test method for {@link bentobox.addon.warps.WarpPanelManager#removeWarp(org.bukkit.World, java.util.UUID)}.
|
||||
*/
|
||||
@Test
|
||||
public void testRemoveWarp() {
|
|
@ -1,4 +1,4 @@
|
|||
package bskyblock.addon.warps;
|
||||
package bentobox.addon.warps;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
|
@ -18,7 +18,6 @@ import org.bukkit.Location;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -35,11 +34,12 @@ import org.powermock.api.mockito.PowerMockito;
|
|||
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||
import org.powermock.modules.junit4.PowerMockRunner;
|
||||
|
||||
import bskyblock.addon.level.Level;
|
||||
import bskyblock.addon.warps.config.PluginConfig;
|
||||
import bentobox.addon.level.Level;
|
||||
import bentobox.addon.warps.config.PluginConfig;
|
||||
import world.bentobox.bentobox.BentoBox;
|
||||
import world.bentobox.bentobox.api.addons.Addon;
|
||||
import world.bentobox.bentobox.api.user.User;
|
||||
import world.bentobox.bentobox.managers.AddonsManager;
|
||||
import world.bentobox.bentobox.managers.IslandsManager;
|
||||
import world.bentobox.bentobox.managers.LocalesManager;
|
||||
|
||||
|
@ -78,7 +78,7 @@ public class WarpSignsListenerTest {
|
|||
when(player.getUniqueId()).thenReturn(uuid);
|
||||
s = mock(Sign.class);
|
||||
when(s.getLine(Mockito.anyInt())).thenReturn(ChatColor.GREEN + "[WELCOME]");
|
||||
when(block.getState()).thenReturn((BlockState)s);
|
||||
when(block.getState()).thenReturn(s);
|
||||
wsm = mock(WarpSignsManager.class);
|
||||
when(addon.getWarpSignsManager()).thenReturn(wsm);
|
||||
Map<UUID, Location> list = new HashMap<>();
|
||||
|
@ -119,7 +119,9 @@ public class WarpSignsListenerTest {
|
|||
|
||||
level_addon = mock(Level.class);
|
||||
Optional<Addon> level = Optional.of(level_addon);
|
||||
when(addon.getLevelAddon()).thenReturn(level);
|
||||
AddonsManager am = mock(AddonsManager.class);
|
||||
when(plugin.getAddonsManager()).thenReturn(am);
|
||||
when(am.getAddonByName(Mockito.anyString())).thenReturn(level);
|
||||
when(level_addon.getIslandLevel(Mockito.any(), Mockito.any())).thenReturn(11L); // Higher than 10
|
||||
|
||||
im = mock(IslandsManager.class);
|
Loading…
Reference in New Issue