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

Ошибка вот в чем... Этих кордов куда ты тпшишь игрока НЕ СУЩЕСТВУЕТ! Смирись с этим, либо ты не правильно их взял с конфига, либо где-то еще накосячил..
 
А да я хочу сделать так [NoGoldCraft] теперь можно крафтить блок.Использую ChatColor.GREEN + "Теперь и т.д"

я то уже писал мини игру,строк на 5000
Писал мини игру? Лол. Ты даже код с видео туториалов правильно списать не можешь(а именно от туда ты берешь эти "идеи" для "плагинов"), чего уж говорить про мини игры?
 
Сообщение с префиксом отправить так... p.sendMessage("Префикс" + " Можно крафтить блок.")
 
Я даже не знаю, что тут сказать. ****ец...
 
Код:
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);
        }
    }
}

Сообщение с префиксом отправить так... p.sendMessage("Префикс" + " Можно крафтить блок.")
Можно и создать 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
 
Последнее редактирование:
Тема закрыта.Будут проблемы будут тут писать.
UP
 
"Тема закрыта"
"UP"
Больно было головой биться?
Ты просто так апнул тему, даже не написав причину АПа, или проблему..
Наверное было очень больно..
 
"Тема закрыта"
"UP"
Больно было головой биться?
Ты просто так апнул тему, даже не написав причину АПа, или проблему..
Наверное было очень больно..
У меня новый вопрос,по поводу тоже самой команды /tphome.Нужно как в Essentals сделать при вводе команды /tphome телепортировать игрока на дефолтный дом.
 
Ааа, наверное уже для мини игры...
Нужно как в Essentals сделать при вводе команды /tphome телепортировать игрока на дефолтный дом.
Так как я заметил,что если писать сначала команду /tphome то выводится ошибка.
 
JavaScript:
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;
}


Вот тут и дыра с телепортом.И ошибка.
 
  • 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;
  • }
Вот тут, их может и не быть вовсе кординатов, он может вернуть тебе null т.е тебе надо проверить, не null ли локация
 
Вот тут, их может и не быть вовсе кординатов, он может вернуть тебе null т.е тебе надо проверить, не null ли локация
Так ты запили проверку null или нет...Может быть ты знаешь,как сделать такую вещь?
 
Так ты запили проверку null или нет...
Я тебе плагин пишу или что????
Location home = configToLoc(p.getName());
if (home != null){
p.teleport(home);
MessageManager.getManager().msg(p, MessageType.GOOD, "Телепорт домой!");
}

Конфетку должен
 
Назад
Верх