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

Помогите Переменные в строке

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

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

    Rbiter Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Rbiter
    Не изменяется значение переменной... Что делать?
    Значение переменной MsgPayForKill "&bЗа убийство %Entity% вы получили %amount% %vault%"
    Дабы не засорять конфиг и чтоб в любой момент можно было изменить сообщения просто через конфиг сделал три переменные %Entity% %amount% %vault%
    Из них %vault% имеет постоянное значение. А %Entity% %amount% должны меняться в зависимости от убиваемого существа.
    Вот участок кода:
    Код:
        public void onEntityDeath(EntityDeathEvent ev) {
            if (ev.getEntity().getKiller() instanceof Player) {
                Boolean temp = Boolean.valueOf(this.getConfig().getBoolean("worlds." + ev.getEntity().getKiller().getWorld().getName()));
                if (!temp.booleanValue()) {
                    Player p = ev.getEntity().getKiller();
                    LivingEntity e = ev.getEntity();
                    EconomyResponse r = null;
                    String amount = null;
                    this.MsgPayForKill = this.MsgPayForKill.replaceAll("%vault%", this.VaultSimvol);
                   if (e instanceof Cow) {
                        this.MsgPayForKill = this.MsgPayForKill.replaceAll("%amount%", amount = amount.valueOf(cow));
                        this.MsgPayForKill = this.MsgPayForKill.replaceAll("%Entity%", "коровы");
                        r = econ.depositPlayer(p.getName(), this.cow);
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', this.Prefix + " " + this.MsgPayForKill));
                    } else if (e instanceof Creeper) {
                        this.MsgPayForKill = this.MsgPayForKill.replaceAll("%amount%", amount = amount.valueOf(creeper));
                        this.MsgPayForKill = this.MsgPayForKill.replaceAll("%Entity%", "крипера");
                        r = econ.depositPlayer(p.getName(), this.creeper);
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', this.Prefix + " " + this.MsgPayForKill));
                    }
    
    после убийства крипера выходит сообщение: За убийство крипера вы получили 1 руб
    Вроде все норм но если следом убью корову то выводит то же самое сообщение: За убийство крипера вы получили 1 руб.
    Однако если перезагрузить плагин и сперва убить корову будет выводить: За убийство коровы вы получили 1 руб
    Но если следом крипера то будет выводить: За убийство коровы вы получили 1 руб
    Что делать? :oops:
     
  2. Хостинг MineCraft
    <
  3. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Так вы не трогайте глобально объявленную переменную.
     
  4. Автор темы
    Rbiter

    Rbiter Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Rbiter
    а как тогда значения заменять то?[DOUBLEPOST=1455122944,1455122741][/DOUBLEPOST]Сорри туплю :D Проблема решена)
    Объявил локальную переменную и в нее записал значение из глобальной)
     
Статус темы:
Закрыта.

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