2323import cn .nukkit .form .window .FormWindowCustom ;
2424import de .kcodeyt .headsdb .HeadsDB ;
2525import de .kcodeyt .headsdb .database .HeadEntry ;
26+ import de .kcodeyt .headsdb .lang .Language ;
27+ import de .kcodeyt .headsdb .lang .TranslationKey ;
2628import de .kcodeyt .headsdb .util .FormAPI ;
2729
30+ import java .io .IOException ;
2831import java .util .List ;
2932import java .util .Random ;
3033import java .util .concurrent .ThreadLocalRandom ;
@@ -42,21 +45,31 @@ public HeadDBCommand(HeadsDB headsDB) {
4245
4346 @ Override
4447 public boolean execute (CommandSender sender , String commandLabel , String [] args ) {
45- if (!this .testPermission (sender ))
46- return false ;
48+ if (!this .testPermission (sender )) return false ;
49+
50+ final Language language = this .headsDB .getLanguage ();
4751
4852 if (args .length > 0 ) {
4953 final String subCommand = args [0 ].toLowerCase ();
5054 switch (subCommand ) {
5155 case "reload" :
5256 if (sender .isOp ()) {
53- sender .sendMessage ("§7Reload the heads database..." );
57+ sender .sendMessage (language .translate (sender instanceof Player ? (Player ) sender : null , TranslationKey .DATABASE_RELOAD_START ));
58+
59+ try {
60+ this .headsDB .getLanguage ().reload ();
61+ } catch (IOException e ) {
62+ this .headsDB .getLogger ().error ("Error while reloading language file" , e );
63+ sender .sendMessage (language .translate (sender instanceof Player ? (Player ) sender : null , TranslationKey .DATABASE_RELOAD_FAILED ));
64+ return true ;
65+ }
66+
5467 this .headsDB .getDatabase ().reload ().whenComplete ((result , error ) -> {
5568 if (!result || error != null ) {
5669 this .headsDB .getLogger ().error ("Could not load heads database!" , error );
57- sender .sendMessage ("§cCould not reload the database!" );
70+ sender .sendMessage (language . translate ( sender instanceof Player ? ( Player ) sender : null , TranslationKey . DATABASE_RELOAD_FAILED ) );
5871 } else {
59- sender .sendMessage ("§aSuccessfully reload the head database!" );
72+ sender .sendMessage (language . translate ( sender instanceof Player ? ( Player ) sender : null , TranslationKey . DATABASE_RELOAD_SUCCESS ) );
6073 this .headsDB .getLogger ().info ("Successfully load " + this .headsDB .getDatabase ().getHeadEntries ().size () + " Heads!" );
6174 }
6275 });
@@ -65,8 +78,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args)
6578 break ;
6679 case "random" :
6780 if (sender .isOp ()) {
68- if (this .isConsole (sender ))
69- return false ;
81+ if (this .isConsole (sender )) return false ;
7082
7183 int amount ;
7284 try {
@@ -83,38 +95,37 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args)
8395 final Random random = ThreadLocalRandom .current ();
8496 for (int i = 0 ; i < amount ; i ++)
8597 this .headsDB .getDatabase ().giveItem ((Player ) sender , headEntries .get (random .nextInt (headEntries .size ())));
98+
99+ sender .sendMessage (language .translate ((Player ) sender , TranslationKey .GAVE_RANDOM_HEADS , amount ));
86100 return true ;
87101 }
88102 break ;
89103 case "config" :
90- if (this .isConsole (sender ))
91- return false ;
104+ if (this .isConsole (sender )) return false ;
92105
93106 final Player player = (Player ) sender ;
94- final FormWindowCustom configForm = new FormWindowCustom ("Configure" );
95- configForm .addElement (new ElementSlider ("Page length" , 20 , 120 , 5 , 40 ));
107+ final FormWindowCustom configForm = new FormWindowCustom (language . translate ( player , TranslationKey . CONFIG_FORM_TITLE ) );
108+ configForm .addElement (new ElementSlider (language . translate ( player , TranslationKey . CONFIG_FORM_PAGE_SIZE ) , 20 , 120 , 5 , 40 ));
96109 FormAPI .create (player , configForm , () -> {
97- if (configForm .wasClosed ())
98- return ;
110+ if (configForm .wasClosed ()) return ;
111+
99112 final int pageLength = (int ) configForm .getResponse ().getSliderResponse (0 );
100113 this .headsDB .getDatabase ().getPageCount ().put (player .getName (), pageLength );
101- player .sendMessage ("§aSet your page length to " + pageLength + "!" );
114+ player .sendMessage (language . translate ( player , TranslationKey . CONFIG_FORM_PAGE_SIZE_CHANGED , pageLength ) );
102115 });
103116 return true ;
104117 }
105118 }
106119
107- if (this .isConsole (sender ))
108- return false ;
120+ if (this .isConsole (sender )) return false ;
109121
110122 this .headsDB .getDatabase ().showForm ((Player ) sender );
111123 return true ;
112124 }
113125
114126 private boolean isConsole (CommandSender sender ) {
115- if (sender instanceof Player )
116- return false ;
117- sender .sendMessage ("You must be logged in, to be able to use this command!" );
127+ if (sender instanceof Player ) return false ;
128+ sender .sendMessage (this .headsDB .getLanguage ().translate (null , TranslationKey .CONSOLE_USES_PLAYER_COMMAND ));
118129 return true ;
119130 }
120131
0 commit comments