- Баллы
- 61
- Имя в Minecraft
- XsatorYT
В общем пишу плагин на спавн, написал что /spawn World <player>, но из-за того что массив так сказать перевёрнут работает это так /spawn <player> World. Ноо, ладна если так но если ввести первый пример команды то выдаёт ошибку. То есть мне нада либо заблочить вывод ошибки либо поменять порядок массива.
Вот код:
package xultraspawns;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
import org.apache.logging.log4j.LogManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
public class SpawnCommandExecutor implements CommandExecutor {
private String NoArgs;
String LanguageFile = "Ru";
private final Main plugin;
/*
* Конструктор
*/
public SpawnCommandExecutor(Main plugin) {
this.plugin = plugin;
FileConfiguration conf = plugin.getConfig();// Получаем конфиг
// Получаем содержание нужной строки в конфиге и записываем его в переменную
//Заканчиваем запись
if(Main.LanguageFile.equals("En")) {
try(Scanner scanner = new Scanner (new FileInputStream(Main.EnLangFile))) {
NoArgs = scanner.nextLine();
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
}
/*
* Переводит имя мира
*/
public static String localizeWorldName(String name) {
switch(name.toLowerCase()) {
case "end":
case "край":
return "world_the_end";
case "nether":
case "ад":
return "world_the_nether";
case "overworld":
case "мир":
return "world";
default:
return null;
}
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(Main.LanguageFile.equals("Ru")) {
}
LogManager.getLogger().info(Arrays.toString(args));// Выводит в консоль массив args
//Переводим sender в player, проверяем является ли sender - player(ом)
if(sender instanceof Player) {
Player player = args.length > 0 ? Bukkit.getPlayerExact(args[0]) : (Player)sender;
switch(args.length) {
case 0:
player.teleport(Bukkit.getWorld("world").getSpawnLocation());
player.sendMessage(Main.PluginName + ChatColor.GREEN.toString() + ":" + "Вы были телепортированы на спавн!");
break;
case 1:
player.teleport(Bukkit.getWorld("world").getSpawnLocation());
player.sendMessage(Main.PluginName + ChatColor.GREEN.toString() + ":" + "Вы были телепортированы на спавн!");
break;
case 2:
player.teleport(player.getLocation().getWorld().getSpawnLocation());
player.sendMessage(Main.PluginName + ChatColor.GREEN.toString() + ":" + "Вы были телепортированы на спавн!");
break;
case 3:
if(player.hasPermission("xus.spawn.other")) {
player.teleport(player.getLocation().getWorld().getSpawnLocation());
player.sendMessage(ChatColor.GREEN.toString() + "Вы телепортировали на спавн игрока:" + ChatColor.RED.toString() + player.getName());
} else {
player.sendMessage(cmd.getPermissionMessage());
}
break;
default:
return false;// говорим, что неверное кол-во аргументов
}
} else {
//Посылаем нах, если команда не от игрока
sender.sendMessage(ChatColor.DARK_RED.toString() + "Вы не можете выполнить эту команду из консоли!!!");
}
return true;
}
}
Вот код:
package xultraspawns;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
import org.apache.logging.log4j.LogManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
public class SpawnCommandExecutor implements CommandExecutor {
private String NoArgs;
String LanguageFile = "Ru";
private final Main plugin;
/*
* Конструктор
*/
public SpawnCommandExecutor(Main plugin) {
this.plugin = plugin;
FileConfiguration conf = plugin.getConfig();// Получаем конфиг
// Получаем содержание нужной строки в конфиге и записываем его в переменную
//Заканчиваем запись
if(Main.LanguageFile.equals("En")) {
try(Scanner scanner = new Scanner (new FileInputStream(Main.EnLangFile))) {
NoArgs = scanner.nextLine();
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
}
/*
* Переводит имя мира
*/
public static String localizeWorldName(String name) {
switch(name.toLowerCase()) {
case "end":
case "край":
return "world_the_end";
case "nether":
case "ад":
return "world_the_nether";
case "overworld":
case "мир":
return "world";
default:
return null;
}
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(Main.LanguageFile.equals("Ru")) {
}
LogManager.getLogger().info(Arrays.toString(args));// Выводит в консоль массив args
//Переводим sender в player, проверяем является ли sender - player(ом)
if(sender instanceof Player) {
Player player = args.length > 0 ? Bukkit.getPlayerExact(args[0]) : (Player)sender;
switch(args.length) {
case 0:
player.teleport(Bukkit.getWorld("world").getSpawnLocation());
player.sendMessage(Main.PluginName + ChatColor.GREEN.toString() + ":" + "Вы были телепортированы на спавн!");
break;
case 1:
player.teleport(Bukkit.getWorld("world").getSpawnLocation());
player.sendMessage(Main.PluginName + ChatColor.GREEN.toString() + ":" + "Вы были телепортированы на спавн!");
break;
case 2:
player.teleport(player.getLocation().getWorld().getSpawnLocation());
player.sendMessage(Main.PluginName + ChatColor.GREEN.toString() + ":" + "Вы были телепортированы на спавн!");
break;
case 3:
if(player.hasPermission("xus.spawn.other")) {
player.teleport(player.getLocation().getWorld().getSpawnLocation());
player.sendMessage(ChatColor.GREEN.toString() + "Вы телепортировали на спавн игрока:" + ChatColor.RED.toString() + player.getName());
} else {
player.sendMessage(cmd.getPermissionMessage());
}
break;
default:
return false;// говорим, что неверное кол-во аргументов
}
} else {
//Посылаем нах, если команда не от игрока
sender.sendMessage(ChatColor.DARK_RED.toString() + "Вы не можете выполнить эту команду из консоли!!!");
}
return true;
}
}