@@ -46,10 +46,20 @@ public Optional<List<String>> tabComplete(User user, String alias, List<String>
46
46
47
47
@ Override
48
48
public boolean execute (User user , String label , List <String > args ) {
49
- String initialLevel = String .valueOf (addon .getManager ().getInitialLevel (island ));
50
- long lv = Long .parseLong (args .get (1 ));
49
+ long initialLevel = addon .getManager ().getInitialLevel (island );
50
+ long lv = 0 ;
51
+ if (args .get (1 ).startsWith ("+" )) {
52
+ String change = args .get (1 ).substring (1 );
53
+ lv = initialLevel + Long .parseLong (change );
54
+ } else if (args .get (1 ).startsWith ("-" )) {
55
+ String change = args .get (1 ).substring (1 );
56
+ lv = initialLevel - Long .parseLong (change );
57
+ } else {
58
+ lv = Long .parseLong (args .get (1 ));
59
+ }
51
60
addon .getManager ().setInitialIslandLevel (island , lv );
52
- user .sendMessage ("admin.level.sethandicap.changed" , TextVariables .NUMBER , initialLevel , "[new_number]" , String .valueOf (lv ));
61
+ user .sendMessage ("admin.level.sethandicap.changed" , TextVariables .NUMBER , String .valueOf (initialLevel ),
62
+ "[new_number]" , String .valueOf (lv ));
53
63
return true ;
54
64
}
55
65
@@ -64,10 +74,20 @@ public boolean canExecute(User user, String label, List<String> args) {
64
74
user .sendMessage ("general.errors.unknown-player" , TextVariables .NAME , args .get (0 ));
65
75
return false ;
66
76
}
67
- // Check value
68
- if (!Util .isInteger (args .get (1 ), true )) {
69
- user .sendMessage ("admin.level.sethandicap.invalid-level" );
70
- return false ;
77
+ // Check if this is a add or remove
78
+ if (args .get (1 ).startsWith ("+" ) || args .get (1 ).startsWith ("-" )) {
79
+ String change = args .get (1 ).substring (1 );
80
+ if (!Util .isInteger (change , true )) {
81
+ user .sendMessage ("admin.level.sethandicap.invalid-level" );
82
+ return false ;
83
+ }
84
+ // Value is okay
85
+ } else {
86
+ // Check value
87
+ if (!Util .isInteger (args .get (1 ), true )) {
88
+ user .sendMessage ("admin.level.sethandicap.invalid-level" );
89
+ return false ;
90
+ }
71
91
}
72
92
// Check island
73
93
island = getAddon ().getIslands ().getIsland (getWorld (), targetUUID );
0 commit comments