Use control panel if it exists. (#260)

* Use control panel if it exists.

* Added config option for use-control-panel

* Updated copyright date on About command.

* Fixes test
This commit is contained in:
tastybento 2020-04-18 14:44:30 -07:00 committed by GitHub
parent 981f28e230
commit 812a9727df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 4 deletions

View File

@ -40,6 +40,10 @@ public class Settings implements WorldSettings {
@ConfigEntry(path = "bskyblock.command.admin", since = "1.3.0")
private String adminCommand = "bsbadmin bsb skyblockadmin sbadmin sba";
@ConfigComment("Use control panel if it exists (ControlPanel addon must be in addons)")
@ConfigEntry(path = "bskyblock.use-control-panel", since = "1.13.0")
private boolean useControlPanel = false;
/* WORLD */
@ConfigComment("Friendly name for this world. Used in admin commands. Must be a single word")
@ConfigEntry(path = "world.friendly-name")
@ -1608,4 +1612,18 @@ public class Settings implements WorldSettings {
public void setMaxTrustSize(int maxTrustSize) {
this.maxTrustSize = maxTrustSize;
}
/**
* @return the useControlPanel
*/
public boolean isUseControlPanel() {
return useControlPanel;
}
/**
* @param useControlPanel the useControlPanel to set
*/
public void setUseControlPanel(boolean useControlPanel) {
this.useControlPanel = useControlPanel;
}
}

View File

@ -23,7 +23,7 @@ public class IslandAboutCommand extends CompositeCommand {
@Override
public boolean execute(User user, String label, List<String> args) {
user.sendRawMessage("About " + getAddon().getDescription().getName() + " " + getAddon().getDescription().getVersion() + ":");
user.sendRawMessage("Copyright (c) 2017 - 2019 tastybento, Poslovitch");
user.sendRawMessage("Copyright (c) 2017 - 2020 tastybento, Poslovitch");
user.sendRawMessage("See https://www.eclipse.org/legal/epl-2.0/");
user.sendRawMessage("for license information.");
return true;

View File

@ -73,6 +73,10 @@ public class IslandCommand extends CompositeCommand {
if (args.isEmpty()) {
// If user has an island, go
if (getPlugin().getIslands().getIsland(getWorld(), user.getUniqueId()) != null) {
if (((BSkyBlock)getAddon()).getSettings().isUseControlPanel()
&& getSubCommand("controlpanel").isPresent()) {
return getSubCommand("controlpanel").get().call(user, label, new ArrayList<>());
}
return getSubCommand("go").map(goCmd -> goCmd.call(user, goCmd.getLabel(), new ArrayList<>())).orElse(false);
}
// No islands currently

View File

@ -9,6 +9,8 @@ bskyblock:
# To define alias, just separate commands with white space.
# Added since 1.3.0.
admin: bsbadmin bsb skyblockadmin sbadmin sba
# Use control panel if it exists (ControlPanel addon must be in addons)
use-control-panel: false
world:
# Friendly name for this world. Used in admin commands. Must be a single word
friendly-name: BSkyBlock

View File

@ -33,7 +33,7 @@ public class IslandAboutCommandTest {
User user = mock(User.class);
c.execute(user, "", Collections.emptyList());
// Verify
Mockito.verify(user).sendRawMessage(Mockito.eq("Copyright (c) 2017 - 2019 tastybento, Poslovitch"));
Mockito.verify(user).sendRawMessage(Mockito.eq("Copyright (c) 2017 - 2020 tastybento, Poslovitch"));
Mockito.verify(user).sendRawMessage(Mockito.eq("About BSkyBlock 1.2.3:"));
}