chore: pushing everything

This commit is contained in:
rabiaa 2023-11-24 23:10:09 -04:00
parent 708d14d5d2
commit d9ad5b330b
17 changed files with 308 additions and 165 deletions

View File

@ -1,10 +1,12 @@
package world.bentobox.bentobox;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.server.ServerCommandEvent;
@ -33,6 +35,7 @@ import world.bentobox.bentobox.listeners.JoinLeaveListener;
import world.bentobox.bentobox.listeners.PanelListenerManager;
import world.bentobox.bentobox.listeners.PrimaryIslandListener;
import world.bentobox.bentobox.listeners.StandardSpawnProtectionListener;
import world.bentobox.bentobox.listeners.flags.clicklisteners.CommandRankClickListener;
import world.bentobox.bentobox.listeners.teleports.EntityTeleportListener;
import world.bentobox.bentobox.listeners.teleports.PlayerTeleportListener;
import world.bentobox.bentobox.managers.AddonsManager;
@ -594,4 +597,16 @@ public class BentoBox extends JavaPlugin implements Listener {
public boolean isShutdown() {
return shutdown;
}
public List<String> getCommands(World world) {
List<String> result = new ArrayList<>();
getCommandsManager().getCommands().values().stream()
.filter(c -> c.getWorld() != null && c.getWorld().equals(world))
.forEach(c -> result.addAll(CommandRankClickListener.getCmdRecursively("/", c)));
if (result.size() > 49) {
logError("Number of rank setting commands is too big for GUI");
result.subList(49, result.size()).clear();
}
return result;
}
}

View File

@ -107,7 +107,7 @@ public class AddonClassLoader extends URLClassLoader {
throw new InvalidAddonDescriptionException("Missing 'authors' tag. At least one author must be listed in addon.yml");
}
AddonDescription.Builder builder = new AddonDescription.Builder(
AddonDescriptionBuilder builder = new AddonDescriptionBuilder(
// Mandatory elements
Objects.requireNonNull(data.getString("main")),
Objects.requireNonNull(data.getString("name")),

View File

@ -45,7 +45,7 @@ public final class AddonDescription {
*/
private final @NonNull String apiVersion;
private AddonDescription(@NonNull Builder builder) {
AddonDescription(@NonNull AddonDescriptionBuilder builder) {
this.main = builder.main;
this.name = builder.name;
this.version = builder.version;
@ -163,124 +163,124 @@ public final class AddonDescription {
return permissions;
}
public static class Builder {
@NonNull
private final String main;
@NonNull
private final String name;
@NonNull
private final String version;
@NonNull
private String description = "";
@NonNull
private List<String> authors = new ArrayList<>();
@NonNull
private List<String> dependencies = new ArrayList<>();
@NonNull
private List<String> softDependencies = new ArrayList<>();
private boolean metrics = true;
@NonNull
private String repository = "";
@NonNull
private Material icon = Material.PAPER;
@NonNull
private String apiVersion = "1";
@Nullable
private ConfigurationSection permissions;
/**
* @since 1.1
*/
public Builder(@NonNull String main, @NonNull String name, @NonNull String version) {
this.main = main;
this.name = name;
this.version = version;
}
@NonNull
public Builder description(@NonNull String description) {
this.description = description;
return this;
}
@NonNull
public Builder authors(@NonNull String... authors) {
this.authors = Arrays.asList(authors);
return this;
}
@NonNull
public Builder dependencies(@NonNull List<String> dependencies) {
this.dependencies = dependencies;
return this;
}
@NonNull
public Builder softDependencies(@NonNull List<String> softDependencies) {
this.softDependencies = softDependencies;
return this;
}
/**
* @since 1.1
*/
@NonNull
public Builder metrics(boolean metrics) {
this.metrics = metrics;
return this;
}
/**
* Sets the name of the GitHub repository.
* Must follow the {@code Owner/Name} format.
* @since 1.3.0
*/
@NonNull
public Builder repository(@NonNull String repository) {
this.repository = repository;
return this;
}
/**
* Sets the icon representing the addon.
* @param icon Material to set as the icon. Default is {@link Material#PAPER}.
* @since 1.5.0
*/
@NonNull
public Builder icon(@NonNull Material icon) {
this.icon = icon;
return this;
}
/**
* Sets the minimum BentoBox version this addon requires in order to work properly.
* @param apiVersion the minimum BentoBox version this addon requires in order to work properly.
* @since 1.11.0
* @see AddonDescription#getApiVersion()
*/
@NonNull
public Builder apiVersion(@NonNull String apiVersion) {
this.apiVersion = apiVersion;
return this;
}
@NonNull
public AddonDescription build() {
return new AddonDescription(this);
}
/**
* Sets the permission config section. Taken from the addon.yml
* @param permissions - YAML configuration section
* @return Builder
* @since 1.13.0
*/
@NonNull
public Builder permissions(ConfigurationSection permissions) {
this.permissions = permissions;
return this;
}
}
// public static class Builder {
// @NonNull
// private final String main;
// @NonNull
// private final String name;
// @NonNull
// private final String version;
// @NonNull
// private String description = "";
// @NonNull
// private List<String> authors = new ArrayList<>();
// @NonNull
// private List<String> dependencies = new ArrayList<>();
// @NonNull
// private List<String> softDependencies = new ArrayList<>();
// private boolean metrics = true;
// @NonNull
// private String repository = "";
// @NonNull
// private Material icon = Material.PAPER;
// @NonNull
// private String apiVersion = "1";
// @Nullable
// private ConfigurationSection permissions;
//
// /**
// * @since 1.1
// */
// public Builder(@NonNull String main, @NonNull String name, @NonNull String version) {
// this.main = main;
// this.name = name;
// this.version = version;
// }
//
// @NonNull
// public Builder description(@NonNull String description) {
// this.description = description;
// return this;
// }
//
// @NonNull
// public Builder authors(@NonNull String... authors) {
// this.authors = Arrays.asList(authors);
// return this;
// }
//
// @NonNull
// public Builder dependencies(@NonNull List<String> dependencies) {
// this.dependencies = dependencies;
// return this;
// }
//
// @NonNull
// public Builder softDependencies(@NonNull List<String> softDependencies) {
// this.softDependencies = softDependencies;
// return this;
// }
//
// /**
// * @since 1.1
// */
// @NonNull
// public Builder metrics(boolean metrics) {
// this.metrics = metrics;
// return this;
// }
//
// /**
// * Sets the name of the GitHub repository.
// * Must follow the {@code Owner/Name} format.
// * @since 1.3.0
// */
// @NonNull
// public Builder repository(@NonNull String repository) {
// this.repository = repository;
// return this;
// }
//
// /**
// * Sets the icon representing the addon.
// * @param icon Material to set as the icon. Default is {@link Material#PAPER}.
// * @since 1.5.0
// */
// @NonNull
// public Builder icon(@NonNull Material icon) {
// this.icon = icon;
// return this;
// }
//
// /**
// * Sets the minimum BentoBox version this addon requires in order to work properly.
// * @param apiVersion the minimum BentoBox version this addon requires in order to work properly.
// * @since 1.11.0
// * @see AddonDescription#getApiVersion()
// */
// @NonNull
// public Builder apiVersion(@NonNull String apiVersion) {
// this.apiVersion = apiVersion;
// return this;
// }
//
// @NonNull
// public AddonDescription build() {
// return new AddonDescription(this);
// }
//
// /**
// * Sets the permission config section. Taken from the addon.yml
// * @param permissions - YAML configuration section
// * @return Builder
// * @since 1.13.0
// */
// @NonNull
// public Builder permissions(ConfigurationSection permissions) {
// this.permissions = permissions;
// return this;
// }
// }
/* (non-Javadoc)
* @see java.lang.Object#toString()

View File

@ -0,0 +1,129 @@
package world.bentobox.bentobox.api.addons;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class AddonDescriptionBuilder {
@NonNull
final String main;
@NonNull
final String name;
@NonNull
final String version;
@NonNull
String description = "";
@NonNull
List<String> authors = new ArrayList<>();
@NonNull
List<String> dependencies = new ArrayList<>();
@NonNull
List<String> softDependencies = new ArrayList<>();
boolean metrics = true;
@NonNull
String repository = "";
@NonNull
Material icon = Material.PAPER;
@NonNull
String apiVersion = "1";
@Nullable
ConfigurationSection permissions;
/**
* @since 1.1
*/
public AddonDescriptionBuilder(@NonNull String main, @NonNull String name, @NonNull String version) {
this.main = main;
this.name = name;
this.version = version;
}
@NonNull
public AddonDescriptionBuilder description(@NonNull String description) {
this.description = description;
return this;
}
@NonNull
public AddonDescriptionBuilder authors(@NonNull String... authors) {
this.authors = Arrays.asList(authors);
return this;
}
@NonNull
public AddonDescriptionBuilder dependencies(@NonNull List<String> dependencies) {
this.dependencies = dependencies;
return this;
}
@NonNull
public AddonDescriptionBuilder softDependencies(@NonNull List<String> softDependencies) {
this.softDependencies = softDependencies;
return this;
}
/**
* @since 1.1
*/
@NonNull
public AddonDescriptionBuilder metrics(boolean metrics) {
this.metrics = metrics;
return this;
}
/**
* Sets the name of the GitHub repository.
* Must follow the {@code Owner/Name} format.
* @since 1.3.0
*/
@NonNull
public AddonDescriptionBuilder repository(@NonNull String repository) {
this.repository = repository;
return this;
}
/**
* Sets the icon representing the addon.
* @param icon Material to set as the icon. Default is {@link Material#PAPER}.
* @since 1.5.0
*/
@NonNull
public AddonDescriptionBuilder icon(@NonNull Material icon) {
this.icon = icon;
return this;
}
/**
* Sets the minimum BentoBox version this addon requires in order to work properly.
* @param apiVersion the minimum BentoBox version this addon requires in order to work properly.
* @since 1.11.0
* @see AddonDescription#getApiVersion()
*/
@NonNull
public AddonDescriptionBuilder apiVersion(@NonNull String apiVersion) {
this.apiVersion = apiVersion;
return this;
}
@NonNull
public AddonDescription build() {
return new AddonDescription(this);
}
/**
* Sets the permission config section. Taken from the addon.yml
* @param permissions - YAML configuration section
* @return Builder
* @since 1.13.0
*/
@NonNull
public AddonDescriptionBuilder permissions(ConfigurationSection permissions) {
this.permissions = permissions;
return this;
}
}

View File

@ -77,7 +77,7 @@ public class CommandRankClickListener implements ClickHandler {
if (panel.getName().equals(panelName)) {
// This is a click on the panel
// Slot relates to the command
String c = getCommands(panel.getWorld().orElse(user.getWorld())).get(slot);
String c = plugin.getCommands(panel.getWorld().orElse(user.getWorld())).get(slot);
// Apply change to panel
panel.getInventory().setItem(slot, getPanelItem(c, user, panel.getWorld().orElse(user.getWorld())).getItem());
} else {
@ -94,7 +94,7 @@ public class CommandRankClickListener implements ClickHandler {
PanelBuilder pb = new PanelBuilder();
pb.user(user).name(panelName).world(world);
// Make panel items
getCommands(world).forEach(c -> pb.item(getPanelItem(c, user, world)));
plugin.getCommands(world).forEach(c -> pb.item(getPanelItem(c, user, world)));
pb.build();
}
@ -126,17 +126,7 @@ public class CommandRankClickListener implements ClickHandler {
return pib.build();
}
private List<String> getCommands(World world) {
List<String> result = new ArrayList<>();
plugin.getCommandsManager().getCommands().values().stream()
.filter(c -> c.getWorld() != null && c.getWorld().equals(world))
.forEach(c -> result.addAll(getCmdRecursively("/", c)));
if (result.size() > 49) {
plugin.logError("Number of rank setting commands is too big for GUI");
result.subList(49, result.size()).clear();
}
return result;
}
/**
* Recursively traverses the command tree looking for any configurable rank command and returns a string list of commands
@ -144,7 +134,7 @@ public class CommandRankClickListener implements ClickHandler {
* @param cc - composite command
* @return string list of commands
*/
private List<String> getCmdRecursively(String labels, CompositeCommand cc) {
public static List<String> getCmdRecursively(String labels, CompositeCommand cc) {
List<String> result = new ArrayList<>();
String newLabel = labels + cc.getName();
if (cc.isConfigurableRankCommand()) {

View File

@ -29,7 +29,7 @@ public class AddonDescriptionTest {
@Before
public void setUp() throws Exception {
configSec = new YamlConfiguration();
ad = new AddonDescription.Builder("main", "name", "version")
ad = new AddonDescriptionBuilder("main", "name", "version")
.apiVersion("api")
.authors("tastybento", "poslovitch")
.dependencies(List.of("dep1", "dep2"))

View File

@ -172,7 +172,7 @@ public class AddonTest {
@Test
public void testGetDescription() {
AddonDescription d = new AddonDescription.Builder("main", "name", "1.0").build();
AddonDescription d = new AddonDescriptionBuilder("main", "name", "1.0").build();
assertNull(test.getDescription());
test.setDescription(d);
assertEquals(d, test.getDescription());
@ -262,7 +262,7 @@ public class AddonTest {
@Test
public void testSetDescription() {
AddonDescription desc = new AddonDescription.Builder("main", "name", "2.0").build();
AddonDescription desc = new AddonDescriptionBuilder("main", "name", "2.0").build();
test.setDescription(desc);
assertEquals(desc, test.getDescription());
}

View File

@ -42,6 +42,7 @@ import com.google.common.collect.ImmutableSet.Builder;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
import world.bentobox.bentobox.api.addons.AddonDescription;
import world.bentobox.bentobox.api.addons.AddonDescriptionBuilder;
import world.bentobox.bentobox.api.addons.GameModeAddon;
import world.bentobox.bentobox.api.commands.CompositeCommand;
import world.bentobox.bentobox.api.events.IslandBaseEvent;
@ -181,7 +182,7 @@ public class IslandResetCommandTest {
// Addon
GameModeAddon addon1 = mock(GameModeAddon.class);
AddonDescription desc = new AddonDescription.Builder("main", "BSkyBlock", "1.0.0").build();
AddonDescription desc = new AddonDescriptionBuilder("main", "BSkyBlock", "1.0.0").build();
when(addon1.getDescription()).thenReturn(desc);
when(ic.getAddon()).thenReturn(addon1);

View File

@ -39,6 +39,7 @@ import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
import world.bentobox.bentobox.api.addons.Addon;
import world.bentobox.bentobox.api.addons.AddonDescription;
import world.bentobox.bentobox.api.addons.AddonDescriptionBuilder;
import world.bentobox.bentobox.api.commands.CompositeCommand;
import world.bentobox.bentobox.api.localization.TextVariables;
import world.bentobox.bentobox.api.user.User;
@ -128,7 +129,7 @@ public class IslandTeamKickCommandTest extends RanksManagerBeforeClassTest {
Optional<CompositeCommand> optionalCommand = Optional.of(subCommand);
when(ic.getSubCommand(Mockito.anyString())).thenReturn(optionalCommand);
when(ic.getAddon()).thenReturn(addon);
AddonDescription desc = new AddonDescription.Builder("main", "name", "version").build();
AddonDescription desc = new AddonDescriptionBuilder("main", "name", "version").build();
when(addon.getDescription()).thenReturn(desc);
when(ic.getWorld()).thenReturn(world);

View File

@ -58,7 +58,7 @@ import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
import world.bentobox.bentobox.api.addons.Addon;
import world.bentobox.bentobox.api.addons.AddonDescription;
import world.bentobox.bentobox.api.addons.AddonDescription.Builder;
import world.bentobox.bentobox.api.addons.AddonDescriptionBuilder;
import world.bentobox.bentobox.api.addons.GameModeAddon;
import world.bentobox.bentobox.api.metadata.MetaDataValue;
import world.bentobox.bentobox.database.objects.Players;
@ -335,7 +335,7 @@ public class UserTest {
@Test
public void testSendMessageOverrideWithAddon() {
GameModeAddon addon = mock(GameModeAddon.class);
AddonDescription desc = new AddonDescription.Builder("mock", "name", "1.0").build();
AddonDescription desc = new AddonDescriptionBuilder("mock", "name", "1.0").build();
when(addon.getDescription()).thenReturn(desc);
// Set addon context
user.setAddon(addon);
@ -743,7 +743,7 @@ public class UserTest {
World world = mock(World.class);
GameModeAddon gameAddon = mock(GameModeAddon.class);
AddonDescription desc = new Builder("main", "gameAddon", "1.0").build();
AddonDescription desc = new AddonDescriptionBuilder("main", "gameAddon", "1.0").build();
when(gameAddon.getDescription()).thenReturn(desc);
when(iwm.getAddon(any(World.class))).thenReturn(Optional.of(gameAddon));
assertEquals("mock §atranslation §btastybento", p.getTranslation(world, "test.ref", "[test]", "tastybento"));
@ -785,7 +785,7 @@ public class UserTest {
World world = mock(World.class);
GameModeAddon gameAddon = mock(GameModeAddon.class);
AddonDescription desc = new Builder("main", "gameAddon", "1.0").build();
AddonDescription desc = new AddonDescriptionBuilder("main", "gameAddon", "1.0").build();
when(gameAddon.getDescription()).thenReturn(desc);
when(iwm.getAddon(any(World.class))).thenReturn(Optional.of(gameAddon));
p.notify(world, TEST_TRANSLATION, "[test]", "tastybento");
@ -927,7 +927,7 @@ public class UserTest {
User.clearUsers();
User p = User.getInstance(player);
Addon addon = mock(Addon.class);
when(addon.getDescription()).thenReturn(new Builder("main", "gameAddon", "1.0").build());
when(addon.getDescription()).thenReturn(new AddonDescriptionBuilder("main", "gameAddon", "1.0").build());
p.setAddon(addon);
p.getTranslation(TEST_TRANSLATION);
verify(addon).getDescription();

View File

@ -28,6 +28,7 @@ import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
import world.bentobox.bentobox.api.addons.Addon;
import world.bentobox.bentobox.api.addons.AddonDescription;
import world.bentobox.bentobox.api.addons.AddonDescriptionBuilder;
import world.bentobox.bentobox.api.commands.CompositeCommand;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.listeners.PanelListenerManager;
@ -71,10 +72,10 @@ public class BentoBoxReloadCommandTest {
when(plugin.getAddonsManager()).thenReturn(am);
// Addons
Addon addon1 = mock(Addon.class);
AddonDescription desc = new AddonDescription.Builder("main", "BSkyBlock", "1.0.0").build();
AddonDescription desc = new AddonDescriptionBuilder("main", "BSkyBlock", "1.0.0").build();
when(addon1.getDescription()).thenReturn(desc);
Addon addon2 = mock(Addon.class);
AddonDescription desc2 = new AddonDescription.Builder("main", "AcidIsland", "1.0.0").build();
AddonDescription desc2 = new AddonDescriptionBuilder("main", "AcidIsland", "1.0.0").build();
when(addon2.getDescription()).thenReturn(desc2);
// Linking
Optional<Addon> optionalAddon1 = Optional.of(addon1);

View File

@ -32,6 +32,7 @@ import me.clip.placeholderapi.PlaceholderAPIPlugin;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.addons.Addon;
import world.bentobox.bentobox.api.addons.AddonDescription;
import world.bentobox.bentobox.api.addons.AddonDescriptionBuilder;
import world.bentobox.bentobox.api.addons.GameModeAddon;
import world.bentobox.bentobox.api.placeholders.PlaceholderReplacer;
import world.bentobox.bentobox.api.placeholders.placeholderapi.BentoBoxPlaceholderExpansion;
@ -75,7 +76,7 @@ public class PlaceholderAPIHookTest {
when(plugin.getIWM()).thenReturn(iwm);
when(iwm.getAddon(any())).thenReturn(Optional.of(gma));
// Desc
AddonDescription desc = new AddonDescription.Builder("main", "name", "1.0").build();
AddonDescription desc = new AddonDescriptionBuilder("main", "name", "1.0").build();
when(addon.getDescription()).thenReturn(desc);
when(gma.getDescription()).thenReturn(desc);
// PlaceholderAPI

View File

@ -42,6 +42,7 @@ import world.bentobox.bentobox.Settings;
import world.bentobox.bentobox.api.addons.Addon;
import world.bentobox.bentobox.api.addons.Addon.State;
import world.bentobox.bentobox.api.addons.AddonDescription;
import world.bentobox.bentobox.api.addons.AddonDescriptionBuilder;
import world.bentobox.bentobox.api.addons.GameModeAddon;
import world.bentobox.bentobox.api.addons.exceptions.InvalidAddonDescriptionException;
import world.bentobox.bentobox.api.configuration.WorldSettings;
@ -255,7 +256,7 @@ public class AddonsManagerTest {
@Test
public void testIsAddonCompatibleWithBentoBoxSnapshotNoAPIVersion() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertTrue(am.isAddonCompatibleWithBentoBox(addon, "1.0.1-SNAPSHOT-b1642"));
}
@ -266,7 +267,7 @@ public class AddonsManagerTest {
@Test
public void testIsAddonCompatibleWithBentoBoxReleaseAPIVersion() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.1").apiVersion("1.0.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.1").apiVersion("1.0.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertTrue(am.isAddonCompatibleWithBentoBox(addon, "1.0.1"));
}
@ -277,7 +278,7 @@ public class AddonsManagerTest {
@Test
public void testIsAddonCompatibleWithBentoBoxSnapshotAPIVersion() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.1").apiVersion("1.0.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.1").apiVersion("1.0.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertTrue(am.isAddonCompatibleWithBentoBox(addon, "1.0.1-SNAPSHOT-b1642"));
}
@ -288,7 +289,7 @@ public class AddonsManagerTest {
@Test
public void testIsAddonCompatibleWithBentoBoxReleaseNoAPIVersion() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertTrue(am.isAddonCompatibleWithBentoBox(addon, "1.0.1"));
}
@ -299,7 +300,7 @@ public class AddonsManagerTest {
@Test
public void testIsAddonCompatibleWithBentoBoxSnapshotAPIVersionVariableDigits() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.1").apiVersion("1.2.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.1").apiVersion("1.2.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertFalse(am.isAddonCompatibleWithBentoBox(addon, "1.2-SNAPSHOT-b1642"));
}
@ -310,7 +311,7 @@ public class AddonsManagerTest {
@Test
public void testIsAddonCompatibleWithBentoBoxOldSnapshot() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.0").apiVersion("1.11.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.0").apiVersion("1.11.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertFalse(am.isAddonCompatibleWithBentoBox(addon, "1.0.1-SNAPSHOT-b1642"));
}
@ -321,7 +322,7 @@ public class AddonsManagerTest {
@Test
public void testIsAddonCompatibleWithBentoBoxOldRelease() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.0").apiVersion("1.11.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.0").apiVersion("1.11.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertFalse(am.isAddonCompatibleWithBentoBox(addon, "1.0.1"));
}
@ -332,7 +333,7 @@ public class AddonsManagerTest {
@Test
public void testIsAddonCompatibleWithBentoBoxOldReleaseLong() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.0").apiVersion("1.11.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.0").apiVersion("1.11.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertTrue(am.isAddonCompatibleWithBentoBox(addon, "1.11.1.11.1.1"));
}
@ -343,7 +344,7 @@ public class AddonsManagerTest {
@Test
public void testIsAddonCompatibleWithBentoBoxOldReleaseLongAPI() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.0").apiVersion("1.11.1.0.0.0.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.0").apiVersion("1.11.1.0.0.0.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertFalse(am.isAddonCompatibleWithBentoBox(addon, "1.11.1"));
}
@ -355,7 +356,7 @@ public class AddonsManagerTest {
@Test
public void testIsAddonCompatibleWithBentoBoxNewRelease() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.0").apiVersion("1.13.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.0").apiVersion("1.13.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertTrue(am.isAddonCompatibleWithBentoBox(addon, "1.14.0-SNAPSHOT-b1777"));
}
@ -366,7 +367,7 @@ public class AddonsManagerTest {
@Test
public void testSetPermsNoPerms() {
Addon addon = mock(Addon.class);
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "Addon-name", "1.0.0").apiVersion("1.11.1.0.0.0.1").build();
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "Addon-name", "1.0.0").apiVersion("1.11.1.0.0.0.1").build();
when(addon.getDescription()).thenReturn(addonDesc);
assertFalse(am.setPerms(addon));
}
@ -383,7 +384,7 @@ public class AddonsManagerTest {
YamlConfiguration config = new YamlConfiguration();
config.loadFromString(perms);
GameModeAddon addon = new MyGameMode();
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "mygame", "1.0.0").apiVersion("1.11.1.0.0.0.1")
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "mygame", "1.0.0").apiVersion("1.11.1.0.0.0.1")
.permissions(config)
.build();
addon.setDescription(addonDesc);
@ -405,7 +406,7 @@ public class AddonsManagerTest {
YamlConfiguration config = new YamlConfiguration();
config.loadFromString(perms);
GameModeAddon addon = new MyGameMode();
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "mygame", "1.0.0").apiVersion("1.11.1.0.0.0.1")
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "mygame", "1.0.0").apiVersion("1.11.1.0.0.0.1")
.permissions(config)
.build();
addon.setDescription(addonDesc);
@ -446,7 +447,7 @@ public class AddonsManagerTest {
YamlConfiguration config = new YamlConfiguration();
config.loadFromString(perms);
GameModeAddon addon = new MyGameMode();
AddonDescription addonDesc = new AddonDescription.Builder("main.class", "mygame", "1.0.0").apiVersion("1.11.1.0.0.0.1")
AddonDescription addonDesc = new AddonDescriptionBuilder("main.class", "mygame", "1.0.0").apiVersion("1.11.1.0.0.0.1")
.permissions(config)
.build();
addon.setDescription(addonDesc);

View File

@ -48,6 +48,7 @@ import org.powermock.modules.junit4.PowerMockRunner;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.addons.Addon;
import world.bentobox.bentobox.api.addons.AddonDescription;
import world.bentobox.bentobox.api.addons.AddonDescriptionBuilder;
import world.bentobox.bentobox.api.addons.GameModeAddon;
import world.bentobox.bentobox.api.localization.TextVariables;
import world.bentobox.bentobox.api.user.User;
@ -162,7 +163,7 @@ public class BlueprintsManagerTest {
when(addon.getOverWorld()).thenReturn(world);
when(addon.getPermissionPrefix()).thenReturn("bskyblock.");
// Desc
AddonDescription desc = new AddonDescription.Builder("main", "name", "1.0").build();
AddonDescription desc = new AddonDescriptionBuilder("main", "name", "1.0").build();
when(addon.getDescription()).thenReturn(desc);
}

View File

@ -38,6 +38,7 @@ import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
import world.bentobox.bentobox.api.addons.Addon;
import world.bentobox.bentobox.api.addons.AddonDescription;
import world.bentobox.bentobox.api.addons.AddonDescriptionBuilder;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.util.Util;
@ -289,7 +290,7 @@ public class LocalesManagerTest {
AddonsManager am = mock(AddonsManager.class);
List<Addon> none = new ArrayList<>();
Addon addon = mock(Addon.class);
AddonDescription desc = new AddonDescription.Builder("", "AcidIsland", "1.0").build();
AddonDescription desc = new AddonDescriptionBuilder("", "AcidIsland", "1.0").build();
when(addon.getDescription()).thenReturn(desc);
// Create a tmp folder to jar up
File localeDir = new File(LOCALE_FOLDER);

View File

@ -21,6 +21,7 @@ import org.powermock.modules.junit4.PowerMockRunner;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.addons.AddonDescription;
import world.bentobox.bentobox.api.addons.AddonDescriptionBuilder;
import world.bentobox.bentobox.api.addons.GameModeAddon;
import world.bentobox.bentobox.api.hooks.Hook;
import world.bentobox.bentobox.hooks.placeholders.PlaceholderAPIHook;
@ -48,7 +49,7 @@ public class PlaceholdersManagerTest {
public void setUp() throws Exception {
// Addon
@NonNull
AddonDescription desc = new AddonDescription.Builder("main", "bskyblock", "1.0").build();
AddonDescription desc = new AddonDescriptionBuilder("main", "bskyblock", "1.0").build();
when(addon.getDescription()).thenReturn(desc);
when(plugin.getPlaceholdersManager()).thenReturn(pm);

View File

@ -39,6 +39,7 @@ import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.addons.AddonDescription;
import world.bentobox.bentobox.api.addons.AddonDescriptionBuilder;
import world.bentobox.bentobox.api.addons.GameModeAddon;
import world.bentobox.bentobox.api.localization.TextVariables;
import world.bentobox.bentobox.api.user.User;
@ -92,7 +93,7 @@ public class DefaultPasteUtilTest {
public void setUp() throws Exception {
// Set up plugin
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
AddonDescription desc = new AddonDescription.Builder("", "", "").build();
AddonDescription desc = new AddonDescriptionBuilder("", "", "").build();
when(addon.getDescription()).thenReturn(desc);
when(plugin.getIWM()).thenReturn(iwm);
when(iwm.getAddon(any())).thenReturn(Optional.of(addon));