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

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

Discussion in 'Разработка плагинов для новичков' started by oleg57zls, Apr 3, 2016.

Thread Status:
Not open for further replies.
  1. Автор темы
    oleg57zls

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

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

    Code:
    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 Старожил Пользователь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Code:
    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();
        }
    }
     
Thread Status:
Not open for further replies.

Share This Page