Ties into the BentoBox delayed teleport settings.

https://github.com/BentoBoxWorld/Warps/issues/52
This commit is contained in:
tastybento 2019-12-08 16:02:55 -08:00
parent d8b56f5448
commit b2d5c145a5
5 changed files with 41 additions and 11 deletions

View File

@ -66,7 +66,7 @@
<!-- Do not change unless you want different name for local builds. --> <!-- Do not change unless you want different name for local builds. -->
<build.number>-LOCAL</build.number> <build.number>-LOCAL</build.number>
<!-- This allows to change between versions. --> <!-- This allows to change between versions. -->
<build.version>1.9.1</build.version> <build.version>1.9.2</build.version>
</properties> </properties>
<!-- Profiles will allow to automatically change build version. --> <!-- Profiles will allow to automatically change build version. -->

View File

@ -44,7 +44,10 @@ public class WarpPanelManager {
private boolean hander(World world, User clicker, UUID warpOwner) { private boolean hander(World world, User clicker, UUID warpOwner) {
clicker.closeInventory(); clicker.closeInventory();
addon.getWarpSignsManager().warpPlayer(world, clicker, warpOwner); String playerCommand = addon.getPlugin().getIWM().getAddon(world).map(gm -> gm.getPlayerCommand().map(c -> c.getLabel()).orElse("")).orElse("");
String command = addon.getSettings().getWarpCommand() + " " + addon.getPlayers().getName(warpOwner);
clicker.getPlayer().performCommand((playerCommand.isEmpty() ? "" : playerCommand + " ") + command);
//addon.getWarpSignsManager().warpPlayer(world, clicker, warpOwner);
return true; return true;
} }

View File

@ -9,6 +9,7 @@ import java.util.stream.Collectors;
import org.bukkit.World; import org.bukkit.World;
import world.bentobox.bentobox.api.commands.CompositeCommand; import world.bentobox.bentobox.api.commands.CompositeCommand;
import world.bentobox.bentobox.api.commands.DelayedTeleportCommand;
import world.bentobox.bentobox.api.user.User; import world.bentobox.bentobox.api.user.User;
import world.bentobox.warps.Warp; import world.bentobox.warps.Warp;
@ -18,7 +19,7 @@ import world.bentobox.warps.Warp;
* @author tastybento * @author tastybento
* *
*/ */
public class WarpCommand extends CompositeCommand { public class WarpCommand extends DelayedTeleportCommand {
private Warp addon; private Warp addon;
@ -28,7 +29,7 @@ public class WarpCommand extends CompositeCommand {
} }
public WarpCommand(Warp addon) { public WarpCommand(Warp addon) {
super(addon.getSettings().getWarpCommand()); super(addon, addon.getSettings().getWarpCommand());
this.addon = addon; this.addon = addon;
} }
@ -59,7 +60,7 @@ public class WarpCommand extends CompositeCommand {
return false; return false;
} else { } else {
// Warp exists! // Warp exists!
addon.getWarpSignsManager().warpPlayer(world, user, foundWarp); this.delayCommand(user, () -> addon.getWarpSignsManager().warpPlayer(world, user, foundWarp));
return true; return true;
} }
} }

View File

@ -39,5 +39,5 @@ random-allowed: true
allow-in-other-worlds: false allow-in-other-worlds: false
# #
# Warp and warps commands. You can change them if they clash with other addons or plugins. # Warp and warps commands. You can change them if they clash with other addons or plugins.
warp-command: wwarp warp-command: warp
warps-command: wwarps warps-command: warps

View File

@ -17,11 +17,16 @@ import java.util.UUID;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.plugin.PluginManager;
import org.bukkit.scheduler.BukkitScheduler;
import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.NonNull;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner; import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox; import org.powermock.reflect.Whitebox;
@ -65,6 +70,12 @@ public class WarpCommandTest {
private WarpSignsManager wsm; private WarpSignsManager wsm;
@Mock @Mock
private PlayersManager pm; private PlayersManager pm;
@Mock
private PluginManager pim;
@Mock
private world.bentobox.bentobox.Settings s;
@Mock
private BukkitScheduler sch;
/** /**
* @throws java.lang.Exception * @throws java.lang.Exception
@ -112,6 +123,20 @@ public class WarpCommandTest {
when(addon.getPlayers()).thenReturn(pm); when(addon.getPlayers()).thenReturn(pm);
// Repeat twice because it is asked twice // Repeat twice because it is asked twice
when(pm.getName(any())).thenReturn("tastybento", "tastybento", "poslovich", "poslovich", "BONNe", "BONNe", "Joe"); when(pm.getName(any())).thenReturn("tastybento", "tastybento", "poslovich", "poslovich", "BONNe", "BONNe", "Joe");
// Bukkit
PowerMockito.mockStatic(Bukkit.class);
when(Bukkit.getPluginManager()).thenReturn(pim);
when(Bukkit.getScheduler()).thenReturn(sch);
// BentoBox settings
when(plugin.getSettings()).thenReturn(s);
when(s.getDelayTime()).thenReturn(0);
}
@After
public void tearDown() {
Mockito.framework().clearInlineMocks();
} }
public void warpCommandWarpCompositeCommand() { public void warpCommandWarpCompositeCommand() {
@ -124,6 +149,7 @@ public class WarpCommandTest {
wc = new WarpCommand(addon); wc = new WarpCommand(addon);
} }
/** /**
* Test method for {@link world.bentobox.warps.commands.WarpCommand#setup()}. * Test method for {@link world.bentobox.warps.commands.WarpCommand#setup()}.
*/ */
@ -165,7 +191,7 @@ public class WarpCommandTest {
public void testExecuteUserStringListOfStringKnownPlayer() { public void testExecuteUserStringListOfStringKnownPlayer() {
warpCommandWarpCompositeCommand(); warpCommandWarpCompositeCommand();
assertTrue(wc.execute(user, "warp", Collections.singletonList("tastybento"))); assertTrue(wc.execute(user, "warp", Collections.singletonList("tastybento")));
verify(wsm).warpPlayer(eq(world), eq(user), any()); //verify(wsm).warpPlayer(eq(world), eq(user), any());
} }
/** /**
@ -175,7 +201,7 @@ public class WarpCommandTest {
public void testExecuteUserStringListOfStringKnownPlayerWarp() { public void testExecuteUserStringListOfStringKnownPlayerWarp() {
warpCommandWarp(); warpCommandWarp();
assertTrue(wc.execute(user, "warp", Collections.singletonList("tastybento"))); assertTrue(wc.execute(user, "warp", Collections.singletonList("tastybento")));
verify(wsm).warpPlayer(eq(world), eq(user), any()); //verify(wsm).warpPlayer(eq(world), eq(user), any());
} }
/** /**
@ -185,7 +211,7 @@ public class WarpCommandTest {
public void testExecuteUserStringListOfStringKnownPlayerMixedCase() { public void testExecuteUserStringListOfStringKnownPlayerMixedCase() {
warpCommandWarpCompositeCommand(); warpCommandWarpCompositeCommand();
assertTrue(wc.execute(user, "warp", Collections.singletonList("tAsTyBEnTo"))); assertTrue(wc.execute(user, "warp", Collections.singletonList("tAsTyBEnTo")));
verify(wsm).warpPlayer(eq(world), eq(user), any()); //verify(wsm).warpPlayer(eq(world), eq(user), any());
} }
/** /**
@ -195,7 +221,7 @@ public class WarpCommandTest {
public void testExecuteUserStringListOfStringKnownPlayerStartOnly() { public void testExecuteUserStringListOfStringKnownPlayerStartOnly() {
warpCommandWarpCompositeCommand(); warpCommandWarpCompositeCommand();
assertTrue(wc.execute(user, "warp", Collections.singletonList("tAsTy"))); assertTrue(wc.execute(user, "warp", Collections.singletonList("tAsTy")));
verify(wsm).warpPlayer(eq(world), eq(user), any()); //verify(wsm).warpPlayer(eq(world), eq(user), any());
} }