Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Разработка плагинов для новичков' started by ShaGTF, Nov 12, 2014.

  1. Автор темы
    ShaGTF

    ShaGTF Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    CoolShaGGy
    Доброго дня! Переду сразу к делу. Вот код:
    Code:
    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
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    ShaGTF

    ShaGTF Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    CoolShaGGy
    Ошибка при убийстве любого моба в списке:
    Code:
    [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
    >
     
  4. serega6531

    serega6531 Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    shkurovs
    Для начала скажите, зачем вам 14 слушателей одного ивента? А ошибка появляется, потому что вы сначала кастуете моба, а только потом проверяете его принадлежность к этому типу.
     
  5. Автор темы
    ShaGTF

    ShaGTF Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    CoolShaGGy
    Хорошо, спасибо, сейчас попробую.
     
  6. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    О_О
    Зачем 14? о_о
    Напишите все в 1 проверяя тип моба, а еще лучше используйте switch
    А еще лучше подучите основы перед тем как браться за подобные вещи
     

Share This Page