Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите С плагином.

ShaGTF

Активный участник
Пользователь
Баллы
68
Имя в Minecraft
CoolShaGGy
Доброго дня! Переду сразу к делу. Вот код:
Код:
package me.ShaGTF.money;

import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;
















import java.util.HashMap;
import java.util.UUID;

import org.bukkit.entity.Blaze;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.Enderman;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Ghast;
import org.bukkit.entity.MagmaCube;
import org.bukkit.entity.Player;
import org.bukkit.entity.Silverfish;
import org.bukkit.entity.Skeleton;
import org.bukkit.entity.Skeleton.SkeletonType;
import org.bukkit.entity.Slime;
import org.bukkit.entity.Spider;
import org.bukkit.entity.Villager;
import org.bukkit.entity.Witch;
import org.bukkit.entity.Zombie;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;

public class Main_Class extends JavaPlugin implements Listener {
   
    private HashMap<UUID, Integer> money = new HashMap<>();

    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }
   
    public void onDisable() {
        for(UUID u : money.keySet()){
            getConfig().set(u + ".Coins", money.get(u));
        }
       
        saveConfig();
    }

    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        Player p = e.getPlayer();

        if (!getConfig().contains(p.getUniqueId().toString())) {
            getConfig().set(p.getUniqueId() + ".Coins", 0);
            money.put(p.getUniqueId(), 0);
        } else {
            money.put(p.getUniqueId(), getConfig().getInt(p.getUniqueId() + ".Coins"));
        }
    }

    @EventHandler
    public void onEntityDeath(EntityDeathEvent e) {
        if (e.getEntity() instanceof Zombie) {
            if (e.getEntity().getKiller() instanceof Player) {
                Zombie z = (Zombie) e.getEntity();
                Player p = z.getKiller();
                giveSilver(p, 50);
                p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Зомби, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "500 " + ChatColor.WHITE + "монет!" );
            }
        } else if (e.getEntity() instanceof Villager) {
            if (e.getEntity() instanceof Player) {
                Villager v = (Villager) e.getEntity();
                Player p = v.getKiller();
                takeSilver(p, 200);
                p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Жителя, " + ChatColor.WHITE + "за что с твоего счета снимается: " + ChatColor.GOLD + "200 " + ChatColor.WHITE + "монет!" );
            }
        }
    }
            @EventHandler
            public void onEntityDeath2(EntityDeathEvent e) {
                if (e.getEntity() instanceof Creeper) {
                    if (e.getEntity().getKiller() instanceof Player) {
                        Creeper z = (Creeper) e.getEntity();
                        Player p = z.getKiller();
                        giveSilver(p, 150);
                        p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Крипера, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "150 " + ChatColor.WHITE + "монет!" );
        }
    }
            }
            @EventHandler
            public void onEntityDeath3(EntityDeathEvent e) {
                if (e.getEntity() instanceof Spider) {
                    if (e.getEntity().getKiller() instanceof Player) {
                        Spider z = (Spider) e.getEntity();
                        Player p = z.getKiller();
                        giveSilver(p, 50);
                        p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Паука, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "50 " + ChatColor.WHITE + "монет!" );
        }
    }
            }
            @EventHandler
            public void onEntityDeath4(EntityDeathEvent e) {
                Spider z = (Spider) e.getEntity();
                if (e.getEntity() instanceof Spider) {
                    if(z.getType().equals(EntityType.CAVE_SPIDER)) {
                    if (e.getEntity().getKiller() instanceof Player) {
                        Player p = z.getKiller();
                        giveSilver(p, 100);
                        p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Пещерного паука, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "100 " + ChatColor.WHITE + "монет!" );
        }
    }
                }
            }
            @EventHandler
            public void onEntityDeath5(EntityDeathEvent e) {
                if (e.getEntity() instanceof Skeleton) {
                    if (e.getEntity().getKiller() instanceof Player) {
                        Skeleton z = (Skeleton) e.getEntity();
                        Player p = z.getKiller();
                        giveSilver(p, 120);
                        p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Скелета, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "120 " + ChatColor.WHITE + "монет!" );
        }
                }
    }
                @EventHandler
                public void onEntityDeath6(EntityDeathEvent e) {
                    if (e.getEntity() instanceof Skeleton) {
                        Skeleton sk = (Skeleton) e.getEntity();
                        if(sk.getType().equals(SkeletonType.WITHER)){
                        if (e.getEntity().getKiller() instanceof Player) {
                            Skeleton z = (Skeleton) e.getEntity();
                            Player p = z.getKiller();
                            giveSilver(p, 500);
                            p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Скелета-иссушителя, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "500 " + ChatColor.WHITE + "монет!" );
            }
        }
                    }
            }
                @EventHandler
                public void onEntityDeath7(EntityDeathEvent e) {
                    if (e.getEntity() instanceof Slime) {
                        if (e.getEntity().getKiller() instanceof Player) {
                            Slime z = (Slime) e.getEntity();
                            Player p = z.getKiller();
                            giveSilver(p, 150);
                            p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Слайма, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "150 " + ChatColor.WHITE + "монет!" );
            }
                    }
        }
                @EventHandler
                public void onEntityDeath8(EntityDeathEvent e) {
                    if (e.getEntity() instanceof Ghast) {
                        if (e.getEntity().getKiller() instanceof Player) {
                            Ghast z = (Ghast) e.getEntity();
                            Player p = z.getKiller();
                            giveSilver(p, 300);
                            p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Гаста, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "300 " + ChatColor.WHITE + "монет!" );
            }
                    }
        }
                @EventHandler
                public void onEntityDeath9(EntityDeathEvent e) {
                    if (e.getEntity() instanceof Silverfish) {
                        if (e.getEntity().getKiller() instanceof Player) {
                            Silverfish z = (Silverfish) e.getEntity();
                            Player p = z.getKiller();
                            giveSilver(p, 100);
                            p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Чешуйницу, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "100 " + ChatColor.WHITE + "монет!" );
            }
                    }
        }
                @EventHandler
                public void onEntityDeath10(EntityDeathEvent e) {
                    if (e.getEntity() instanceof MagmaCube) {
                        if (e.getEntity().getKiller() instanceof Player) {
                            MagmaCube z = (MagmaCube) e.getEntity();
                            Player p = z.getKiller();
                            giveSilver(p, 250);
                            p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Лава-куба, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "250 " + ChatColor.WHITE + "монет!" );
            }
                    }
        }
                @EventHandler
                public void onEntityDeath11(EntityDeathEvent e) {
                    if (e.getEntity() instanceof Blaze) {
                        if (e.getEntity().getKiller() instanceof Player) {
                            Blaze z = (Blaze) e.getEntity();
                            Player p = z.getKiller();
                            giveSilver(p, 400);
                            p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Ифрита, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "400 " + ChatColor.WHITE + "монет!" );
            }
                    }
        }
                @EventHandler
                public void onEntityDeath12(EntityDeathEvent e) {
                    if (e.getEntity() instanceof Witch) {
                        if (e.getEntity().getKiller() instanceof Player) {
                            Witch z = (Witch) e.getEntity();
                            Player p = z.getKiller();
                            giveSilver(p, 280);
                            p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Ведьму, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "280 " + ChatColor.WHITE + "монет!" );
            }
                    }
        }
                @EventHandler
                public void onEntityDeath13(EntityDeathEvent e) {
                    if (e.getEntity() instanceof Enderman) {
                        if (e.getEntity().getKiller() instanceof Player) {
                            Enderman z = (Enderman) e.getEntity();
                            Player p = z.getKiller();
                            giveSilver(p, 290);
                            p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Странника Края, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "290 " + ChatColor.WHITE + "монет!" );
            }
                    }
        }
                @EventHandler
                public void onEntityDeath14(EntityDeathEvent e) {
                    Zombie zo = (Zombie) e.getEntity();
                    if (e.getEntity() instanceof Zombie) {
                        if(zo.getType().equals(EntityType.PIG_ZOMBIE)){
                        if (e.getEntity().getKiller() instanceof Player) {
                            Zombie z = (Zombie) e.getEntity();
                            Player p = z.getKiller();
                            giveSilver(p, 220);
                            p.sendMessage(ChatColor.WHITE + "Ты убил " + ChatColor.RED + "Зомби-свинью, " + ChatColor.WHITE + "за что получаешь: " + ChatColor.GOLD + "220 " + ChatColor.WHITE + "монет!" );
            }
                    }
        }
                }
               
    private void giveSilver(Player p, int i) {
        UUID uuid = p.getUniqueId();
        money.put(uuid, money.get(uuid) +i);
        p.sendMessage("§2§l$" + i + " coins received!");
    }

    private void takeSilver(Player p, int i) {
        UUID uuid = p.getUniqueId();
        money.put(uuid, money.get(uuid) -i);
        p.sendMessage("§c§l$" + i + " coins taken!");
    }
}
А также проблема в том, что если я убью моба, то деньги зачислятся, но после этого ничего не работает...
Прошу помощи!
Спасибо ;3
 
Ошибка при убийстве любого моба в списке:
Код:
[17:29:31 ERROR]: Could not pass event EntityDeathEvent to MoneySystem v1.0INDEV

org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:294) ~[craftbukkit.jar:?]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62) ~[craftbukkit.jar:?]
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi
stener.java:30) ~[craftbukkit.jar:?]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:502) [craftbukkit.jar:?]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:487) [craftbukkit.jar:?]
        at org.bukkit.craftbukkit.v1_7_R2.event.CraftEventFactory.callEntityDeat
hEvent(CraftEventFactory.java:349) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.EntityCreeper.dropDeathLoot(EntityCreepe
r.java:158) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.EntityLiving.die(EntityLiving.java:786)
[craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.EntityCreeper.die(EntityCreeper.java:130
) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.EntityLiving.damageEntity(EntityLiving.j
ava:734) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.EntityMonster.damageEntity(EntityMonster
.java:47) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.EntityHuman.attack(EntityHuman.java:919)
[craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.PlayerConnection.a(PlayerConnection.java
:1458) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.PacketPlayInUseEntity.a(SourceFile:55) [
craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.PacketPlayInUseEntity.handle(SourceFile:
10) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.NetworkManager.a(NetworkManager.java:148
) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.ServerConnection.c(ServerConnection.java
:77) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.MinecraftServer.v(MinecraftServer.java:7
05) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.DedicatedServer.v(DedicatedServer.java:2
73) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.MinecraftServer.u(MinecraftServer.java:5
68) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.MinecraftServer.run(MinecraftServer.java
:474) [craftbukkit.jar:?]
        at net.minecraft.server.v1_7_R2.ThreadServerApplication.run(SourceFile:6
18) [craftbukkit.jar:?]
Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_7_R2.entity.C
raftCreeper cannot be cast to org.bukkit.entity.Spider
        at me.ShaGTF.money.Main_Class.onEntityDeath4(Main_Class.java:114) ~[?:?]

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
_20]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
_20]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
.8.0_20]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_20]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:292) ~[craftbukkit.jar:?]
        ... 21 more
>
 
Для начала скажите, зачем вам 14 слушателей одного ивента? А ошибка появляется, потому что вы сначала кастуете моба, а только потом проверяете его принадлежность к этому типу.
 
Для начала скажите, зачем вам 14 слушателей одного ивента? А ошибка появляется, потому что вы сначала кастуете моба, а только потом проверяете его принадлежность к этому типу.
Хорошо, спасибо, сейчас попробую.
 
О_О
Зачем 14? о_о
Напишите все в 1 проверяя тип моба, а еще лучше используйте switch
А еще лучше подучите основы перед тем как браться за подобные вещи
 

Поделиться этой страницей

Назад
Верх