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

Помогите Портировать код на 1.7

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

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

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Не могу понять как портировать этот код под 1.7, и использовать bukkit, а не craftbukkit.

    Код:
    package org.maxgamer.QuickShop.Util;
    
    import org.bukkit.block.Block;
    import org.bukkit.craftbukkit.v1_9_R1.CraftWorld;
    import org.bukkit.craftbukkit.v1_9_R1.entity.CraftEntity;
    import org.bukkit.craftbukkit.v1_9_R1.inventory.CraftItemStack;
    import org.bukkit.entity.Entity;
    import org.bukkit.inventory.ItemStack;
    
    import net.minecraft.server.v1_9_R1.BlockPosition;
    import net.minecraft.server.v1_9_R1.IBlockData;
    import net.minecraft.server.v1_9_R1.LocaleI18n;
    
    public class StringTranslator
    {
        public static String translate(String key)
        {
            return LocaleI18n.get(key);
        }
       
        public static String translate(String key, Object... values)
        {
            return LocaleI18n.a(key, values);
        }
       
        public static String getName(ItemStack item)
        {
            net.minecraft.server.v1_9_R1.ItemStack base = CraftItemStack.asNMSCopy(item);
            if(base != null && base.getItem() != null)
                return base.getName();
            return "Unknown";
        }
       
        public static String getName(Entity entity)
        {
            net.minecraft.server.v1_9_R1.Entity base = ((CraftEntity)entity).getHandle();
            return base.getName();
        }
       
        public static String getName(Block block)
        {
            BlockPosition pos = new BlockPosition(block.getX(), block.getY(), block.getZ());
            IBlockData type = ((CraftWorld)block.getWorld()).getHandle().getType(pos);
            return type.getBlock().getName();
        }
    }
    
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Какую то часть поправил, но вот тут ошибки. Как изменить, чтобы под 1.7.10 было?
    [​IMG]
     
  4. Starr

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

    Баллы:
    98
    Имя в Minecraft:
    _Starr_
    Скорее всего этих методов просто не существует.
     
  5. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    Попробуй нажать: Ctrl + Shift + O.
     
  6. Sonicxd2

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

    Баллы:
    76
    Импортируй ядро 1.8 и заменяй v1_7_R3 на v1_8_X(Где X номер версии)
     
  7. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    В 1.7.10 нет таких методов как таковых. Там нет BlockPosition, там нет IBlockData, но на что их заменять я не знаю.
    Я не смог найти какие методы они заменили в 1.8.
     
  8. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    А всё очень просто. В плагине используется NMS. Просто импортируй туда craftbukkit твоёй версии.
     
  9. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Я импортировал крафтбаккит, заменил номер версии. Но на два этих метода она жалуется. Их там просто нет.
     
  10. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Так ты портируешь плагин на 1.7?
    Попробуй убрать те иморты и импортировать их сам.[DOUBLEPOST=1459668206,1459668078][/DOUBLEPOST]UPD: скорее всего вам просто придётся переписать плагин, не используя в нём NMS.
     
  11. Автор темы
    oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Пробовал. Просто нет таких функций, мне нужно узнать что заменили эти функции в 1.7.
    Тут всего 1 класс, только с ним проблемы. Это класс, для помощи трансляции названий блоков в человекопонятный вид.[DOUBLEPOST=1459669298][/DOUBLEPOST]Разобрался.
    Вот конечный код:

    Код:
    package org.maxgamer.QuickShop.Util;
    
    import org.bukkit.block.Block;
    import org.bukkit.craftbukkit.v1_7_R3.CraftWorld;
    import org.bukkit.craftbukkit.v1_7_R3.entity.CraftEntity;
    import org.bukkit.craftbukkit.v1_7_R3.inventory.CraftItemStack;
    import org.bukkit.entity.Entity;
    import org.bukkit.inventory.ItemStack;
    import net.minecraft.server.v1_7_R3.LocaleI18n;
    
    public class StringTranslator
    {
        public static String translate(String key)
        {
            return LocaleI18n.get(key);
        }
       
        public static String translate(String key, Object... values)
        {
            return LocaleI18n.get(key, values);
        }
       
        public static String getName(ItemStack item)
        {
            net.minecraft.server.v1_7_R3.ItemStack base = CraftItemStack.asNMSCopy(item);
            if(base != null && base.getItem() != null)
                return base.getName();
            return "Unknown";
        }
       
        public static String getName(Entity entity)
        {
            net.minecraft.server.v1_7_R3.Entity base = ((CraftEntity)entity).getHandle();
            return base.getName();
        }
       
        public static String getName(Block block)
        {
            net.minecraft.server.v1_7_R3.Block base = ((CraftWorld)block.getWorld()).getHandle().getType(block.getX(), block.getY(), block.getZ());
            return base.getName();
        }
    }
     
Статус темы:
Закрыта.

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