Skip to content

Commit 03c57e2

Browse files
authored
Task/command completions (#56)
* Add command completion for projectiles and designs arguments * Add wiki command and link
1 parent 576d1c4 commit 03c57e2

4 files changed

Lines changed: 144 additions & 135 deletions

File tree

Lines changed: 127 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -1,149 +1,141 @@
11
package at.pavlov.cannons.Enum;
22

3-
public enum MessageEnum
4-
{
5-
//Error Messages
6-
ErrorFiringInProgress ("Error.FiringInProgress", true),
7-
ErrorLoadingInProgress ("Error.LoadingInProgress", true),
8-
ErrorBarrelTooHot ("Error.BarrelTooHot", true),
9-
ErrorNotCleaned ("Error.NotCleaned", true),
10-
ErrorNoGunpowder ("Error.NoGunpowder", true),
11-
ErrorNoGunpowderNeeded ("Error.NoGunpowderNeeded", true),
12-
ErrorNoProjectile ("Error.NoProjectile", true),
13-
ErrorNoGunpowderInChest ("Error.NoGunpowderInChest", true),
14-
ErrorNoProjectileInChest ("Error.NoProjectileInChest", true),
15-
ErrorNotPushed ("Error.NotPushed", true),
16-
ErrorNoFlintAndSteel ("Error.NoFlintAndSteel", true),
17-
ErrorMaximumGunpowderLoaded ("Error.MaximumGunpowderLoaded", true),
18-
ErrorProjectileAlreadyLoaded ("Error.ProjectileAlreadyLoaded", true),
19-
ErrorCannonBuiltLimit ("Error.CannonBuiltLimit", true),
20-
ErrorNotTheOwner ("Error.NotTheOwner", true),
21-
ErrorDismantlingNotOwner ("Error.DismantlingNotOwner", true),
22-
ErrorMissingSign ("Error.MissingSign", true),
23-
ErrorNoMoney ("Error.NoMoney", true),
24-
ErrorNotPaid ("Error.NotPaid", true),
25-
ErrorAlreadyPaid ("Error.AlreadyPaid", true),
26-
ErrorPlayerNotFound ("Error.PlayerNotFound", true),
27-
ErrorGeneric ("Error.Generic", true),
3+
import lombok.Getter;
4+
5+
@Getter
6+
public enum MessageEnum {
7+
//Error Messages
8+
ErrorFiringInProgress("Error.FiringInProgress", true),
9+
ErrorLoadingInProgress("Error.LoadingInProgress", true),
10+
ErrorBarrelTooHot("Error.BarrelTooHot", true),
11+
ErrorNotCleaned("Error.NotCleaned", true),
12+
ErrorNoGunpowder("Error.NoGunpowder", true),
13+
ErrorNoGunpowderNeeded("Error.NoGunpowderNeeded", true),
14+
ErrorNoProjectile("Error.NoProjectile", true),
15+
ErrorNoGunpowderInChest("Error.NoGunpowderInChest", true),
16+
ErrorNoProjectileInChest("Error.NoProjectileInChest", true),
17+
ErrorNotPushed("Error.NotPushed", true),
18+
ErrorNoFlintAndSteel("Error.NoFlintAndSteel", true),
19+
ErrorMaximumGunpowderLoaded("Error.MaximumGunpowderLoaded", true),
20+
ErrorProjectileAlreadyLoaded("Error.ProjectileAlreadyLoaded", true),
21+
ErrorCannonBuiltLimit("Error.CannonBuiltLimit", true),
22+
ErrorNotTheOwner("Error.NotTheOwner", true),
23+
ErrorDismantlingNotOwner("Error.DismantlingNotOwner", true),
24+
ErrorMissingSign("Error.MissingSign", true),
25+
ErrorNoMoney("Error.NoMoney", true),
26+
ErrorNotPaid("Error.NotPaid", true),
27+
ErrorAlreadyPaid("Error.AlreadyPaid", true),
28+
ErrorPlayerNotFound("Error.PlayerNotFound", true),
29+
ErrorGeneric("Error.Generic", true),
2830

2931
//Commands
30-
CmdSelectCannon ("Commands.SelectCannon"),
31-
CmdSelectBlock ("Commands.SelectBlock"),
32-
CmdSelectCanceled ("Commands.SelectCanceled"),
33-
CmdCannonNotFound ("Commands.CannonNotFound"),
34-
CmdNoSentryWhitelist ("Commands.NoSentryWhitelist"),
35-
CmdAddedWhitelist ("Commands.AddedWhitelist"),
36-
CmdRemovedWhitelist ("Commands.RemovedWhitelist"),
37-
CmdRemovedWhitelistOwner ("Commands.RemovedWhitelistOwner"),
38-
CmdToggledTargetMob ("Commands.ToggledTargetMob"),
39-
CmdToggledTargetPlayer ("Commands.ToggledTargetPlayer"),
40-
CmdToggledTargetCannon ("Commands.ToggledTargetCannon"),
41-
CmdToggledTargetOther ("Commands.ToggledTargetOther"),
42-
CmdBuyCannon ("Commands.BuyCannon"),
43-
CmdPaidCannon ("Commands.PaidCannon"),
44-
CmdClaimCannonsStarted ("Commands.ClaimCannonsStarted"),
45-
CmdClaimCannonsFinished ("Commands.ClaimCannonsFinished"),
46-
47-
//Aiming
48-
SettingCombinedAngle ("Aiming.SettingCombinedAngle"),
49-
SettingVerticalAngleUp ("Aiming.SettingVerticalAngleUp"),
50-
SettingVerticalAngleDown ("Aiming.SettingVerticalAngleDown"),
51-
SettingHorizontalAngleRight ("Aiming.SettingHorizontalAngleRight"),
52-
SettingHorizontalAngleLeft ("Aiming.SettingHorizontalAngleLeft"),
53-
AimingModeEnabled ("Aiming.EnableAimingMode"),
54-
AimingModeDisabled ("Aiming.DisableAimingMode"),
55-
AimingModeTooFarAway ("Aiming.TooFarForAimingMode"),
56-
57-
//load
58-
loadProjectile ("Load.Projectile"),
59-
loadGunpowder ("Load.Gunpowder"),
60-
loadGunpowderAndProjectile ("Load.GunpowderAndProjectile"),
61-
loadGunpowderNormalLimit ("Load.loadGunpowderNormalLimit"),
62-
loadOverloadedGunpowder ("Load.OverloadedGunpowder"),
63-
64-
//cannon
65-
CannonCreated ("Cannon.Created"),
66-
CannonDismantled ("Cannon.Dismantled"),
67-
CannonDestroyed ("Cannon.Destroyed"),
68-
CannonsReseted ("Cannon.Reseted"),
69-
CannonFire ("Cannon.Fire"),
70-
CannonObserverAdded ("Cannon.ObserverAdded"),
71-
CannonObserverRemoved ("Cannon.ObserverRemoved"),
72-
CannonInfo ("Cannon.Info"),
73-
CannonRenameSuccess ("Cannon.RenameSuccess"),
74-
CannonRenameFail ("Cannon.RenameFail"),
32+
CmdSelectCannon("Commands.SelectCannon"),
33+
CmdSelectBlock("Commands.SelectBlock"),
34+
CmdSelectCanceled("Commands.SelectCanceled"),
35+
CmdCannonNotFound("Commands.CannonNotFound"),
36+
CmdNoSentryWhitelist("Commands.NoSentryWhitelist"),
37+
CmdAddedWhitelist("Commands.AddedWhitelist"),
38+
CmdRemovedWhitelist("Commands.RemovedWhitelist"),
39+
CmdRemovedWhitelistOwner("Commands.RemovedWhitelistOwner"),
40+
CmdToggledTargetMob("Commands.ToggledTargetMob"),
41+
CmdToggledTargetPlayer("Commands.ToggledTargetPlayer"),
42+
CmdToggledTargetCannon("Commands.ToggledTargetCannon"),
43+
CmdToggledTargetOther("Commands.ToggledTargetOther"),
44+
CmdBuyCannon("Commands.BuyCannon"),
45+
CmdPaidCannon("Commands.PaidCannon"),
46+
CmdClaimCannonsStarted("Commands.ClaimCannonsStarted"),
47+
CmdClaimCannonsFinished("Commands.ClaimCannonsFinished"),
48+
49+
//Aiming
50+
SettingCombinedAngle("Aiming.SettingCombinedAngle"),
51+
SettingVerticalAngleUp("Aiming.SettingVerticalAngleUp"),
52+
SettingVerticalAngleDown("Aiming.SettingVerticalAngleDown"),
53+
SettingHorizontalAngleRight("Aiming.SettingHorizontalAngleRight"),
54+
SettingHorizontalAngleLeft("Aiming.SettingHorizontalAngleLeft"),
55+
AimingModeEnabled("Aiming.EnableAimingMode"),
56+
AimingModeDisabled("Aiming.DisableAimingMode"),
57+
AimingModeTooFarAway("Aiming.TooFarForAimingMode"),
58+
59+
//load
60+
loadProjectile("Load.Projectile"),
61+
loadGunpowder("Load.Gunpowder"),
62+
loadGunpowderAndProjectile("Load.GunpowderAndProjectile"),
63+
loadGunpowderNormalLimit("Load.loadGunpowderNormalLimit"),
64+
loadOverloadedGunpowder("Load.OverloadedGunpowder"),
65+
66+
//cannon
67+
CannonCreated("Cannon.Created"),
68+
CannonDismantled("Cannon.Dismantled"),
69+
CannonDestroyed("Cannon.Destroyed"),
70+
CannonsReseted("Cannon.Reseted"),
71+
CannonFire("Cannon.Fire"),
72+
CannonObserverAdded("Cannon.ObserverAdded"),
73+
CannonObserverRemoved("Cannon.ObserverRemoved"),
74+
CannonInfo("Cannon.Info"),
75+
CannonRenameSuccess("Cannon.RenameSuccess"),
76+
CannonRenameFail("Cannon.RenameFail"),
7577

7678
//projectile
77-
ProjectileExplosion ("Projectile.Explosion"),
78-
ProjectileCanceled ("Projectile.Canceled"),
79+
ProjectileExplosion("Projectile.Explosion"),
80+
ProjectileCanceled("Projectile.Canceled"),
7981

8082
//heatManagement
81-
HeatManagementBurn ("HeatManagement.Burn"),
82-
HeatManagementCooling ("HeatManagement.Cooling"),
83-
HeatManagementInfo ("HeatManagement.Info"),
84-
HeatManagementCritical ("HeatManagement.Critical"),
85-
HeatManagementOverheated ("HeatManagement.Overheated"),
83+
HeatManagementBurn("HeatManagement.Burn"),
84+
HeatManagementCooling("HeatManagement.Cooling"),
85+
HeatManagementInfo("HeatManagement.Info"),
86+
HeatManagementCritical("HeatManagement.Critical"),
87+
HeatManagementOverheated("HeatManagement.Overheated"),
8688

8789
//ramrod
88-
RamrodCleaning ("Ramrod.Cleaning"),
89-
RamrodCleaningDone ("Ramrod.CleaningDone"),
90-
RamrodPushingProjectile ("Ramrod.PushingProjectile"),
91-
RamrodPushingProjectileDone ("Ramrod.PushingProjectileDone"),
90+
RamrodCleaning("Ramrod.Cleaning"),
91+
RamrodCleaningDone("Ramrod.CleaningDone"),
92+
RamrodPushingProjectile("Ramrod.PushingProjectile"),
93+
RamrodPushingProjectileDone("Ramrod.PushingProjectileDone"),
9294

9395
//imitatedEffects
94-
ImitatedEffectsEnabled ("ImitatedEffects.Enabled"),
95-
ImitatedEffectsDisabled ("ImitatedEffects.Disabled"),
96-
97-
//Permission
98-
PermissionErrorRedstone ("Permission.ErrorRedstone", true),
99-
PermissionErrorDismantle ("Permission.ErrorDismantle", true),
100-
PermissionErrorBuild ("Permission.ErrorBuild", true),
101-
PermissionErrorRename ("Permission.ErrorRename", true),
102-
PermissionErrorFire ("Permission.ErrorFire", true),
103-
PermissionErrorLoad ("Permission.ErrorLoad", true),
104-
PermissionErrorAdjust ("Permission.ErrorAdjust", true),
105-
PermissionErrorAutoaim ("Permission.ErrorAutoaim", true),
106-
PermissionErrorObserver ("Permission.ErrorObserver", true),
107-
PermissionErrorProjectile ("Permission.ErrorProjectile", true),
108-
PermissionErrorThermometer ("Permission.ErrorThermometer", true),
109-
PermissionErrorRamrod ("Permission.ErrorRamrod", true),
110-
111-
//Death
112-
DeathMessage1 ("Death.message1"),
113-
DeathMessage2 ("Death.message2"),
114-
DeathMessage3 ("Death.message3"),
115-
116-
//Help
117-
HelpText ("Help.Text"),
118-
HelpBuild ("Help.Build"),
119-
HelpFire ("Help.Fire"),
120-
HelpAdjust ("Help.Adjust");
121-
122-
123-
private final String str;
124-
private final boolean isError;
125-
126-
MessageEnum(String str, boolean e)
127-
{
128-
this.str = str;
96+
ImitatedEffectsEnabled("ImitatedEffects.Enabled"),
97+
ImitatedEffectsDisabled("ImitatedEffects.Disabled"),
98+
99+
//Permission
100+
PermissionErrorRedstone("Permission.ErrorRedstone", true),
101+
PermissionErrorDismantle("Permission.ErrorDismantle", true),
102+
PermissionErrorBuild("Permission.ErrorBuild", true),
103+
PermissionErrorRename("Permission.ErrorRename", true),
104+
PermissionErrorFire("Permission.ErrorFire", true),
105+
PermissionErrorLoad("Permission.ErrorLoad", true),
106+
PermissionErrorAdjust("Permission.ErrorAdjust", true),
107+
PermissionErrorAutoaim("Permission.ErrorAutoaim", true),
108+
PermissionErrorObserver("Permission.ErrorObserver", true),
109+
PermissionErrorProjectile("Permission.ErrorProjectile", true),
110+
PermissionErrorThermometer("Permission.ErrorThermometer", true),
111+
PermissionErrorRamrod("Permission.ErrorRamrod", true),
112+
113+
//Death
114+
DeathMessage1("Death.message1"),
115+
DeathMessage2("Death.message2"),
116+
DeathMessage3("Death.message3"),
117+
118+
//Help
119+
HelpText("Help.Text"),
120+
HelpBuild("Help.Build"),
121+
HelpFire("Help.Fire"),
122+
HelpAdjust("Help.Adjust"),
123+
HelpWiki("Help.Wiki");
124+
125+
126+
private final String string;
127+
private final boolean isError;
128+
129+
MessageEnum(String string, boolean e) {
130+
this.string = string;
129131
this.isError = e;
130-
}
131-
MessageEnum(String str)
132-
{
133-
this.str = str;
134-
isError = false;
135-
}
136-
137-
public String getString()
138-
{
139-
return str;
140-
}
141-
public boolean isValid()
142-
{
143-
return !isError;
144-
}
145-
public boolean isError()
146-
{
147-
return isError;
148-
}
132+
}
133+
134+
MessageEnum(String string) {
135+
this(string, false);
136+
}
137+
138+
public boolean isValid() {
139+
return !isError;
140+
}
149141
}

cannons-bukkit/src/main/java/at/pavlov/cannons/commands/CannonsCommandManager.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package at.pavlov.cannons.commands;
22

33
import at.pavlov.cannons.Enum.SelectCannon;
4+
import at.pavlov.cannons.cannon.DesignStorage;
5+
import at.pavlov.cannons.projectile.ProjectileStorage;
46
import co.aikar.commands.CommandIssuer;
57
import co.aikar.commands.InvalidCommandArgument;
68
import co.aikar.commands.PaperCommandManager;
@@ -15,6 +17,13 @@ public class CannonsCommandManager extends PaperCommandManager {
1517
public CannonsCommandManager(Plugin plugin) {
1618
super(plugin);
1719
this.registerContexts();
20+
this.registerCompletions();
21+
}
22+
23+
private void registerCompletions() {
24+
var completions = this.getCommandCompletions();
25+
completions.registerAsyncCompletion("designs", c -> DesignStorage.getInstance().getDesignIds());
26+
completions.registerAsyncCompletion("projectiles", c -> ProjectileStorage.getProjectileIds());
1827
}
1928

2029
private void registerContexts() {

cannons-bukkit/src/main/java/at/pavlov/cannons/commands/Commands.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ public static void onHelpCommand(Player sender) {
6969
userMessages.sendMessage(MessageEnum.HelpText, sender);
7070
}
7171

72+
@Subcommand("wiki")
73+
public static void onWiki(Player sender) {
74+
userMessages.sendMessage(MessageEnum.HelpWiki, sender);
75+
}
76+
7277
@Subcommand("reload")
7378
@CommandPermission("cannons.admin.reload")
7479
public static void onReload(CommandSender sender) {
@@ -164,6 +169,7 @@ public static void onList(CommandSender sender, @Optional String arg) {
164169

165170
@Subcommand("create")
166171
@Syntax("[DESIGN]")
172+
@CommandCompletion("@designs")
167173
@CommandPermission("cannons.admin.create")
168174
public static void onCreate(Player player, String arg) {
169175
//check if the design name is valid
@@ -182,6 +188,7 @@ public static void onCreate(Player player, String arg) {
182188

183189
@Subcommand("give")
184190
@Syntax("[PROJECTILE] <amount>")
191+
@CommandCompletion("@projectiles @range:1-64")
185192
@CommandPermission("cannons.admin.give")
186193
public static void onGive(Player player, String projectileString, @Default("1") int amount) {
187194
//check if the projectile id is valid

cannons-bukkit/src/main/resources/localization/en_US.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,3 +155,4 @@ Help:
155155
NEWLINE YELLOW Shift right click will decrease the angle.
156156
NEWLINE YELLOW Clicking on the top of the barrel will change the vertical angle.
157157
NEWLINE YELLOW Clicking on the side will change the horizontal angle.'
158+
Wiki: "GREEN [Cannons] You can find additional information at: https://github.com/Intybyte/Cannons/wiki"

0 commit comments

Comments
 (0)