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

Помогите Не тпешает домой.

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

  1. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Ошибка вот в чем... Этих кордов куда ты тпшишь игрока НЕ СУЩЕСТВУЕТ! Смирись с этим, либо ты не правильно их взял с конфига, либо где-то еще накосячил..
     
  2. Хостинг MineCraft
    <
  3. andreispas

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

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Писал мини игру? Лол. Ты даже код с видео туториалов правильно списать не можешь(а именно от туда ты берешь эти "идеи" для "плагинов"), чего уж говорить про мини игры?
     
  4. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Сообщение с префиксом отправить так... p.sendMessage("Префикс" + " Можно крафтить блок.")
     
  5. Автор темы
    Kalabealu

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

    Баллы:
    46
    Имя в Minecraft:
    GoldFox
    Код:
    package ru.goldfox.files;
    
    import org.bukkit.ChatColor;
    import org.bukkit.command.CommandSender;
    
    public class MessageManager {
    
        private MessageManager() { }
    
        private static MessageManager manager = new MessageManager();
    
        public static MessageManager getManager() {
            return manager;
        }
    
        public enum MessageType {
            INFO(ChatColor.YELLOW),
            GOOD(ChatColor.GREEN),
            BAD(ChatColor.RED);
        
            private ChatColor color;
        
            MessageType (ChatColor color) {
                this.color = color;
            }
        
            public ChatColor getColor() {
                return color;
            }
        }
    
        private String prefix = ChatColor.GRAY + "[" + ChatColor.GOLD + "GoldPlus" + ChatColor.GRAY + "] : " + ChatColor.RESET;
    
        public void msg (CommandSender sender, MessageType type, String... msgs) {
            for (String msg : msgs) {
                sender.sendMessage(prefix + type.getColor() + msg);
            }
        }
    }
    
    Можно и создать MessageManager.java,и там будет всё инфо о сообщениях,цвет,префикс.
    Код:
    MessageManager.getManager().msg(sender, MessageType.BAD, "Only players can use this command!");
    config.yml
    Код:
    locations:
      Hacker4ik:
        world: world_nether
        x: -18.095047584548396
        y: 58.0
        z: 21.578526887661152
    
     
    Последнее редактирование: 16 сен 2016
  6. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Гениально.
    Нет
     
  7. Автор темы
    Kalabealu

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

    Баллы:
    46
    Имя в Minecraft:
    GoldFox
    Тема закрыта.Будут проблемы будут тут писать.[DOUBLEPOST=1478698860,1474009486][/DOUBLEPOST]UP
     
  8. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    "Тема закрыта"
    "UP"
    Больно было головой биться?
    Ты просто так апнул тему, даже не написав причину АПа, или проблему..
    Наверное было очень больно..
     
  9. Автор темы
    Kalabealu

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

    Баллы:
    46
    Имя в Minecraft:
    GoldFox
    У меня новый вопрос,по поводу тоже самой команды /tphome.Нужно как в Essentals сделать при вводе команды /tphome телепортировать игрока на дефолтный дом.
     
  10. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Ааа, наверное уже для мини игры...
     
  11. Автор темы
    Kalabealu

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

    Баллы:
    46
    Имя в Minecraft:
    GoldFox
    Нужно как в Essentals сделать при вводе команды /tphome телепортировать игрока на дефолтный дом.[DOUBLEPOST=1478699196,1478699104][/DOUBLEPOST]Так как я заметил,что если писать сначала команду /tphome то выводится ошибка.
     
  12. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Дай угадаю... Error while....
     
  13. Автор темы
    Kalabealu

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

    Баллы:
    46
    Имя в Minecraft:
    GoldFox
    +++.Потому что /tphome работает если игрок использовал /savehome
     
  14. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    home = null
     
  15. Автор темы
    Kalabealu

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

    Баллы:
    46
    Имя в Minecraft:
    GoldFox
    Щас скину исх код.С командами.
     
  16. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Проверяй корды на существование але!!!
     
  17. Автор темы
    Kalabealu

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

    Баллы:
    46
    Имя в Minecraft:
    GoldFox
    Код:
    package ru.goldfox.files;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.Sound;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import ru.goldfox.files.MessageManager.MessageType;
    
    public class Main  extends JavaPlugin implements Listener {
      
        private static Main instance;
        FileConfiguration config = getConfig();
      
        public static Main instance() {
            return instance;
        }
    
        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            Bukkit.getServer().getPluginManager().registerEvents(new KillMob(), this);
        }
      
        public void onDisable() {
          
        }
      
        public boolean checkSender (CommandSender sender) {
            if (sender instanceof Player) {
                return false;
            }
            return true;
        }
      
        public boolean onCommand (CommandSender sender, Command cmd, String label, String[] args) {
            if (cmd.getName().equalsIgnoreCase("savehome")) {
                if (checkSender(sender)) {
                    MessageManager.getManager().msg(sender, MessageType.BAD, "Only players can use this command!");
                    return true;
                }
                Player p = (Player) sender;
              
                locToConfig(p.getName(), p.getLocation());
                MessageManager.getManager().msg(p, MessageType.GOOD, "Дом установлен!");
                return true;
            }
            if (cmd.getName().equalsIgnoreCase("tphome")) {
                if (checkSender(sender)) {
                    MessageManager.getManager().msg(sender, MessageType.BAD, "Only players can use this command!");
                    return true;
                }
                Player p = (Player) sender;
              
                Location home = configToLoc(p.getName());
                p.teleport(home);
                MessageManager.getManager().msg(p, MessageType.GOOD, "Телепорт домой!");
                return true;
            }
            return false;
        }
      
        public void locToConfig (String name, Location loc) {
            config.set("locations." + name + ".world", loc.getWorld().getName());
            config.set("locations." + name + ".x", loc.getX());
            config.set("locations." + name + ".y", loc.getY());
            config.set("locations." + name + ".z", loc.getZ());
            saveConfig();
        }
      
        public Location configToLoc (String name) {
            Location loc = new Location(Bukkit.getWorld(config.getString("locations." + name + ".world")),
                    config.getDouble("locations." + name + ".x"),
                    config.getDouble("locations." + name + ".y"),
                    config.getDouble("locations." + name + ".z"));
            return loc;
        }
      
        @EventHandler
        public void onPlayerJoin (PlayerJoinEvent e) {
            Player p = e.getPlayer();
          
            MessageManager.getManager().msg(p, MessageType.INFO, "Plugin by GoldFox");
            p.playSound(p.getLocation(), Sound.NOTE_PIANO, 1, 1);
        }
      
        @EventHandler
        public void onBlockBreak (BlockBreakEvent e) {
            Player p = e.getPlayer();
            p.giveExp(100);
          
            if (e.getBlock().getType() != Material.DIAMOND_BLOCK) return;
          
            p.giveExp(500);
            p.damage(2);
            MessageManager.getManager().msg(p, MessageType.BAD, "Зачем ты сломал это блок?");
        }
    }
    
    Основной код.

    if (cmd.getName().equalsIgnoreCase("tphome")) {
    if (checkSender(sender)) {
    MessageManager.getManager().msg(sender, MessageType.BAD, "Only players can use this command!");
    return true;
    }
    Player p = (Player) sender;

    Location home = configToLoc(p.getName());
    p.teleport(home);
    MessageManager.getManager().msg(p, MessageType.GOOD, "Телепорт домой!");
    return true;
    }
    return false;
    }


    Вот тут и дыра с телепортом.И ошибка.
     
  18. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Вот тут, их может и не быть вовсе кординатов, он может вернуть тебе null т.е тебе надо проверить, не null ли локация
     
  19. Автор темы
    Kalabealu

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

    Баллы:
    46
    Имя в Minecraft:
    GoldFox
    Так ты запили проверку null или нет...Может быть ты знаешь,как сделать такую вещь?
     
  20. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Я тебе плагин пишу или что????
    Location home = configToLoc(p.getName());
    if (home != null){
    p.teleport(home);
    MessageManager.getManager().msg(p, MessageType.GOOD, "Телепорт домой!");
    }

    Конфетку должен
     
  21. Автор темы
    Kalabealu

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

    Баллы:
    46
    Имя в Minecraft:
    GoldFox
    if (cmd.getName().equalsIgnoreCase("tphome")) {
    if (checkSender(sender)) {
    MessageManager.getManager().msg(sender, MessageType.BAD, "Only players can use this command!");
    return true;
    }
    Player p = (Player) sender;

    Location home = configToLoc(p.getName());
    if (home != null){
    p.teleport(home);
    MessageManager.getManager().msg(p, MessageType.GOOD, "Телепорт домой!");
    return true;
    }
    }
    return false;
    }
     

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