Не удается найти основной класс в плагине Bukkit - PullRequest
0 голосов
/ 10 января 2019

У меня проблемы с моим плагином. Ошибка: «Не удается найти основной класс« turtdle.abilities.Main »» (я знаю, что записал черепаху неправильно, но это мое имя пользователя.)

Этот плагин для моего сервера. Я уже пытался заполнить файл plugin.yml (с автором, версией и т. Д.). Я также попытался изменить имя плагина на «Основной». Я также попытался переместить yml безуспешно.

package turtdle.abilities;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.permissions.Permission;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{

    public Permission playerPermission1 = new Permission("turtdle.abilities.get");
    public Permission playerPermission2 = new Permission("turtdle.place.bedrock");
    @Override
    public void onEnable() {
        getLogger().info("onEnable Has been enabled for abilities plugin! BOOP!");
        new PlayerListener(this);
        new BlockRestricter(this);
        PluginManager pm = getServer().getPluginManager();
        pm.addPermission(playerPermission1);
        pm.addPermission(playerPermission2);
    }

    @Override
    public void onDisable() {
        getLogger().info("onDisable Has been triggered for abilities plugin");
    }

    public boolean onCommand(CommandSender sender, Command cmd, String label,
            String[] args) {
        if (cmd.getName().equalsIgnoreCase("hello") && sender instanceof Player) {
            Player player = (Player) sender;
            player.sendMessage("Hewwooo, " + player.getName());
            return true;
        }
        return false;

    }
}

package turtdle.abilities;

import org.bukkit.ChatColor;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;

public class PlayerListener implements Listener{
    public PlayerListener(Main plugin) {
        plugin.getServer().getPluginManager().registerEvents(this, plugin);
    }
    @EventHandler
    public void onDeath (PlayerDeathEvent e) {
        Player player = e.getEntity();
        if (!player.hasPermission("turtdle.abilities.get")) {
            player.sendMessage(ChatColor.AQUA + "OOF");
        }
        else {
            {
                player.sendMessage(ChatColor.AQUA + "you should've abused...");
            }
        }
    }
}

package turtdle.abilities;

import org.bukkit.ChatColor;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;

public class BlockRestricter implements Listener{
    public BlockRestricter(Main plugin) {
        plugin.getServer().getPluginManager().registerEvents(this, plugin);
    }
    @EventHandler
    public void onBlockPlace (BlockPlaceEvent e) {
        Player player = e.getPlayer();
        Block block = e.getBlock();
        if (!player.hasPermission("turtdle.place.bedrock") &&  block.getType().getId() == 7) {
            player.sendMessage(ChatColor.RED + "You CAN'T PLACE THIS " + ChatColor.BOLD + "BLOCK! " + ChatColor.RESET  + ChatColor.RED +  " it is ILLEGAL");
            e.setCancelled(true);

        }
    }
}

plugin.yml: 
main: turtdle.abilities.Main
name: TurtdleAbilitiesCore
version: 0.2.9
author: CakeyTheTurtdle
description: ExclusiveWolfHuntplugin
commands:
   hello:
      description: When you're lonely
      usage: /hello

Эй, вот и вся моя ошибка

https://pastebin.com/FAieE0Lr

1 Ответ

0 голосов
/ 17 января 2019

Другой ответ, к сожалению, неверный.

В Pastebin, который вы связали, мы видим, что ошибка следующая:

Caused by: java.lang.ClassNotFoundException: turtdle.Main

Когда Bukkit пытается загрузить ваш основной класс, он ищет класс turtdle.Main. Это странно по той причине, что ваш plugin.yml говорит ему искать turtdle.abilities.Main, чего он не делает.

Я предполагаю, что причина проблемы заключается в том, что иногда, когда проект компилируется, ваша IDE может не захватить отредактированный файл plugin.yml, чтобы поместить его в окончательный вариант. Чтобы это исправить, выполните следующие действия:

  1. Откройте папку вашего проекта и удалите все / все следующие файлы / папки, если они существуют:
    • бен /
    • цель /
    • YourPluginName.jar
  2. Перейдите в папку на вашем сервере и также удалите YourPluginName.jar
  3. Перекомпилируйте ваш проект и добавьте свежий файл jar в папку плагинов.

Надеюсь, это должно решить проблему. Ваш файл и код plugin.yml выглядят хорошо и теоретически должны работать. Это единственное, о чем я могу думать, что это может вызвать проблему.

Удачи!

...