Войти или зарегистрироваться

Помогите [Конфиг]

MrElitePro

Активный участник
Пользователь
Баллы
46
Имя в Minecraft
MrElitePro
Возникла проблемка,когда человек пишет /setskype login его заносит в конфиг тут все так
JavaScript:
Players:
  MrElitePro:
    Skype: login
Я бы хотел сделать в конфиге строчку String Message например
JavaScript:
Message: 'Твой скайп: %skype%'
и чтобы он выводил в чат String Message,но вот тут проблема,как заменить-то данные для скайпа на %skype%
 
JavaScript:
for (String s : this.Passport) {
                      if (s.contains("%name%")) {
                          s.replace("%name%", p.getName());
}
}
Почему %name% не заменяется?
 
Попроще на верная будет.
Java:
      Player p = e.getPlayer();
        String skype = getConfig().getString("message");
        String sk = getConfig().getString("Players."+ p.getDisplayName() + ".skype");
        p.sendMessage("" + skype.replace("%skype%",sk));

Получаем игрока
Java:
Player p = e.getPlayer();
Заносим строку message в переменою skype;
Java:
/ String  skype = getConfig().getString("message");
Заносим данные в переменою sk;
Java:
/ String sk = getConfig().getString("Players."+ p.getDisplayName() + ".skype");
Сообщения для игрока:
Java:
  /   p.sendMessage("" + skype.replace("%skype%",sk));
Заменяем в сообщение %skype% на данные они в нас есть в переменой sk
Java:
/  skype.replace("%skype%",sk)
 
Потому что строки - неизменяемый тип, и replace возвращает результат замены, а не меняет в строке.
В общем, выше все уже написано.
 
Попроще на верная будет.
Java:
      Player p = e.getPlayer();
        String skype = getConfig().getString("message");
        String sk = getConfig().getString("Players."+ p.getDisplayName() + ".skype");
        p.sendMessage("" + skype.replace("%skype%",sk));

Получаем игрока
Java:
Player p = e.getPlayer();
Заносим строку message в переменою skype;
Java:
/ String  skype = getConfig().getString("message");
Заносим данные в переменою sk;
Java:
/ String sk = getConfig().getString("Players."+ p.getDisplayName() + ".skype");
Сообщения для игрока:
Java:
  /   p.sendMessage("" + skype.replace("%skype%",sk));
Заменяем в сообщение %skype% на данные они в нас есть в переменой sk
Java:
/  skype.replace("%skype%",sk)
Спасибо большое,помог очень
@Bohdan_Hrytsak ,а как получить String Name = getConfig().getString("Players." + p.getName());
JavaScript:
Players:
  MrElitePro:
    Skype: login
 
Не понял.Если ты про то как получить имя игрока тогда почему не сделать так.
Java:
Sstring Name  = p.getName;
Или тебе нужна чтоб другой игрок смог посмотреть информацию про игрока?
 
Не понял.Если ты про то как получить имя игрока тогда почему не сделать так.
Java:
Sstring Name  = p.getName;
Или тебе нужна чтоб другой игрок смог посмотреть информацию про игрока?
И то и это :rolleyes:
 
Ну первое бросил.Если нужна второй вариант.Тогда просто при команде /myinfo name
Java:
String Name = getConfig().getString("Players." + p.args[0])
+ сделай проверку есть ли у игрока паспорт.
 
Ну первое бросил.Если нужна второй вариант.Тогда просто при команде /myinfo name
Java:
String Name = getConfig().getString("Players." + p.args[0])
+ сделай проверку есть ли у игрока паспорт.
Ок,спасибо попробую,а подскажи пожалуйста что не так тут хе-хе
JavaScript:
главная команда pass {
if ((args.length == 2) && (args[0].equalsIgnoreCase("get")))
    {
    p.sendMessage("паспорт игрока отображен");
    if (args.length == 1)
    {
    p.sendMessage("Укажите ник игрока");
    return true;
    }
    }
 
может
Java:
[LIST=1]
[*]if ((args.length == 2) || (args[0].equalsIgnoreCase("get")))
[*]   {
[*]     if (args.length == 1){

[*]    p.sendMessage("Укажите ник игрока");

[*]    return true;}
[*]    else
[*]   {
[*]   p.sendMessage("паспорт игрока отображен");
[*]   }
[*]  }
[/LIST]

Ок,спасибо попробую,а подскажи пожалуйста что не так тут хе-хе
JavaScript:
главная команда pass {
if ((args.length == 2) && (args[0].equalsIgnoreCase("get")))
    {
    p.sendMessage("паспорт игрока отображен");
    if (args.length == 1)
    {
    p.sendMessage("Укажите ник игрока");
    return true;
    }
    }
Твоя проверка вот такая:
Если два значения ложь :
Java:
if ((args.length == 2) && (args[0].equalsIgnoreCase("get")))
тогда
Java:
p.sendMessage("паспорт игрока отображен")
а патом проверка если ник неуказан
Java:
if (args.length == 1)
    {
    p.sendMessage("Укажите ник игрока");
    return true;
 
Почему ложь? && - это ведь И
 
&& если 1 и 2 значения ложь.|| если 1 и 2 значения правда .Не так ли
 
Ок,спасибо попробую,а подскажи пожалуйста что не так тут хе-хе
JavaScript:
главная команда pass {
if ((args.length == 2) && (args[0].equalsIgnoreCase("get")))
    {[1]
    p.sendMessage("паспорт игрока отображен");
    if (args.length == 1)
    {[2]
    p.sendMessage("Укажите ник игрока");
    return true;
    }[2]
    }[1]
я пометил блоки. у тебя if с проверкой == 1 находится внутри блока [1], в который можно попасть, только если длина == 2, то есть код из блока [2] не выполняется никогда
 
Ну первое бросил.Если нужна второй вариант.Тогда просто при команде /myinfo name
Java:
String Name = getConfig().getString("Players." + p.args[0])
+ сделай проверку есть ли у игрока паспорт.
Блин не могу преобразовать смотри вот как исправить
JavaScript:
public void GetPassport(Player p)
    {
    Player GetPlayer = Bukkit.getPlayer(args[1]);
    String Name = getConfig().getString("Players." + GetPlayer.getName());
    p.sendMessage(GetPassport.replace("{Name}", GetPlayer.getName());
    }
Player GetPlayer = Bukkit.getPlayer(args[1]); вот тут подчеркивает ошибку
 
ета не правельное получения игрока
Java:
Player GetPlayer = Bukkit.getPlayer(args[1])
Если нужен тот кто вел команду тогда.Брать ево из sender
 
ета не правельное получения игрока
Java:
Player GetPlayer = Bukkit.getPlayer(args[1])
Если нужен тот кто вел команду тогда.Брать ево из sender
там команда /pass get nickname тоесть получить игрока из конфига который онлайн
вот насчет онлайн-то написал проверку,а для получения игрока не знаю
Может args подчеркивает из-за того потому что я не сделал String[] args
 
там команда /pass get nickname тоесть получить игрока из конфига который онлайн
вот насчет онлайн-то написал проверку,а для получения игрока не знаю
Может args подчеркивает из-за того потому что я не сделал String[] args
А ты как думаеш.:eek:
 
Объясни, что ты хочешь сделать.
 
Назад
Верх