MrMeow
Ньюби
- Баллы
- 1
Я написал плагин на деньги и комманду /money с неопределённым количеством аргументов(от 0 до бесконечности аргументов должно приниматься), вот я сделал, скомпилил в JAR, скинул другу на серв, а там выдаёт ошибку по поводу комманды(заранее говорю, проблем с спигот апи и слишком новой версией JRE у меня быть не должно, уже прошёл через это в своём обучении писанию плагинов).
Вот ошибка от сервера друга в консоли и мой код с plugin.yml:
Ошибка:
Main
CommandMoney
Money
plugin.yml
Вот ошибка от сервера друга в консоли и мой код с plugin.yml:
Ошибка:
Код:
[15:22:00 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'money' in plugin ManiMani v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.16.3.jar:git-Paper-231]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.3.jar:git-Paper-231]
at org.bukkit.craftbukkit.v1_16_R2.CraftServer.dispatchCommand(CraftServer.java:802) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.PlayerConnection.handleCommand(PlayerConnection.java:1918) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.PlayerConnection.a(PlayerConnection.java:1729) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:23) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.TickTask.run(SourceFile:18) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.MinecraftServer.ba(MinecraftServer.java:1135) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.MinecraftServer.executeNext(MinecraftServer.java:1128) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.MinecraftServer.sleepForTick(MinecraftServer.java:1089) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:1003) ~[patched_1.16.3.jar:git-Paper-231]
at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.3.jar:git-Paper-231]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_261]
Caused by: java.lang.NullPointerException
at org.mrmeow.mani_mani.CommandMoney.onCommand(CommandMoney.java:12) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.3.jar:git-Paper-231]
... 18 more
Main
Код:
package org.mrmeow.mani_mani;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener{
@Override
public void onEnable(){
this.getCommand("money").setExecutor(new CommandMoney());
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onEntityDeath(EntityDeathEvent deathEvent){
Entity e = deathEvent.getEntity();
if(e.getType() != null){
Entity k = ((LivingEntity)e).getKiller();
if(k.getType() == EntityType.PLAYER){
if(Money.MoneyList.get(k.getName()) == null)
{
Money.MoneyList.put(k.getName(), 1);
}
Money.MoneyList.put(k.getName(), Money.MoneyList.get(k.getName()) + 1);
}
}
}
}
CommandMoney
Код:
package org.mrmeow.mani_mani;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
public class CommandMoney implements CommandExecutor{
@Override
public boolean onCommand(CommandSender sender, Command command, String aliases, String[] args){
if (args.length == 0){
if(Money.MoneyList.containsKey(sender.getName())){
sender.sendMessage("У вас " + Integer.toString(Money.MoneyList.get(sender.getName())) + " монеток!");
}
else{
sender.sendMessage("Я конечно могу сказать что у вас 0 монеток, но вы ещё ничего не сделали, идите бейте мобов, а потом можете спрашивать!");
}
}
else{
Money.MoneyList.forEach((playerName, moneyAmount) ->{
if(Money.MoneyList.containsKey(playerName)){
System.out.println("У игрока " + playerName + " " + Integer.toString(moneyAmount) + " монеток!");
}
else{
sender.sendMessage("У игрока " + playerName + " ещё не активен счёт!");
}
});
}
return true;
}
}
Money
Код:
package org.mrmeow.mani_mani;
import java.util.HashMap;
public class Money{
public static HashMap<String, Integer> MoneyList;
}
plugin.yml
Код:
main: org.mrmeow.mani_mani.Main
name: ManiMani
version: 1.0
commands:
money:
description: Get someone's money amount!
aliases: [cash]
usage: /money [PlayerNames like "George Maria228 PewDieCake"]