- Баллы
- 76
- Имя в Minecraft
- DragOn4ik
Здравствуйте 🙂
Столкнулся я с такой проблемой:
Я разработал свой первый плагин, в компиляции ошибок не было, plugin.yml составлен правильно.
Но при загрузке плагина получаю ошибку:
Как исправить эту ошибку?
P.S. Проблема решена.
Скачать плагин
За говнокод простите, первый раз плагин пишу 😉
Столкнулся я с такой проблемой:
Я разработал свой первый плагин, в компиляции ошибок не было, plugin.yml составлен правильно.
Но при загрузке плагина получаю ошибку:
Код:
2018-07-25 18:21:54 [SEVERE] Could not load 'plugins/dragoncraft.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.ClassNotFoundException: Failed to remap class plugin.plugin at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:176) at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:307)
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:231)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugins(CraftServer.java:265)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.<init>(CraftServer.java:243)
at net.minecraft.server.management.ServerConfigurationManager.<init>(ServerConfigurationManager.java:128)
at net.minecraft.server.dedicated.DedicatedPlayerList.<init>(SourceFile:11)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:158)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:579)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573) Caused by: java.lang.ClassNotFoundException: Failed to remap class plugin.plugin
at org.bukkit.plugin.java.PluginClassLoader.remappedFindClass(PluginClassLoader.java:442)
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:356)
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:332)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:165)
... 9 more
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source) at org.objectweb.asm.ClassReader.<init>(Unknown Source) at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at net.md_5.specialsource.RemapperPreprocessor.preprocess(RemapperPreprocessor.java:83)
at org.bukkit.plugin.java.PluginClassLoader.remappedFindClass(PluginClassLoader.java:398)
... 16 more
P.S. Проблема решена.
Скачать плагин
package com.dragon4ik.plugin;
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.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Plugin extends JavaPlugin implements Listener, CommandExecutor{
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this); //Регистрация эвента
getCommand("explokill").setExecutor(this); //Регистрация команды
Bukkit.getConsoleSender().sendMessage("<DragOn4ik> My plugin is enabled! 🙂");
}
public void onDisable() {
Bukkit.getConsoleSender().sendMessage("<DragOn4ik> My plugin is disabled! Good bye.");
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e)
{
if(e.getPlayer().hasPermission("dragon4ik.hidejoin"))
return;
String name = e.getPlayer().getName();
for(Player p:Bukkit.getServer().getOnlinePlayers())
if(!p.getName().equals(name))
p.sendMessage("Игрок "+name+" вошёл на сервер!");
}
@EventHandler
public void onDeath(PlayerDeathEvent e) {
Player player = e.getEntity();
Player killer = player.getKiller();
String killername = killer.getName();
player.sendMessage(ChatColor.DARK_PURPLE + "Вас убил игрок " + ChatColor.RED + killername);
}
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(command.getName().equalsIgnoreCase("vk")){
Player player = (Player)sender;
if(player.hasPermission("dragon4ik.command.vk")) {
player.sendMessage(ChatColor.GREEN + "Наша группа ВКонтакте: " + ChatColor.BLUE + "<замени этот текст в Plugin.java>");
return true;
} else {
player.sendMessage(ChatColor.RED + "Недостаточно прав!");
}
}
if(command.getName().equalsIgnoreCase("explokill")) {
float explosionPower = 4F;
Player player = (Player)sender;
if(args.length == 0) {
player.sendMessage(ChatColor.RED + "А кого взрывать-то? (/explokill [игрок])");
return true;
}
if(player.getServer().getPlayerExact(args[0]) == null) {
player.sendMessage(ChatColor.RED + "Игрока нет на сервере!");
return true;
}
if(player.hasPermission("dragon4ik.command.explokill")) {
Player target = player.getServer().getPlayerExact(args[0]);
target.getWorld().createExplosion(target.getLocation(), explosionPower);
target.setHealth(0);
player.sendMessage(ChatColor.AQUA + "Вы взорвали игрока " + ChatColor.RED + target.getName());
String killer = player.getPlayer().getName();
String etarget = target.getName();
Bukkit.getConsoleSender().sendMessage("Игрок " + killer + " взорвал игрока " + etarget);
return true;
} else {
player.sendMessage(ChatColor.DARK_RED + "Недостаточно прав!");
}
}
return false;
}
}
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.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Plugin extends JavaPlugin implements Listener, CommandExecutor{
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this); //Регистрация эвента
getCommand("explokill").setExecutor(this); //Регистрация команды
Bukkit.getConsoleSender().sendMessage("<DragOn4ik> My plugin is enabled! 🙂");
}
public void onDisable() {
Bukkit.getConsoleSender().sendMessage("<DragOn4ik> My plugin is disabled! Good bye.");
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e)
{
if(e.getPlayer().hasPermission("dragon4ik.hidejoin"))
return;
String name = e.getPlayer().getName();
for(Player p:Bukkit.getServer().getOnlinePlayers())
if(!p.getName().equals(name))
p.sendMessage("Игрок "+name+" вошёл на сервер!");
}
@EventHandler
public void onDeath(PlayerDeathEvent e) {
Player player = e.getEntity();
Player killer = player.getKiller();
String killername = killer.getName();
player.sendMessage(ChatColor.DARK_PURPLE + "Вас убил игрок " + ChatColor.RED + killername);
}
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(command.getName().equalsIgnoreCase("vk")){
Player player = (Player)sender;
if(player.hasPermission("dragon4ik.command.vk")) {
player.sendMessage(ChatColor.GREEN + "Наша группа ВКонтакте: " + ChatColor.BLUE + "<замени этот текст в Plugin.java>");
return true;
} else {
player.sendMessage(ChatColor.RED + "Недостаточно прав!");
}
}
if(command.getName().equalsIgnoreCase("explokill")) {
float explosionPower = 4F;
Player player = (Player)sender;
if(args.length == 0) {
player.sendMessage(ChatColor.RED + "А кого взрывать-то? (/explokill [игрок])");
return true;
}
if(player.getServer().getPlayerExact(args[0]) == null) {
player.sendMessage(ChatColor.RED + "Игрока нет на сервере!");
return true;
}
if(player.hasPermission("dragon4ik.command.explokill")) {
Player target = player.getServer().getPlayerExact(args[0]);
target.getWorld().createExplosion(target.getLocation(), explosionPower);
target.setHealth(0);
player.sendMessage(ChatColor.AQUA + "Вы взорвали игрока " + ChatColor.RED + target.getName());
String killer = player.getPlayer().getName();
String etarget = target.getName();
Bukkit.getConsoleSender().sendMessage("Игрок " + killer + " взорвал игрока " + etarget);
return true;
} else {
player.sendMessage(ChatColor.DARK_RED + "Недостаточно прав!");
}
}
return false;
}
}
name: DragOn4ikPlugin
author: DragOn4ik
version: 0.1
main: com.dragon4ik.plugin.Plugin
commands:
vk:
description: VK Group
permission: dragon4ik.command.vk
usage: /vk
explokill:
description: Explode Player
permission: dragon4ik.command.explokill
usage: /explokill [player]
author: DragOn4ik
version: 0.1
main: com.dragon4ik.plugin.Plugin
commands:
vk:
description: VK Group
permission: dragon4ik.command.vk
usage: /vk
explokill:
description: Explode Player
permission: dragon4ik.command.explokill
usage: /explokill [player]
За говнокод простите, первый раз плагин пишу 😉
Последнее редактирование: