Skip to content

Commit

Permalink
Update to 1.170.0 WorldBorderAPI. Added Settings test class.
Browse files Browse the repository at this point in the history
  • Loading branch information
tastybento committed Jun 22, 2021
1 parent b0c2ec6 commit 2450a40
Show file tree
Hide file tree
Showing 3 changed files with 153 additions and 5 deletions.
22 changes: 18 additions & 4 deletions src/main/java/world/bentobox/border/listeners/ShowWorldBorder.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package world.bentobox.border.listeners;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.RegisteredServiceProvider;

import com.github.yannicklamprecht.worldborder.api.BorderAPI;
import com.github.yannicklamprecht.worldborder.api.WorldBorderApi;

import world.bentobox.bentobox.api.addons.Addon.State;
import world.bentobox.bentobox.api.metadata.MetaDataValue;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.database.objects.Island;
Expand All @@ -17,24 +20,35 @@
public class ShowWorldBorder implements BorderShower {

private final Border addon;
private final WorldBorderApi worldBorderApi;

public ShowWorldBorder(Border addon) {
this.addon = addon;
RegisteredServiceProvider<WorldBorderApi> worldBorderApiRegisteredServiceProvider = Bukkit.getServer().getServicesManager().getRegistration(WorldBorderApi.class);

if (worldBorderApiRegisteredServiceProvider == null) {
addon.logError("WorldBorderAPI not found");
addon.setState(State.DISABLED);
worldBorderApi = null;
return;
}

worldBorderApi = worldBorderApiRegisteredServiceProvider.getProvider();
}

@Override
public void showBorder(Player player, Island island) {
BorderAPI.getApi().resetWorldBorderToGlobal(player);
worldBorderApi.resetWorldBorderToGlobal(player);
if (addon.getSettings().getDisabledGameModes().contains(island.getGameMode())
|| !User.getInstance(player).getMetaData(BORDER_STATE_META_DATA).map(MetaDataValue::asBoolean).orElse(addon.getSettings().isShowByDefault())) {
return;
}
BorderAPI.getApi().setBorder(player, island.getProtectionRange() * 2D, island.getProtectionCenter());
worldBorderApi.setBorder(player, island.getProtectionRange() * 2D, island.getProtectionCenter());
}

@Override
public void hideBorder(User user) {
BorderAPI.getApi().resetWorldBorderToGlobal(user.getPlayer());
worldBorderApi.resetWorldBorderToGlobal(user.getPlayer());
}

}
2 changes: 1 addition & 1 deletion src/main/resources/addon.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Border
main: world.bentobox.border.Border
version: ${version}${build.number}
api-version: 1.16.0
api-version: 1.17
icon: BEDROCK

prefix: Border
Expand Down
134 changes: 134 additions & 0 deletions src/test/java/world/bentobox/border/SettingsTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/**
*
*/
package world.bentobox.border;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import java.util.Collections;

import org.junit.Before;
import org.junit.Test;

/**
* @author tastybento
*
*/
public class SettingsTest {

private Settings settings;

/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
settings = new Settings();
}

/**
* Test method for {@link world.bentobox.border.Settings#setDisabledGameModes(java.util.Set)}.
*/
@Test
public void testSetDisabledGameModes() {
settings.setDisabledGameModes(Collections.singleton("test"));
assertTrue(settings.getDisabledGameModes().contains("test"));
assertEquals(1, settings.getDisabledGameModes().size());
}

/**
* Test method for {@link world.bentobox.border.Settings#getDisabledGameModes()}.
*/
@Test
public void testGetDisabledGameModes() {
assertTrue(settings.getDisabledGameModes().isEmpty());
}

/**
* Test method for {@link world.bentobox.border.Settings#isUseBarrierBlocks()}.
*/
@Test
public void testIsUseBarrierBlocks() {
assertTrue(settings.isUseBarrierBlocks());
}

/**
* Test method for {@link world.bentobox.border.Settings#setUseBarrierBlocks(boolean)}.
*/
@Test
public void testSetUseBarrierBlocks() {
settings.setUseBarrierBlocks(false);
assertFalse(settings.isUseBarrierBlocks());
}

/**
* Test method for {@link world.bentobox.border.Settings#isShowByDefault()}.
*/
@Test
public void testIsShowByDefault() {
assertTrue(settings.isShowByDefault());
}

/**
* Test method for {@link world.bentobox.border.Settings#setShowByDefault(boolean)}.
*/
@Test
public void testSetShowByDefault() {
settings.setShowByDefault(false);
assertFalse(settings.isShowByDefault());
}

/**
* Test method for {@link world.bentobox.border.Settings#isShowMaxBorder()}.
*/
@Test
public void testIsShowMaxBorder() {
assertTrue(settings.isShowMaxBorder());
}

/**
* Test method for {@link world.bentobox.border.Settings#setShowMaxBorder(boolean)}.
*/
@Test
public void testSetShowMaxBorder() {
settings.setShowMaxBorder(false);
assertFalse(settings.isShowMaxBorder());
}

/**
* Test method for {@link world.bentobox.border.Settings#isUseWbapi()}.
*/
@Test
public void testIsUseWbapi() {
assertFalse(settings.isUseWbapi());
}

/**
* Test method for {@link world.bentobox.border.Settings#setUseWbapi(boolean)}.
*/
@Test
public void testSetUseWbapi() {
settings.setUseWbapi(true);
assertTrue(settings.isUseWbapi());
}

/**
* Test method for {@link world.bentobox.border.Settings#isReturnTeleport()}.
*/
@Test
public void testIsReturnTeleport() {
assertTrue(settings.isReturnTeleport());
}

/**
* Test method for {@link world.bentobox.border.Settings#setReturnTeleport(boolean)}.
*/
@Test
public void testSetReturnTeleport() {
settings.setReturnTeleport(false);
assertFalse(settings.isReturnTeleport());
}

}

0 comments on commit 2450a40

Please sign in to comment.