001package fr.aumgn.bukkitutils.command.args;
002
003import org.bukkit.ChatColor;
004import org.bukkit.Material;
005import org.bukkit.OfflinePlayer;
006import org.bukkit.World;
007import org.bukkit.enchantments.Enchantment;
008import org.bukkit.entity.EntityType;
009import org.bukkit.entity.Player;
010import org.bukkit.potion.PotionEffectType;
011
012import fr.aumgn.bukkitutils.command.CommandsMessages;
013import fr.aumgn.bukkitutils.command.arg.CommandArgFactory;
014import fr.aumgn.bukkitutils.command.arg.basic.ListArg;
015import fr.aumgn.bukkitutils.command.arg.basic.DoubleArg;
016import fr.aumgn.bukkitutils.command.arg.basic.IntegerArg;
017import fr.aumgn.bukkitutils.command.arg.basic.ShortArg;
018import fr.aumgn.bukkitutils.command.arg.basic.TimeArg;
019import fr.aumgn.bukkitutils.command.arg.basic.Vector2DArg;
020import fr.aumgn.bukkitutils.command.arg.basic.VectorArg;
021import fr.aumgn.bukkitutils.command.arg.bukkit.ChatColorArg;
022import fr.aumgn.bukkitutils.command.arg.bukkit.EnchantmentArg;
023import fr.aumgn.bukkitutils.command.arg.bukkit.EntityTypeArg;
024import fr.aumgn.bukkitutils.command.arg.bukkit.ItemTypeArg;
025import fr.aumgn.bukkitutils.command.arg.bukkit.MaterialArg;
026import fr.aumgn.bukkitutils.command.arg.bukkit.OfflinePlayerArg;
027import fr.aumgn.bukkitutils.command.arg.bukkit.PlayerArg;
028import fr.aumgn.bukkitutils.command.arg.bukkit.PotionEffectTypeArg;
029import fr.aumgn.bukkitutils.command.arg.bukkit.WorldArg;
030import fr.aumgn.bukkitutils.itemtype.ItemType;
031
032public class CommandArgs extends CommandArgsBase {
033
034    public CommandArgs(CommandsMessages messages, CommandArgsParser parser) {
035        super(messages, parser);
036    }
037
038    public IntegerArg getInteger(int index) {
039        return new IntegerArg(messages, getOrNull(index));
040    }
041
042    public IntegerArg getInteger(char flag) {
043        return new IntegerArg(messages, getOrNull(flag));
044    }
045
046    public ShortArg getShort(int index) {
047        return new ShortArg(messages, getOrNull(index));
048    }
049
050    public ShortArg getShort(char flag) {
051        return new ShortArg(messages, getOrNull(flag));
052    }
053
054    public DoubleArg getDouble(int index) {
055        return new DoubleArg(messages, getOrNull(index));
056    }
057
058    public DoubleArg getDouble(char flag) {
059        return new DoubleArg(messages, getOrNull(flag));
060    }
061
062    public TimeArg getTime(int index) {
063        return new TimeArg(messages, getOrNull(index));
064    }
065
066    public TimeArg getTime(char flag) {
067        return new TimeArg(messages, getOrNull(flag));
068    }
069
070    public ChatColorArg getChatColor(int index) {
071        return new ChatColorArg(messages, getOrNull(index));
072    }
073
074    public ChatColorArg getChatColor(char flag) {
075        return new ChatColorArg(messages, getOrNull(flag));
076    }
077
078    public ListArg<ChatColor, ChatColorArg> getChatColors(int index) {
079        return getList(index, new CommandArgFactory<ChatColorArg>() {
080            public ChatColorArg createCommandArg(String string) {
081                return new ChatColorArg(messages, string);
082            }
083        });
084    }
085
086    public ListArg<ChatColor, ChatColorArg> getChatColors(char flag) {
087        return getList(flag, new CommandArgFactory<ChatColorArg>() {
088            public ChatColorArg createCommandArg(String string) {
089                return new ChatColorArg(messages, string);
090            }
091        });
092    }
093
094    public VectorArg getVector(int index) {
095        return new VectorArg(messages, getOrNull(index));
096    }
097
098    public VectorArg getVector(char flag) {
099        return new VectorArg(messages, getOrNull(flag));
100    }
101
102    public Vector2DArg getVector2D(int index) {
103        return new Vector2DArg(messages, getOrNull(index));
104    }
105
106    public Vector2DArg getVector2D(char flag) {
107        return new Vector2DArg(messages, getOrNull(flag));
108    }
109
110    public WorldArg getWorld(int index) {
111        return new WorldArg(messages, getOrNull(index));
112    }
113
114    public WorldArg getWorld(char flag) {
115        return new WorldArg(messages, getOrNull(flag));
116    }
117
118    public ListArg<World, WorldArg> getWorlds(int index) {
119        return getList(index, new CommandArgFactory<WorldArg>() {
120            public WorldArg createCommandArg(String string) {
121                return new WorldArg(messages, string);
122            }
123        });
124    }
125
126    public ListArg<World, WorldArg> getWorlds(char flag) {
127        return getList(flag, new CommandArgFactory<WorldArg>() {
128            public WorldArg createCommandArg(String string) {
129                return new WorldArg(messages, string);
130            }
131        });
132    }
133
134    public PlayerArg getPlayer(int index) {
135        return new PlayerArg(messages, getOrNull(index));
136    }
137
138    public PlayerArg getPlayer(char flag) {
139        return new PlayerArg(messages, getOrNull(flag));
140    }
141
142    public ListArg<Player, PlayerArg> getPlayers(int index) {
143        return getList(index, new CommandArgFactory<PlayerArg>() {
144            public PlayerArg createCommandArg(String string) {
145                return new PlayerArg(messages, string);
146            }
147        });
148    }
149
150    public ListArg<Player, PlayerArg> getPlayers(char flag) {
151        return getList(flag, new CommandArgFactory<PlayerArg>() {
152            public PlayerArg createCommandArg(String string) {
153                return new PlayerArg(messages, string);
154            }
155        });
156    }
157
158    public OfflinePlayerArg getOfflinePlayer(int index) {
159        return new OfflinePlayerArg(messages, getOrNull(index));
160    }
161
162    public OfflinePlayerArg getOfflinePlayer(char flag) {
163        return new OfflinePlayerArg(messages, getOrNull(flag));
164    }
165
166    public ListArg<OfflinePlayer, OfflinePlayerArg> getOfflinePlayers(
167            int index) {
168        return getList(index, new CommandArgFactory<OfflinePlayerArg>() {
169            public OfflinePlayerArg createCommandArg(String string) {
170                return new OfflinePlayerArg(messages, string);
171            }
172        });
173    }
174
175    public ListArg<OfflinePlayer, OfflinePlayerArg> getOfflinePlayers(
176            char flag) {
177        return getList(flag, new CommandArgFactory<OfflinePlayerArg>() {
178            public OfflinePlayerArg createCommandArg(String string) {
179                return new OfflinePlayerArg(messages, string);
180            }
181        });
182    }
183
184    public MaterialArg getMaterial(int index) {
185        return new MaterialArg(messages, getOrNull(index));
186    }
187
188    public MaterialArg getMaterial(char flag) {
189        return new MaterialArg(messages, getOrNull(flag));
190    }
191
192    public ListArg<Material, MaterialArg> getMaterials(int index) {
193        return getList(index, new CommandArgFactory<MaterialArg>() {
194            public MaterialArg createCommandArg(String string) {
195                return new MaterialArg(messages, string);
196            }
197        });
198    }
199
200    public ListArg<Material, MaterialArg> getMaterials(char flag) {
201        return getList(flag, new CommandArgFactory<MaterialArg>() {
202            public MaterialArg createCommandArg(String string) {
203                return new MaterialArg(messages, string);
204            }
205        });
206    }
207
208    public ItemTypeArg getItemType(int index) {
209        return new ItemTypeArg(messages, getOrNull(index));
210    }
211
212    public ItemTypeArg getItemType(char flag) {
213        return new ItemTypeArg(messages, getOrNull(flag));
214    }
215
216    public ListArg<ItemType, ItemTypeArg> getItemTypes(int index) {
217        return getList(index, new CommandArgFactory<ItemTypeArg>() {
218            public ItemTypeArg createCommandArg(String string) {
219                return new ItemTypeArg(messages, string);
220            }
221        });
222    }
223
224    public ListArg<ItemType, ItemTypeArg> getItemTypes(char flag) {
225        return getList(flag, new CommandArgFactory<ItemTypeArg>() {
226            public ItemTypeArg createCommandArg(String string) {
227                return new ItemTypeArg(messages, string);
228            }
229        });
230    }
231
232    public PotionEffectTypeArg getPotionEffectType(int index) {
233        return new PotionEffectTypeArg(messages, getOrNull(index));
234    }
235
236    public PotionEffectTypeArg getPotionEffectType(char flag) {
237        return new PotionEffectTypeArg(messages, getOrNull(flag));
238    }
239
240    public ListArg<PotionEffectType, PotionEffectTypeArg> getPotionEffectTypes(
241            int index) {
242        return getList(index, new CommandArgFactory<PotionEffectTypeArg>() {
243            public PotionEffectTypeArg createCommandArg(String string) {
244                return new PotionEffectTypeArg(messages, string);
245            }
246        });
247    }
248
249    public ListArg<PotionEffectType, PotionEffectTypeArg> getPotionEffectTypes(
250            char flag) {
251        return getList(flag, new CommandArgFactory<PotionEffectTypeArg>() {
252            public PotionEffectTypeArg createCommandArg(String string) {
253                return new PotionEffectTypeArg(messages, string);
254            }
255        });
256    }
257
258    public EnchantmentArg getEnchantment(int index) {
259        return new EnchantmentArg(messages, getOrNull(index));
260    }
261
262    public EnchantmentArg getEnchantment(char flag) {
263        return new EnchantmentArg(messages, getOrNull(flag));
264    }
265
266    public ListArg<Enchantment, EnchantmentArg> getEnchantments(int index) {
267        return getList(index, new CommandArgFactory<EnchantmentArg>() {
268            public EnchantmentArg createCommandArg(String string) {
269                return new EnchantmentArg(messages, string);
270            }
271        });
272    }
273
274    public ListArg<Enchantment, EnchantmentArg> getEnchantments(char flag) {
275        return getList(flag, new CommandArgFactory<EnchantmentArg>() {
276            public EnchantmentArg createCommandArg(String string) {
277                return new EnchantmentArg(messages, string);
278            }
279        });
280    }
281
282    public EntityTypeArg getEntityType(int index) {
283        return new EntityTypeArg(messages, getOrNull(index));
284    }
285
286    public EntityTypeArg getEntityType(char flag) {
287        return new EntityTypeArg(messages, getOrNull(flag));
288    }
289
290    public ListArg<EntityType, EntityTypeArg> getEntityTypes(int index) {
291        return getList(index, new CommandArgFactory<EntityTypeArg>() {
292            public EntityTypeArg createCommandArg(String string) {
293                return new EntityTypeArg(messages, string);
294            }
295        });
296    }
297
298    public ListArg<EntityType, EntityTypeArg> getEntityTypes(char flag) {
299        return getList(flag, new CommandArgFactory<EntityTypeArg>() {
300            public EntityTypeArg createCommandArg(String string) {
301                return new EntityTypeArg(messages, string);
302            }
303        });
304    }
305}