|
1 | | -package cz.foresttech.commandapi.shared; |
| 1 | +package cz.foresttech.commandapi.shared.processor; |
| 2 | + |
| 3 | +import cz.foresttech.commandapi.shared.AbstractCommandSenderWrapper; |
2 | 4 |
|
3 | 5 | import java.util.List; |
4 | 6 |
|
5 | 7 | public interface ArgumentTypeProcessor<T> { |
6 | 8 |
|
7 | | - T get(String argument); |
| 9 | + <S extends AbstractCommandSenderWrapper<?>> T get(S commandSender, String argument); |
8 | 10 |
|
9 | | - List<String> tabComplete(String argument); |
| 11 | + default <S extends AbstractCommandSenderWrapper<?>> List<String> tabComplete(S commandSender, String argument) { |
| 12 | + return null; |
| 13 | + } |
10 | 14 |
|
11 | | - ArgumentTypeProcessor<String> STRING = new ArgumentTypeProcessor<String>() { |
| 15 | + ArgumentTypeProcessor<String> STRING = new ArgumentTypeProcessor<>() { |
12 | 16 | @Override |
13 | | - public String get(String argument) { |
| 17 | + public <S extends AbstractCommandSenderWrapper<?>> String get(S commandSender, String argument) { |
14 | 18 | return argument; |
15 | 19 | } |
16 | | - |
17 | | - @Override |
18 | | - public List<String> tabComplete(String argument) { |
19 | | - return null; |
20 | | - } |
21 | 20 | }; |
22 | 21 |
|
23 | | - ArgumentTypeProcessor<Integer> INTEGER = new ArgumentTypeProcessor<Integer>() { |
| 22 | + ArgumentTypeProcessor<Integer> INTEGER = new ArgumentTypeProcessor<>() { |
24 | 23 | @Override |
25 | | - public Integer get(String argument) { |
| 24 | + public <S extends AbstractCommandSenderWrapper<?>> Integer get(S commandSender, String argument) { |
26 | 25 | try { |
27 | 26 | return Integer.parseInt(argument); |
28 | 27 | } catch (NumberFormatException e) { |
29 | 28 | return null; |
30 | 29 | } |
31 | 30 | } |
32 | | - |
33 | | - @Override |
34 | | - public List<String> tabComplete(String argument) { |
35 | | - return null; |
36 | | - } |
37 | 31 | }; |
38 | 32 |
|
39 | | - ArgumentTypeProcessor<Double> DOUBLE = new ArgumentTypeProcessor<Double>() { |
| 33 | + ArgumentTypeProcessor<Double> DOUBLE = new ArgumentTypeProcessor<>() { |
40 | 34 | @Override |
41 | | - public Double get(String argument) { |
| 35 | + public <S extends AbstractCommandSenderWrapper<?>> Double get(S commandSender, String argument) { |
42 | 36 | try { |
43 | 37 | return Double.parseDouble(argument); |
44 | 38 | } catch (NumberFormatException e) { |
45 | 39 | return null; |
46 | 40 | } |
47 | 41 | } |
48 | | - |
49 | | - @Override |
50 | | - public List<String> tabComplete(String argument) { |
51 | | - return null; |
52 | | - } |
53 | 42 | }; |
54 | 43 |
|
55 | | - ArgumentTypeProcessor<Boolean> BOOLEAN = new ArgumentTypeProcessor<Boolean>() { |
| 44 | + ArgumentTypeProcessor<Boolean> BOOLEAN = new ArgumentTypeProcessor<>() { |
56 | 45 | @Override |
57 | | - public Boolean get(String argument) { |
| 46 | + public <S extends AbstractCommandSenderWrapper<?>> Boolean get(S commandSender, String argument) { |
58 | 47 | return Boolean.parseBoolean(argument); |
59 | 48 | } |
60 | | - |
61 | | - @Override |
62 | | - public List<String> tabComplete(String argument) { |
63 | | - return null; |
64 | | - } |
65 | 49 | }; |
66 | 50 |
|
67 | | - ArgumentTypeProcessor<Long> LONG = new ArgumentTypeProcessor<Long>() { |
| 51 | + ArgumentTypeProcessor<Long> LONG = new ArgumentTypeProcessor<>() { |
68 | 52 | @Override |
69 | | - public Long get(String argument) { |
| 53 | + public <S extends AbstractCommandSenderWrapper<?>> Long get(S commandSender, String argument) { |
70 | 54 | try { |
71 | 55 | return Long.parseLong(argument); |
72 | 56 | } catch (NumberFormatException e) { |
73 | 57 | return null; |
74 | 58 | } |
75 | 59 | } |
76 | | - |
77 | | - @Override |
78 | | - public List<String> tabComplete(String argument) { |
79 | | - return null; |
80 | | - } |
81 | 60 | }; |
82 | 61 |
|
83 | | - ArgumentTypeProcessor<Float> FLOAT = new ArgumentTypeProcessor<Float>() { |
| 62 | + ArgumentTypeProcessor<Float> FLOAT = new ArgumentTypeProcessor<>() { |
84 | 63 | @Override |
85 | | - public Float get(String argument) { |
| 64 | + public <S extends AbstractCommandSenderWrapper<?>> Float get(S commandSender, String argument) { |
86 | 65 | try { |
87 | 66 | return Float.parseFloat(argument); |
88 | 67 | } catch (NumberFormatException e) { |
89 | 68 | return null; |
90 | 69 | } |
91 | 70 | } |
92 | | - |
93 | | - @Override |
94 | | - public List<String> tabComplete(String argument) { |
95 | | - return null; |
96 | | - } |
97 | 71 | }; |
98 | 72 |
|
99 | | - ArgumentTypeProcessor<Short> SHORT = new ArgumentTypeProcessor<Short>() { |
| 73 | + ArgumentTypeProcessor<Short> SHORT = new ArgumentTypeProcessor<>() { |
100 | 74 | @Override |
101 | | - public Short get(String argument) { |
| 75 | + public <S extends AbstractCommandSenderWrapper<?>> Short get(S commandSender, String argument) { |
102 | 76 | try { |
103 | 77 | return Short.parseShort(argument); |
104 | 78 | } catch (NumberFormatException e) { |
105 | 79 | return null; |
106 | 80 | } |
107 | 81 | } |
108 | | - |
109 | | - @Override |
110 | | - public List<String> tabComplete(String argument) { |
111 | | - return null; |
112 | | - } |
113 | 82 | }; |
114 | 83 |
|
115 | | - ArgumentTypeProcessor<Byte> BYTE = new ArgumentTypeProcessor<Byte>() { |
| 84 | + ArgumentTypeProcessor<Byte> BYTE = new ArgumentTypeProcessor<>() { |
116 | 85 | @Override |
117 | | - public Byte get(String argument) { |
| 86 | + public <S extends AbstractCommandSenderWrapper<?>> Byte get(S commandSender, String argument) { |
118 | 87 | try { |
119 | 88 | return Byte.parseByte(argument); |
120 | 89 | } catch (NumberFormatException e) { |
121 | 90 | return null; |
122 | 91 | } |
123 | 92 | } |
124 | | - |
125 | | - @Override |
126 | | - public List<String> tabComplete(String argument) { |
127 | | - return null; |
128 | | - } |
129 | 93 | }; |
130 | 94 |
|
131 | | - ArgumentTypeProcessor<Character> CHARACTER = new ArgumentTypeProcessor<Character>() { |
| 95 | + ArgumentTypeProcessor<Character> CHARACTER = new ArgumentTypeProcessor<>() { |
132 | 96 | @Override |
133 | | - public Character get(String argument) { |
| 97 | + public <S extends AbstractCommandSenderWrapper<?>> Character get(S commandSender, String argument) { |
134 | 98 | return argument.charAt(0); |
135 | 99 | } |
136 | | - |
137 | | - @Override |
138 | | - public List<String> tabComplete(String argument) { |
139 | | - return null; |
140 | | - } |
141 | 100 | }; |
142 | 101 |
|
143 | 102 | } |
0 commit comments