Проблема с запуском Spigot1.16.5 плагина
Ошибка:
org.bukkit.plugin.InvalidPluginException: Abnormal plugin type
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:80) ~[spigot-1-16-5.jar:3004-Spigot-138d451-e5cb519]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot-1-16-5.jar:3004-Spigot-138d451-e5cb519]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:394) ~[spigot-1-16-5.jar:3004-Spigot-138d451-e5cb519]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:301) ~[spigot-1-16-5.jar:3004-Spigot-138d451-e5cb519]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServer.java:382) ~[spigot-1-16-5.jar:3004-Spigot-138d451-e5cb519]
at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:185) ~[spigot-1-16-5.jar:3004-Spigot-138d451-e5cb519]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:809) ~[spigot-1-16-5.jar:3004-Spigot-138d451-e5cb519]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1-16-5.jar:3004-Spigot-138d451-e5cb519]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_341]
Caused by: java.lang.InstantiationException: dab.dab.Dab
at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_341]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot-1-16-5.jar:3004-Spigot-138d451-e5cb519]
... 8 more
Caused by: java.lang.NoSuchMethodException: dab.dab.Dab.<init>()
at java.lang.Class.getConstructor0(Unknown Source) ~[?:1.8.0_341]
at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_341]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot-1-16-5.jar:3004-Spigot-138d451-e5cb519]
... 8 more
Main:
package dab.dab;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class Dab extends JavaPlugin implements Listener {
@Override
public void onEnable(){
getLogger().info("[DAB] has been enabled!");
}
public void onDisable() {
getLogger().info("[DAB] has been disabled!");
}
private final File arenasFile;
private final YamlConfiguration arenasConfig;
public Dab(File arenasFile, YamlConfiguration arenasConfig) {
this.arenasFile = arenasFile;
this.arenasConfig = arenasConfig;
}
public void addArena(String name, int size, int lobbyX, int lobbyY, int lobbyZ, int startX, int startY, int startZ) {
arenasConfig.set(name + ".size", size);
arenasConfig.set(name + ".lobby.world", "Dab");
arenasConfig.set(name + ".lobby.x", lobbyX);
arenasConfig.set(name + ".lobby.y", lobbyY);
arenasConfig.set(name + ".lobby.z", lobbyZ);
arenasConfig.set(name + ".start.world", "Dab");
arenasConfig.set(name + ".start.x", startX);
arenasConfig.set(name + ".start.y", startY);
arenasConfig.set(name + ".start.z", startZ);
try {
arenasConfig.save(arenasFile);
} catch (IOException e) {
e.printStackTrace();
}
}
private static final int TARGET_SCORE = 5;
private final int BOARD_SIZE = 10;
public int[][] board = new int[BOARD_SIZE][BOARD_SIZE];
public int currentPlayer = 1;
int completedBoxes = 0;
public void PubStartGame(DabArena arena) {
// Clear the arena's board
arena.clearBoard(board, completedBoxes);
// Get a list of all players in the arena
List<DabPlayer> players = arena.getPlayers();
}
public DabArena getArena(String arenaName) {
ConfigurationSection arenaSection = arenasConfig.getConfigurationSection("arenas." + arenaName);
if (arenaSection == null) {
return null;
}
DabArena arena = new DabArena(arenaName, arenaSection.getInt("size"), arenaSection.getInt("lobby.x"), arenaSection.getInt("lobby.y"), arenaSection.getInt("lobby.z"),
arenaSection.getInt("start.x"), arenaSection.getInt("start.y"), arenaSection.getInt("start.z"));
return arena;
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
Block block = event.getClickedBlock();
if (event.getAction() == Action.LEFT_CLICK_BLOCK) {
drawLine(player, block, true);
} else if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
drawLine(player, block, false);
}
}
private void drawLine(Player player, Block block, boolean isHorizontal) {
int x = block.getX();
int y = block.getY();
int z = block.getZ();
if (isHorizontal == true) {
block.getRelative(1, 0, 0).setType(Material.STONE);
board[x][z] = currentPlayer;
} else {
block.getRelative(0, 0, 1).setType(Material.STONE);
board[x][z] = currentPlayer;
}
checkForCompletedBox(x, y, z);
currentPlayer = (currentPlayer == 1) ? 2 : 1;
}
private void checkForCompletedBox(int x, int y, int z) {
// Check if the left line is filled
if (x > 0 && board[x - 1][z] == currentPlayer && board[x][z] == currentPlayer) {
// Check if the bottom line is filled
if (z > 0 && board[x][z - 1] == currentPlayer) {
completedBoxes++;
}
// Check if the top line is filled
if (z < BOARD_SIZE - 1 && board[x][z + 1] == currentPlayer) {
completedBoxes++;
}
}
// Check if the right line is filled
if (x < BOARD_SIZE - 1 && board[x + 1][z] == currentPlayer && board[x][z] == currentPlayer) {
// Check if the bottom line is filled
if (z > 0 && board[x][z - 1] == currentPlayer) {
completedBoxes++;
}
// Check if the top line is filled
if (z < BOARD_SIZE - 1 && board[x][z + 1] == currentPlayer) {
completedBoxes++;
}
}
if (completedBoxes > 0) {
// Add points to the current player
int[] playerScores = new int[0];
playerScores[currentPlayer] += completedBoxes;
// Check if a player has reached the target score
if (playerScores[currentPlayer] >= TARGET_SCORE) {
// End the game and declare the winner
boolean gameOver = true;
int winner = currentPlayer;
}
}
}
}
Plugin.yml:
name: Dab
version: 1.16.5
main: dab.dab.Dab
api-version: 1.16
Пробовал менять плагин yml, но не с версией 1.16, не с 1.16.5 не работает. Спрашивал у чат гпт, искал в интернете, но видимо для ру-англо нета это не популярная проблема.
Источник: Stack Overflow на русском