Не могу решить проблему сервер не в какую не хочет видеть плагин. Пожалуйста помогите
name: untitled2
version: '0.1.0'
main: a2288s.untitled2.Untitled2
api-version: '1.18'
commands:
create:
usage: /gpasscreate
gpassdelete:
usage: /gpassdelete
gpasscheak:
usage: /gpasscheak
gpassport:
usage: /gpassport
version: '0.1.0'
main: a2288s.untitled2.Untitled2
api-version: '1.18'
commands:
create:
usage: /gpasscreate
gpassdelete:
usage: /gpassdelete
gpasscheak:
usage: /gpasscheak
gpassport:
usage: /gpassport
[13:42:04 ERROR]: Could not load 'plugins/GPassport.jar' in folder 'plugins'
org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:178) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:159) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.loadPlugins(CraftServer.java:418) ~[purpur-1.18.2.jar:git-Purpur-1632]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.reload(CraftServer.java:1017) ~[purpur-1.18.2.jar:git-Purpur-1632]
at org.bukkit.Bukkit.reload(Bukkit.java:909) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:54) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:172) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.dispatchCommand(CraftServer.java:906) ~[purpur-1.18.2.jar:git-Purpur-1632]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.dispatchServerCommand(CraftServer.java:869) ~[purpur-1.18.2.jar:git-Purpur-1632]
at net.minecraft.server.dedicated.DedicatedServer.handleConsoleInputs(DedicatedServer.java:549) ~[purpur-1.18.2.jar:git-Purpur-1632]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:523) ~[purpur-1.18.2.jar:git-Purpur-1632]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1483) ~[purpur-1.18.2.jar:git-Purpur-1632]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1247) ~[purpur-1.18.2.jar:git-Purpur-1632]
at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:321) ~[purpur-1.18.2.jar:git-Purpur-1632]
at java.lang.Thread.run(Thread.java:1570) ~[?:?]
Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml
org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:178) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:159) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.loadPlugins(CraftServer.java:418) ~[purpur-1.18.2.jar:git-Purpur-1632]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.reload(CraftServer.java:1017) ~[purpur-1.18.2.jar:git-Purpur-1632]
at org.bukkit.Bukkit.reload(Bukkit.java:909) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:54) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:172) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.dispatchCommand(CraftServer.java:906) ~[purpur-1.18.2.jar:git-Purpur-1632]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.dispatchServerCommand(CraftServer.java:869) ~[purpur-1.18.2.jar:git-Purpur-1632]
at net.minecraft.server.dedicated.DedicatedServer.handleConsoleInputs(DedicatedServer.java:549) ~[purpur-1.18.2.jar:git-Purpur-1632]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:523) ~[purpur-1.18.2.jar:git-Purpur-1632]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1483) ~[purpur-1.18.2.jar:git-Purpur-1632]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1247) ~[purpur-1.18.2.jar:git-Purpur-1632]
at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:321) ~[purpur-1.18.2.jar:git-Purpur-1632]
at java.lang.Thread.run(Thread.java:1570) ~[?:?]
Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml
package a2288s.gpassport;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class GPassport extends JavaPlugin {
private Map<String, String[]> passportData = new HashMap<>();
private int passportSerialNumber = 0000000;
@Override
public void onEnable() {
loadPassportData();
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("gpasscreate")) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (args.length == 6) {
String nickname = player.getName();
// сюда пишите свои страны
String[] availableCountries = {"Россия","и_так_далее..."};
String country = args[0];
String name = args[1];
String lastName = args[2];
String dateOfBirth = args[3];
String gender = args[4];
String[] passportInfo = {country, name, lastName, dateOfBirth, gender};
passportData.put(nickname, passportInfo);
savePassportData(nickname, passportInfo);
generatePassport(player, passportInfo);
return true;
}
}
} else if (command.getName().equalsIgnoreCase("gpassdelete")) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (args.length == 1) {
String nickname = args[0];
if (passportData.containsKey(nickname)) {
passportData.remove(nickname);
deletePassport(nickname);
player.sendMessage("Паспорт игрока " + nickname + " был удален.");
return true;
} else {
player.sendMessage("Паспорт для игрока " + nickname + " не найден.");
return true;
}
}
}
} else if (command.getName().equalsIgnoreCase("gpassport")) {
if (sender instanceof Player) {
Player player = (Player) sender;
String nickname = player.getName();
if (passportData.containsKey(nickname)) {
showPassport(player, passportData.get(nickname));
return true;
} else {
player.sendMessage("У вас нет паспорта.");
return true;
}
}
} else if (command.getName().equalsIgnoreCase("gpassportcheck")) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (args.length == 1) {
String nickname = args[0];
if (passportData.containsKey(nickname)) {
showPassport(player, passportData.get(nickname));
return true;
} else {
player.sendMessage("Паспорт игрока " + nickname + " не найден.");
return true;
}
}
}
}
return false;
}
private void generatePassport(Player player, String[] passportInfo) {
String passport = "Паспорт:\n"
+ "Страна: " + passportInfo[0] + "\n"
+ "Имя: " + passportInfo[1] + "\n"
+ "Фамилия: " + passportInfo[2] + "\n"
+ "Дата рождения: " + passportInfo[3] + "\n"
+ "Пол: " + passportInfo[4] + "\n"
+ "Серия: " + passportSerialNumber;
player.sendMessage(passport);
passportSerialNumber++;
}
private void showPassport(Player player, String[] passportInfo) {
String passport = "§6Паспорт:§r\n"
+ "§6Страна: §r" + passportInfo[0] + "\n"
+ "§6Имя: §r" + passportInfo[1] + "\n"
+ "§6Фамилия: §r" + passportInfo[2] + "\n"
+ "§6Дата рождения: §r" + passportInfo[3] + "\n"
+ "§6Пол: §r" + passportInfo[4] + "\n"
+ "§6Серия: §r" + getPassportSerialNumber(player.getName());
}
private int getPassportSerialNumber(String nickname) {
return passportSerialNumber;
}
private void savePassportData(String nickname, String[] passportInfo) {
try {
File file = new File(getDataFolder(), nickname + ".txt");
FileWriter writer = new FileWriter(file);
writer.write(String.join(",", passportInfo));
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private void loadPassportData() {
File dataFolder = getDataFolder();
if (!dataFolder.exists()) {
dataFolder.mkdir();
}
for (File file : dataFolder.listFiles()) {
if (file.isFile() && file.getName().endsWith(".txt")) {
String nickname = file.getName().replace(".txt", "");
String[] passportInfo = loadPassportInfo(file);
passportData.put(nickname, passportInfo);
}
}
}
private String[] loadPassportInfo(File file) {
try {
FileWriter writer = new FileWriter(file);
String[] passportInfo = writer.toString().split(",");
writer.close();
return passportInfo;
} catch (IOException e) {
e.printStackTrace();
return new String[0];
}
}
private void deletePassport(String nickname) {
File file = new File(getDataFolder(), nickname + ".txt");
if (file.exists()) {
file.delete();
}
}
}
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class GPassport extends JavaPlugin {
private Map<String, String[]> passportData = new HashMap<>();
private int passportSerialNumber = 0000000;
@Override
public void onEnable() {
loadPassportData();
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("gpasscreate")) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (args.length == 6) {
String nickname = player.getName();
// сюда пишите свои страны
String[] availableCountries = {"Россия","и_так_далее..."};
String country = args[0];
String name = args[1];
String lastName = args[2];
String dateOfBirth = args[3];
String gender = args[4];
String[] passportInfo = {country, name, lastName, dateOfBirth, gender};
passportData.put(nickname, passportInfo);
savePassportData(nickname, passportInfo);
generatePassport(player, passportInfo);
return true;
}
}
} else if (command.getName().equalsIgnoreCase("gpassdelete")) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (args.length == 1) {
String nickname = args[0];
if (passportData.containsKey(nickname)) {
passportData.remove(nickname);
deletePassport(nickname);
player.sendMessage("Паспорт игрока " + nickname + " был удален.");
return true;
} else {
player.sendMessage("Паспорт для игрока " + nickname + " не найден.");
return true;
}
}
}
} else if (command.getName().equalsIgnoreCase("gpassport")) {
if (sender instanceof Player) {
Player player = (Player) sender;
String nickname = player.getName();
if (passportData.containsKey(nickname)) {
showPassport(player, passportData.get(nickname));
return true;
} else {
player.sendMessage("У вас нет паспорта.");
return true;
}
}
} else if (command.getName().equalsIgnoreCase("gpassportcheck")) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (args.length == 1) {
String nickname = args[0];
if (passportData.containsKey(nickname)) {
showPassport(player, passportData.get(nickname));
return true;
} else {
player.sendMessage("Паспорт игрока " + nickname + " не найден.");
return true;
}
}
}
}
return false;
}
private void generatePassport(Player player, String[] passportInfo) {
String passport = "Паспорт:\n"
+ "Страна: " + passportInfo[0] + "\n"
+ "Имя: " + passportInfo[1] + "\n"
+ "Фамилия: " + passportInfo[2] + "\n"
+ "Дата рождения: " + passportInfo[3] + "\n"
+ "Пол: " + passportInfo[4] + "\n"
+ "Серия: " + passportSerialNumber;
player.sendMessage(passport);
passportSerialNumber++;
}
private void showPassport(Player player, String[] passportInfo) {
String passport = "§6Паспорт:§r\n"
+ "§6Страна: §r" + passportInfo[0] + "\n"
+ "§6Имя: §r" + passportInfo[1] + "\n"
+ "§6Фамилия: §r" + passportInfo[2] + "\n"
+ "§6Дата рождения: §r" + passportInfo[3] + "\n"
+ "§6Пол: §r" + passportInfo[4] + "\n"
+ "§6Серия: §r" + getPassportSerialNumber(player.getName());
}
private int getPassportSerialNumber(String nickname) {
return passportSerialNumber;
}
private void savePassportData(String nickname, String[] passportInfo) {
try {
File file = new File(getDataFolder(), nickname + ".txt");
FileWriter writer = new FileWriter(file);
writer.write(String.join(",", passportInfo));
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private void loadPassportData() {
File dataFolder = getDataFolder();
if (!dataFolder.exists()) {
dataFolder.mkdir();
}
for (File file : dataFolder.listFiles()) {
if (file.isFile() && file.getName().endsWith(".txt")) {
String nickname = file.getName().replace(".txt", "");
String[] passportInfo = loadPassportInfo(file);
passportData.put(nickname, passportInfo);
}
}
}
private String[] loadPassportInfo(File file) {
try {
FileWriter writer = new FileWriter(file);
String[] passportInfo = writer.toString().split(",");
writer.close();
return passportInfo;
} catch (IOException e) {
e.printStackTrace();
return new String[0];
}
}
private void deletePassport(String nickname) {
File file = new File(getDataFolder(), nickname + ".txt");
if (file.exists()) {
file.delete();
}
}
}
Последнее редактирование: