Skip to content

Commit 96afc58

Browse files
committed
Version 0.14 finish, test phase now before publish.
1 parent 44e2129 commit 96afc58

14 files changed

Lines changed: 87 additions & 54 deletions

src/main/java/com/alihaine/bulmultiverse/BulMultiverse.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public void onDisable() {
6161

6262
private void setupDefaultCommands() {
6363
commandManager = new PaperCommandManager(this);
64+
commandManager.enableUnstableAPI("help");
6465
commandManager.registerCommand(new AddonsCommand());
6566
commandManager.registerCommand(new InfoCommand());
6667
commandManager.registerCommand(new ListCommand());
@@ -70,6 +71,7 @@ private void setupDefaultCommands() {
7071
commandManager.registerCommand(new CreateCommand());
7172
commandManager.registerCommand(new SetCommand());
7273
commandManager.registerCommand(new FlagsCommand());
74+
commandManager.registerCommand(new HelpCommand());
7375
}
7476

7577
private void updateChecker() {

src/main/java/com/alihaine/bulmultiverse/command/AddonsCommand.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
import com.alihaine.bulmultiverse.addon.BulMultiverseAddon;
66
import org.bukkit.command.CommandSender;
77

8-
@CommandAlias("bmv|bulmv|bulmultiverse")
9-
@CommandPermission("test")
10-
@Description("Display addons list or infos about a specified addon")
8+
@CommandAlias(BaseBmvCommand.commandRootAlias)
9+
@CommandPermission("bulmultiverse.addon")
1110
public class AddonsCommand extends BaseBmvCommand {
1211
@Subcommand("addon|addons")
12+
@Description("Display loaded addons")
13+
@Syntax("/bmv addon")
1314
public void onAddonList(CommandSender sender) {
1415
sender.sendMessage("§eLoaded addons: ");
1516
for (BulMultiverseAddon addon : addonManager.getAddonsList())
@@ -18,6 +19,8 @@ public void onAddonList(CommandSender sender) {
1819
}
1920

2021
@Subcommand("addon|addons")
22+
@Description("Display infos about a specified addon")
23+
@Syntax("/bmv addon [addon_name]")
2124
public void onAddonTarget(CommandSender sender, String addonName) {
2225
BulMultiverseAddon addon = BulMultiverse.getBulMultiverse().getAddonManager().getAddonFromName(addonName);
2326
if (addon == null) {

src/main/java/com/alihaine/bulmultiverse/command/BaseBmvCommand.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
package com.alihaine.bulmultiverse.command;
22

33
import co.aikar.commands.BaseCommand;
4+
import co.aikar.commands.annotation.CommandAlias;
5+
import co.aikar.commands.annotation.CommandPermission;
46
import co.aikar.commands.annotation.Default;
57
import co.aikar.commands.annotation.UnknownHandler;
68
import com.alihaine.bulmultiverse.BulMultiverse;
79
import com.alihaine.bulmultiverse.addon.AddonManager;
810
import com.alihaine.bulmultiverse.file.WorldsFile;
911
import com.alihaine.bulmultiverse.world.WorldDataManager;
1012
import com.alihaine.bulmultiverse.world.WorldOptionManager;
13+
import org.bukkit.Bukkit;
1114
import org.bukkit.command.CommandSender;
1215

16+
@CommandAlias(BaseBmvCommand.commandRootAlias)
17+
@CommandPermission("")
1318
public class BaseBmvCommand extends BaseCommand {
1419
/*
1520
* Commands may need to use these instances frequently
@@ -20,8 +25,13 @@ public class BaseBmvCommand extends BaseCommand {
2025
protected final WorldOptionManager worldOptionManager = BulMultiverse.getBulMultiverse().getWorldOptionManager();
2126
protected final AddonManager addonManager = BulMultiverse.getBulMultiverse().getAddonManager();
2227

28+
public static final String commandRootAlias = "bmv|bulmv|bulmultiverse";
29+
2330
@Default
31+
@CommandPermission("")
2432
public void onDefault(CommandSender sender) {
25-
sender.sendMessage("§cCsMissing arguments. Use /<cmd> help for info.");
33+
sender.sendMessage("§eBulMultiverse §8| §6Version: " + BulMultiverse.getBulMultiverse().getDescription().getVersion());
34+
sender.sendMessage("§dDiscord support §8| §5https://discord.com/invite/wxnTV68dX2");
35+
sender.sendMessage("§a/bmv help §8| §2Display all commands");
2636
}
2737
}

src/main/java/com/alihaine/bulmultiverse/command/CreateCommand.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.alihaine.bulmultiverse.command;
22

3-
import co.aikar.commands.annotation.CommandAlias;
4-
import co.aikar.commands.annotation.Description;
5-
import co.aikar.commands.annotation.Subcommand;
3+
import co.aikar.commands.annotation.*;
64
import com.alihaine.bulmultiverse.BulMultiverse;
75
import com.alihaine.bulmultiverse.file.ConfigFile;
86
import com.alihaine.bulmultiverse.file.Message;
@@ -14,10 +12,12 @@
1412
import java.util.Map;
1513

1614

17-
@CommandAlias("bmv|bulmv|bulmultiverse")
18-
@Description("Create a new world")
15+
@CommandAlias(BaseBmvCommand.commandRootAlias)
16+
@CommandPermission("bulmultiverse.create")
1917
public class CreateCommand extends BaseBmvCommand {
2018
@Subcommand("create")
19+
@Description("Create a new world")
20+
@Syntax("/bmv create [World Name] (Flags)")
2121
public void onCreate(CommandSender sender, String worldName, String[] flags) {
2222
Map<WorldOption, Object> convertToOptionString = new HashMap<>();
2323

src/main/java/com/alihaine/bulmultiverse/command/FlagsCommand.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package com.alihaine.bulmultiverse.command;
22

3-
import co.aikar.commands.annotation.CommandAlias;
4-
import co.aikar.commands.annotation.Description;
5-
import co.aikar.commands.annotation.Subcommand;
3+
import co.aikar.commands.annotation.*;
64
import com.alihaine.bulmultiverse.file.Message;
75
import org.bukkit.command.CommandSender;
86

9-
@CommandAlias("bmv|bulmv|bulmultiverse")
10-
@Description("Display all the available flags")
7+
@CommandAlias(BaseBmvCommand.commandRootAlias)
8+
@CommandPermission("bulmultiverse.flags")
119
public class FlagsCommand extends BaseBmvCommand {
1210
@Subcommand("flag|flags")
11+
@Description("Display all the available flags")
12+
@Syntax("/bmv flags")
1313
public void onFlags(CommandSender sender) {
1414
worldOptionManager.getAvailableOptionsList().forEach((value) -> {
1515
new Message("flags_pattern").
Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,28 @@
11
package com.alihaine.bulmultiverse.command;
22

3-
import co.aikar.commands.annotation.CommandAlias;
4-
import co.aikar.commands.annotation.Description;
3+
import co.aikar.commands.CommandHelp;
4+
import co.aikar.commands.HelpEntry;
5+
import co.aikar.commands.annotation.*;
6+
import com.alihaine.bulmultiverse.file.Message;
7+
import org.bukkit.Bukkit;
58
import org.bukkit.command.CommandSender;
69

7-
@CommandAlias("bmv|bulmv|bulmultiverse")
8-
@Description("Display the help menu")
10+
@CommandAlias(BaseBmvCommand.commandRootAlias)
911
public class HelpCommand extends BaseBmvCommand {
10-
public void onHelp(CommandSender sender) {
1112

13+
@Subcommand("help")
14+
@Description("Display the help menu")
15+
@Syntax("/bmv help")
16+
public void onHelp(CommandSender sender) {
17+
CommandHelp help = getCurrentCommandManager().generateCommandHelp("bmv");
18+
sender.sendMessage("§e§lBulMultiverse Commands:");
19+
for (HelpEntry entry : help.getHelpEntries()) {
20+
if (entry.getParameterSyntax().isEmpty() || entry.getDescription().isEmpty())
21+
continue;
22+
new Message("help_pattern").
23+
withPlaceHolder("usage", entry.getParameterSyntax()).
24+
withPlaceHolder("description", entry.getDescription()).
25+
sendMessage(sender);
26+
}
1227
}
1328
}

src/main/java/com/alihaine/bulmultiverse/command/InfoCommand.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
package com.alihaine.bulmultiverse.command;
22

3-
import co.aikar.commands.annotation.CommandAlias;
4-
import co.aikar.commands.annotation.CommandPermission;
5-
import co.aikar.commands.annotation.Description;
6-
import co.aikar.commands.annotation.Subcommand;
3+
import co.aikar.commands.annotation.*;
74
import com.alihaine.bulmultiverse.BulMultiverse;
85
import com.alihaine.bulmultiverse.file.Message;
96
import com.alihaine.bulmultiverse.world.WorldData;
107
import org.bukkit.command.CommandSender;
118
import org.bukkit.entity.Player;
129

13-
@CommandAlias("bmv|bulmv|bulmultiverse")
14-
@Description("Display infos about world")
10+
@CommandAlias(BaseBmvCommand.commandRootAlias)
11+
@CommandPermission("bulmultiverse.info")
1512
public class InfoCommand extends BaseBmvCommand {
1613
private WorldData getWorldData(String worldName, CommandSender sender) {
1714
WorldData worldData = worldDataManager.getWorldDataFromWorldName(worldName);
@@ -33,6 +30,8 @@ private void displayWorldData(WorldData worldData, CommandSender sender) {
3330
}
3431

3532
@Subcommand("info|infos")
33+
@Description("Display infos about world")
34+
@Syntax("/bmv info")
3635
public void onInfo(Player player) {
3736
String worldName = player.getWorld().getName();
3837
WorldData worldData = getWorldData(worldName, player);
@@ -41,6 +40,8 @@ public void onInfo(Player player) {
4140
}
4241

4342
@Subcommand("info|infos")
43+
@Description("Display infos about a specific world")
44+
@Syntax("/bmv info [world_name]")
4445
public void onInfoTarget(CommandSender sender, String worldName) {
4546
final WorldData worldData = getWorldData(worldName, sender);
4647
if (worldData != null)

src/main/java/com/alihaine/bulmultiverse/command/ListCommand.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package com.alihaine.bulmultiverse.command;
22

3-
import co.aikar.commands.annotation.CommandAlias;
4-
import co.aikar.commands.annotation.Description;
5-
import co.aikar.commands.annotation.Subcommand;
3+
import co.aikar.commands.annotation.*;
64
import org.bukkit.command.CommandSender;
75

8-
@CommandAlias("bmv|bulmv|bulmultiverse")
9-
@Description("List all the loaded worlds")
6+
@CommandAlias(BaseBmvCommand.commandRootAlias)
7+
@CommandPermission("bulmultiverse.list")
108
public class ListCommand extends BaseBmvCommand {
119
@Subcommand("l|list|lists")
10+
@Description("List all the loaded worlds")
11+
@Syntax("/bmv list")
1212
public void onList(CommandSender commandSender) {
1313
commandSender.sendMessage("§aLoaded worlds");
1414
worldDataManager.getWorldsData().forEach(worldData -> {

src/main/java/com/alihaine/bulmultiverse/command/LoadCommand.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
package com.alihaine.bulmultiverse.command;
22

3-
import co.aikar.commands.annotation.CommandAlias;
4-
import co.aikar.commands.annotation.Description;
5-
import co.aikar.commands.annotation.Subcommand;
3+
import co.aikar.commands.annotation.*;
64
import com.alihaine.bulmultiverse.file.Message;
75
import com.alihaine.bulmultiverse.world.WorldData;
86
import org.bukkit.Bukkit;
97
import org.bukkit.command.CommandSender;
108

119
import java.util.HashMap;
1210

13-
@CommandAlias("bmv|bulmv|bulmultiverse")
14-
@Description("Load existing world")
11+
@CommandAlias(BaseBmvCommand.commandRootAlias)
12+
@CommandPermission("bulmultiverse.load")
1513
public class LoadCommand extends BaseBmvCommand {
1614
@Subcommand("load")
15+
@Description("Load existing world")
16+
@Syntax("/bmv load [world_name]")
1717
public void onLoad(CommandSender sender, String targetWorld) {
1818
Bukkit.getConsoleSender().sendMessage(targetWorld);
1919

src/main/java/com/alihaine/bulmultiverse/command/SetCommand.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
package com.alihaine.bulmultiverse.command;
22

3-
import co.aikar.commands.annotation.CommandAlias;
4-
import co.aikar.commands.annotation.Description;
5-
import co.aikar.commands.annotation.Subcommand;
3+
import co.aikar.commands.annotation.*;
64
import com.alihaine.bulmultiverse.BulMultiverse;
75
import com.alihaine.bulmultiverse.file.Message;
86
import com.alihaine.bulmultiverse.world.WorldData;
97
import com.alihaine.bulmultiverse.world.WorldOption;
108
import org.bukkit.command.CommandSender;
119

12-
@CommandAlias("bmv|bulmv|bulmultiverse")
13-
@Description("Set a option/flag to the target world")
10+
@CommandAlias(BaseBmvCommand.commandRootAlias)
11+
@CommandPermission("bulmultiverse.set")
1412
public class SetCommand extends BaseBmvCommand {
1513
@Subcommand("set")
14+
@Description("Set a flag to the target world")
15+
@Syntax("/bmv set [world_name] [flag] [value]")
1616
public void onSet(CommandSender sender, String targetWorld, String flagName, String flagValue) {
1717
WorldData worldData = worldDataManager.getWorldDataFromWorldName(targetWorld);
1818
if (worldData == null) {

0 commit comments

Comments
 (0)