73 lines
2.5 KiB
Java
73 lines
2.5 KiB
Java
package me.skymc.taboolib.commands.language;
|
|
|
|
import com.ilummc.tlib.resources.TLocale;
|
|
import me.skymc.taboolib.Main;
|
|
import me.skymc.taboolib.string.language2.Language2Value;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.Material;
|
|
import org.bukkit.command.Command;
|
|
import org.bukkit.command.CommandExecutor;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Player;
|
|
|
|
/**
|
|
* @author sky
|
|
* @since 2018年2月13日 下午5:11:01
|
|
*/
|
|
public class Language2Command implements CommandExecutor {
|
|
|
|
@Override
|
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
|
if (args.length == 0) {
|
|
TLocale.sendTo(sender, "COMMANDS.LANGUAGE2.HELP", label);
|
|
} else if ("reload".equalsIgnoreCase(args[0])) {
|
|
reload(sender);
|
|
} else if ("send".equalsIgnoreCase(args[0])) {
|
|
send(sender, args);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
private void send(CommandSender sender, String[] args) {
|
|
if (args.length < 3) {
|
|
TLocale.sendTo(sender, "COMMANDS.PARAMETER.UNKNOWN");
|
|
} else {
|
|
long time = System.currentTimeMillis();
|
|
Language2Value value = getLanguage2Value(args);
|
|
|
|
if ("ALL".equalsIgnoreCase(args[1])) {
|
|
value.broadcast();
|
|
} else {
|
|
Player player = Bukkit.getPlayerExact(args[1]);
|
|
if (player == null) {
|
|
TLocale.sendTo(sender, "COMMANDS.LANGUAGE2.INVALID-PLAYER", args[1]);
|
|
} else {
|
|
value.send(player);
|
|
}
|
|
}
|
|
|
|
if (sender instanceof Player && ((Player) sender).getItemInHand().getType().equals(Material.COMMAND)) {
|
|
TLocale.sendTo(sender, "COMMANDS.LANGUAGE2.SUCCESS-SEND", String.valueOf(System.currentTimeMillis() - time));
|
|
}
|
|
}
|
|
}
|
|
|
|
private Language2Value getLanguage2Value(String[] args) {
|
|
Language2Value value = Main.getExampleLanguage2().get(args[2]);
|
|
if (args.length > 3) {
|
|
int i = 0;
|
|
for (String variable : args[3].split("\\|")) {
|
|
value.addPlaceholder("$" + i++, variable);
|
|
}
|
|
}
|
|
return value;
|
|
}
|
|
|
|
private void reload(CommandSender sender) {
|
|
TLocale.sendTo(sender, "COMMANDS.RELOAD.LOADING");
|
|
long time = System.currentTimeMillis();
|
|
Main.getExampleLanguage2().reload();
|
|
TLocale.sendTo(sender, "COMMANDS.RELOAD.SUCCESS-ELAPSED-TIME", String.valueOf(System.currentTimeMillis() - time));
|
|
}
|
|
}
|