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

Помогите [Решено] Не работает плагин

Тема в разделе "Разработка плагинов для новичков", создана пользователем php5master, 6 дек 2016.

Статус темы:
Закрыта.
  1. Автор темы
    php5master

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

    Баллы:
    61
    Помогите, плагин не робит
    Код:
    package game;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.World;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    /*
    * Клики отчёта
    for (Player player : Bukkit.getOnlinePlayers()) {
                    player.playSound(player.getLocation(), Sound.CLICK, 1, 1);
                    }
    */
    public class Main extends JavaPlugin{
      
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            Player p = Bukkit.getPlayer(sender.toString());
            if(args.length == 1){
            if(cmd.getName().equalsIgnoreCase("mp")){
                getConfig().set("mp.x", String.valueOf(p.getLocation().getX()));
                getConfig().set("mp.y", String.valueOf(p.getLocation().getY()));
                getConfig().set("mp.z", String.valueOf(p.getLocation().getZ()));
                getConfig().set("mp.w", p.getLocation().getWorld().toString());
                saveConfig();
                Bukkit.broadcastMessage("§6"+sender.toString()+"создал мероприятие"+args[1]);
                Bukkit.broadcastMessage("§6Для телепорта пропишите §4/gotomp");
            }
            }
            if(cmd.getName().equalsIgnoreCase("gotomp")){
                World w = Bukkit.getServer().getWorld(getConfig().getString("mp.w"));
                Double x = Double.parseDouble(getConfig().getString("mp.x"));
                Double y = Double.parseDouble(getConfig().getString("mp.y"));
                Double z = Double.parseDouble(getConfig().getString("mp.z"));
                Location locForTp = new Location(w, x, y, z);
                p.teleport(locForTp);
            }
          
            return false;
        }
    }
    Код:
    [21:38:04] [Server thread/INFO]: Starting minecraft server version 1.8.8
    [21:38:04] [Server thread/INFO]: Loading properties
    [21:38:04] [Server thread/INFO]: Default game type: SURVIVAL
    [21:38:04] [Server thread/INFO]: This server is running CraftBukkit version git-Spigot-5f38d38-18fbb24 (MC: 1.8.8) (Implementing API version 1.8.8-R0.1-SNAPSHOT)
    [21:38:04] [Server thread/INFO]: Debug logging is disabled
    [21:38:04] [Server thread/INFO]: Server Ping Player Sample Count: 12
    [21:38:04] [Server thread/INFO]: Using 4 threads for Netty based IO
    [21:38:04] [Server thread/INFO]: Generating keypair
    [21:38:06] [Server thread/INFO]: Starting Minecraft server on *:25565
    [21:38:06] [Server thread/INFO]: Using default channel type
    [21:38:06] [Server thread/INFO]: Set PluginClassLoader as parallel capable
    [21:38:06] [Server thread/INFO]: [SMBU] Loading SMBU v1.0
    [21:38:06] [Server thread/WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
    [21:38:06] [Server thread/WARN]: The server will make no attempt to authenticate usernames. Beware.
    [21:38:06] [Server thread/WARN]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
    [21:38:06] [Server thread/WARN]: To change this, set "online-mode" to "true" in the server.properties file.
    [21:38:06] [Server thread/INFO]: **** Beginning UUID conversion, this may take A LONG time ****
    [21:38:06] [Server thread/INFO]: Preparing level "world"
    [21:38:06] [Server thread/INFO]: -------- World Settings For [world] --------
    [21:38:06] [Server thread/INFO]: Zombie Aggressive Towards Villager: true
    [21:38:06] [Server thread/INFO]: Arrow Despawn Rate: 1200
    [21:38:06] [Server thread/INFO]: Item Despawn Rate: 6000
    [21:38:06] [Server thread/INFO]: Item Merge Radius: 2.5
    [21:38:06] [Server thread/INFO]: View Distance: 10
    [21:38:06] [Server thread/INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
    [21:38:06] [Server thread/INFO]: Chunks to Grow per Tick: 650
    [21:38:06] [Server thread/INFO]: Clear tick list: false
    [21:38:06] [Server thread/INFO]: Experience Merge Radius: 3.0
    [21:38:06] [Server thread/INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
    [21:38:06] [Server thread/INFO]: Mob Spawn Range: 4
    [21:38:06] [Server thread/INFO]: Anti X-Ray: true
    [21:38:06] [Server thread/INFO]:     Engine Mode: 1
    [21:38:06] [Server thread/INFO]:     Hidden Blocks: [14, 15, 16, 21, 48, 49, 54, 56, 73, 74, 82, 129, 130]
    [21:38:06] [Server thread/INFO]:     Replace Blocks: [1, 5]
    [21:38:06] [Server thread/INFO]: Nerfing mobs spawned from spawners: false
    [21:38:06] [Server thread/INFO]: Cactus Growth Modifier: 100%
    [21:38:06] [Server thread/INFO]: Cane Growth Modifier: 100%
    [21:38:06] [Server thread/INFO]: Melon Growth Modifier: 100%
    [21:38:06] [Server thread/INFO]: Mushroom Growth Modifier: 100%
    [21:38:06] [Server thread/INFO]: Pumpkin Growth Modifier: 100%
    [21:38:06] [Server thread/INFO]: Sapling Growth Modifier: 100%
    [21:38:06] [Server thread/INFO]: Wheat Growth Modifier: 100%
    [21:38:06] [Server thread/INFO]: NetherWart Growth Modifier: 100%
    [21:38:06] [Server thread/INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
    [21:38:06] [Server thread/INFO]: Structure Info Saving: true
    [21:38:06] [Server thread/INFO]: Sending up to 10 chunks per packet
    [21:38:06] [Server thread/INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
    [21:38:06] [Server thread/INFO]: Random Lighting Updates: false
    [21:38:06] [Server thread/INFO]: Hopper Transfer: 8 Hopper Check: 8 Hopper Amount: 1
    [21:38:06] [Server thread/INFO]: Max TNT Explosions: 100
    [21:38:06] [Server thread/INFO]: Max Entity Collisions: 8
    [21:38:06] [Server thread/INFO]: Custom Map Seeds:  Village: 10387312 Feature: 14357617
    [21:38:07] [Server thread/INFO]: -------- World Settings For [world_nether] --------
    [21:38:07] [Server thread/INFO]: Zombie Aggressive Towards Villager: true
    [21:38:07] [Server thread/INFO]: Arrow Despawn Rate: 1200
    [21:38:07] [Server thread/INFO]: Item Despawn Rate: 6000
    [21:38:07] [Server thread/INFO]: Item Merge Radius: 2.5
    [21:38:07] [Server thread/INFO]: View Distance: 10
    [21:38:07] [Server thread/INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
    [21:38:07] [Server thread/INFO]: Chunks to Grow per Tick: 650
    [21:38:07] [Server thread/INFO]: Clear tick list: false
    [21:38:07] [Server thread/INFO]: Experience Merge Radius: 3.0
    [21:38:07] [Server thread/INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
    [21:38:07] [Server thread/INFO]: Mob Spawn Range: 4
    [21:38:07] [Server thread/INFO]: Anti X-Ray: true
    [21:38:07] [Server thread/INFO]:     Engine Mode: 1
    [21:38:07] [Server thread/INFO]:     Hidden Blocks: [14, 15, 16, 21, 48, 49, 54, 56, 73, 74, 82, 129, 130]
    [21:38:07] [Server thread/INFO]:     Replace Blocks: [1, 5]
    [21:38:07] [Server thread/INFO]: Nerfing mobs spawned from spawners: false
    [21:38:07] [Server thread/INFO]: Cactus Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Cane Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Melon Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Mushroom Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Pumpkin Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Sapling Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Wheat Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: NetherWart Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
    [21:38:07] [Server thread/INFO]: Structure Info Saving: true
    [21:38:07] [Server thread/INFO]: Sending up to 10 chunks per packet
    [21:38:07] [Server thread/INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
    [21:38:07] [Server thread/INFO]: Random Lighting Updates: false
    [21:38:07] [Server thread/INFO]: Hopper Transfer: 8 Hopper Check: 8 Hopper Amount: 1
    [21:38:07] [Server thread/INFO]: Max TNT Explosions: 100
    [21:38:07] [Server thread/INFO]: Max Entity Collisions: 8
    [21:38:07] [Server thread/INFO]: Custom Map Seeds:  Village: 10387312 Feature: 14357617
    [21:38:07] [Server thread/INFO]: -------- World Settings For [world_the_end] --------
    [21:38:07] [Server thread/INFO]: Zombie Aggressive Towards Villager: true
    [21:38:07] [Server thread/INFO]: Arrow Despawn Rate: 1200
    [21:38:07] [Server thread/INFO]: Item Despawn Rate: 6000
    [21:38:07] [Server thread/INFO]: Item Merge Radius: 2.5
    [21:38:07] [Server thread/INFO]: View Distance: 10
    [21:38:07] [Server thread/INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
    [21:38:07] [Server thread/INFO]: Chunks to Grow per Tick: 650
    [21:38:07] [Server thread/INFO]: Clear tick list: false
    [21:38:07] [Server thread/INFO]: Experience Merge Radius: 3.0
    [21:38:07] [Server thread/INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
    [21:38:07] [Server thread/INFO]: Mob Spawn Range: 4
    [21:38:07] [Server thread/INFO]: Anti X-Ray: true
    [21:38:07] [Server thread/INFO]:     Engine Mode: 1
    [21:38:07] [Server thread/INFO]:     Hidden Blocks: [14, 15, 16, 21, 48, 49, 54, 56, 73, 74, 82, 129, 130]
    [21:38:07] [Server thread/INFO]:     Replace Blocks: [1, 5]
    [21:38:07] [Server thread/INFO]: Nerfing mobs spawned from spawners: false
    [21:38:07] [Server thread/INFO]: Cactus Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Cane Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Melon Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Mushroom Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Pumpkin Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Sapling Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Wheat Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: NetherWart Growth Modifier: 100%
    [21:38:07] [Server thread/INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
    [21:38:07] [Server thread/INFO]: Structure Info Saving: true
    [21:38:07] [Server thread/INFO]: Sending up to 10 chunks per packet
    [21:38:07] [Server thread/INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
    [21:38:07] [Server thread/INFO]: Random Lighting Updates: false
    [21:38:07] [Server thread/INFO]: Hopper Transfer: 8 Hopper Check: 8 Hopper Amount: 1
    [21:38:07] [Server thread/INFO]: Max TNT Explosions: 100
    [21:38:07] [Server thread/INFO]: Max Entity Collisions: 8
    [21:38:07] [Server thread/INFO]: Custom Map Seeds:  Village: 10387312 Feature: 14357617
    [21:38:07] [Server thread/INFO]: Preparing start region for level 0 (Seed: 5249233499187189820)
    [21:38:08] [Server thread/INFO]: Preparing spawn area: 5%
    [21:38:09] [Server thread/INFO]: Preparing spawn area: 80%
    [21:38:09] [Server thread/INFO]: Preparing start region for level 1 (Seed: 5249233499187189820)
    [21:38:10] [Server thread/INFO]: Preparing spawn area: 52%
    [21:38:11] [Server thread/INFO]: Preparing start region for level 2 (Seed: 5249233499187189820)
    [21:38:11] [Server thread/INFO]: [SMBU] Enabling SMBU v1.0
    [21:38:11] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
    [21:38:11] [Server thread/INFO]: Done (5,263s)! For help, type "help" or "?"
    [21:38:13] [Thread-8/INFO]: UUID of player phpmaster is 630d88a5-8086-37e9-aa5e-b8ad6be774a2
    [21:38:13] [Server thread/INFO]: phpmaster[/127.0.0.1:57793] logged in with entity id 250 at ([world]-376.69887197805775, 69.0, 315.53807547587445)
    [21:38:27] [Server thread/INFO]: phpmaster issued server command: /mp party
    [21:38:27] [Server thread/ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'mp' in plugin SMBU v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_111]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_111]
        at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_111]
    Caused by: java.lang.NullPointerException
        at game.Main.onCommand(Main.java:24) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Spigot-5f38d38-18fbb24]
        ... 15 more
    [21:38:31] [Server thread/INFO]: phpmaster lost connection: Disconnected
    [21:38:31] [Server thread/INFO]: phpmaster left the game.
    [21:38:36] [Server thread/INFO]: Stopping the server
    [21:38:36] [Server thread/INFO]: Stopping server
    [21:38:36] [Server thread/INFO]: [SMBU] Disabling SMBU v1.0
    [21:38:36] [Server thread/INFO]: Saving players
    [21:38:36] [Server thread/INFO]: Saving worlds
    [21:38:36] [Server thread/INFO]: Saving chunks for level 'world'/Overworld
    [21:38:36] [Server thread/INFO]: Saving chunks for level 'world_nether'/Nether
    [21:38:36] [Server thread/INFO]: Saving chunks for level 'world_the_end'/The End
    
     
  2. Хостинг MineCraft
    <
  3. AtomicInteger

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

    Баллы:
    46
    В сигнатуру класса добавь implements CommandExecutor.
     
  4. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Перестань.
    Давать.
    Вредные.
    Советы.
    ...
    На самом деле у тебя конфиг = null
     
  5. Автор темы
    php5master

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

    Баллы:
    61
    Не помогло
    Конфиг, с которым компилировал плагин
    Код:
    mp:
      x:
      y:
      z:
      w:
    
     
  6. AtomicInteger

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

    Баллы:
    46
    Да, это не нужно, извиняюсь.
    Игрока лучше получать так:
    Код:
    Player p = (Player) sender;
    После успешного выполнения каждой команды лучше возвращать результат true.
     
    Последнее редактирование: 6 дек 2016
  7. AtomicInteger

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

    Баллы:
    46
    Возможно, что при копировании кода на сайт нумерация строк сбилась, так что NPE вылетает тут:
    Код:
    Bukkit.broadcastMessage("§6" + p.getName() + "создал мероприятие" + args[1]);
    Выше есть проверка, на количество аргументов, если она проходит, то количество аргументов - 1, а их нумерация начинается с нуля, а не с единицы.Соотв. код должен выглядеть примерно так:
    Код:
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            Player p = (Player) sender;
            if (args.length == 1) {
                if (cmd.getName().equalsIgnoreCase("mp")) {
                    getConfig().set("mp.x", String.valueOf(p.getLocation().getX()));
                    getConfig().set("mp.y", String.valueOf(p.getLocation().getY()));
                    getConfig().set("mp.z", String.valueOf(p.getLocation().getZ()));
                    getConfig().set("mp.w", p.getLocation().getWorld().toString());
                    saveConfig();
                    Bukkit.broadcastMessage("§6" + p.getName() + "создал мероприятие" + args[0]);
                    Bukkit.broadcastMessage("§6Для телепорта пропишите §4/gotomp");
                    return true;
                }
            }
            if (cmd.getName().equalsIgnoreCase("gotomp")) {
                World w = Bukkit.getServer().getWorld(getConfig().getString("mp.w"));
                Double x = Double.parseDouble(getConfig().getString("mp.x"));
                Double y = Double.parseDouble(getConfig().getString("mp.y"));
                Double z = Double.parseDouble(getConfig().getString("mp.z"));
                Location locForTp = new Location(w, x, y, z);
                p.teleport(locForTp);
                return true;
            }
            return false;
        }
    [DOUBLEPOST=1481053007,1481052116][/DOUBLEPOST]Заметил ещё одну ошибку, ты записываешь в конфиг не имя мира, а строку CraftWorld{name=world}, соотв. при получении не удается телепортироваться на такую локацию, исправляется это заменой строки записи мира, примерно вот так:
    Код:
    getConfig().set("mp.w", p.getLocation().getWorld().getName());
    Так что в конечном итоге, код должен выглядеть примерно вот так:
    Код:
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            Player p = (Player) sender;
            if (args.length == 1) {
                if (cmd.getName().equalsIgnoreCase("mp")) {
                    getConfig().set("mp.x", String.valueOf(p.getLocation().getX()));
                    getConfig().set("mp.y", String.valueOf(p.getLocation().getY()));
                    getConfig().set("mp.z", String.valueOf(p.getLocation().getZ()));
                    getConfig().set("mp.w", p.getLocation().getWorld().getName());
                    saveConfig();
                    Bukkit.broadcastMessage("§6" + p.getName() + "создал мероприятие" + args[0]);
                    Bukkit.broadcastMessage("§6Для телепорта пропишите §4/gotomp");
                    return true;
                }
            }
            if (cmd.getName().equalsIgnoreCase("gotomp")) {
                World w = Bukkit.getServer().getWorld(getConfig().getString("mp.w"));
                Double x = Double.parseDouble(getConfig().getString("mp.x"));
                Double y = Double.parseDouble(getConfig().getString("mp.y"));
                Double z = Double.parseDouble(getConfig().getString("mp.z"));
                Location locForTp = new Location(w, x, y, z);
                p.teleport(locForTp);
                return true;
            }
            return false;
        }
    Код протестирован, всё работает.Конфиг после записи координат выглядит так:

    Код:
    mp:
      x: '509.2391667160048'
      y: '69.0'
      z: '1152.2204514609298'
      w: world
     
  8. Автор темы
    php5master

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

    Баллы:
    61
    А если команда введена с консоли, то как остановить дальнейшее продолжение скрипта[DOUBLEPOST=1481104257,1481104220][/DOUBLEPOST]
    Спасибо за помощь!
     
  9. AtomicInteger

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

    Баллы:
    46
    if(!sender instanceof Player)
     
  10. Автор темы
    php5master

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

    Баллы:
    61
    Ещё раз спасибо.
    Тему закрываю.
     
Статус темы:
Закрыта.

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