001package fr.aumgn.dac2.commands; 002 003import fr.aumgn.bukkitutils.command.Commands; 004import fr.aumgn.bukkitutils.command.arg.CommandArgFactory; 005import fr.aumgn.dac2.DAC; 006import fr.aumgn.dac2.commands.arg.ArenaArg; 007import fr.aumgn.dac2.commands.arg.ColorArg; 008import fr.aumgn.dac2.commands.arg.StageArg; 009 010public abstract class DACCommands implements Commands { 011 012 /** 013 * ColorArg factory. Name is syntaxic sugar. 014 */ 015 protected final CommandArgFactory<ColorArg> Color; 016 017 /** 018 * ArenaArg factory. Name is syntaxic sugar. 019 */ 020 protected final CommandArgFactory<ArenaArg> Arena; 021 022 /** 023 * StageArg factory. Name is syntaxic sugar. 024 */ 025 protected final CommandArgFactory<StageArg> Stage; 026 027 protected final DAC dac; 028 029 public DACCommands(DAC dac) { 030 this.dac = dac; 031 this.Color = new CommandArgFactory<ColorArg>() { 032 @Override 033 public ColorArg createCommandArg(String string) { 034 return new ColorArg(DACCommands.this.dac, string); 035 } 036 }; 037 this.Arena = new CommandArgFactory<ArenaArg>() { 038 @Override 039 public ArenaArg createCommandArg(String string) { 040 return new ArenaArg(DACCommands.this.dac, string); 041 } 042 }; 043 this.Stage = new CommandArgFactory<StageArg>() { 044 @Override 045 public StageArg createCommandArg(String string) { 046 return new StageArg(DACCommands.this.dac, string); 047 } 048 }; 049 } 050 051 protected String msg(String key) { 052 return dac.getCmdMessages().get(key); 053 } 054 055 protected String msg(String key, Object... arguments) { 056 return dac.getCmdMessages().get(key, arguments); 057 } 058}