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

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

Статус
Закрыто для дальнейших ответов.

oleg57zls

Старожил
Пользователь
Баллы
173
Имя в 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.*********ventory.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();
    }
}
 
Какую то часть поправил, но вот тут ошибки. Как изменить, чтобы под 1.7.10 было?
aa585e1e.png
 
Импортируй ядро 1.8 и заменяй v1_7_R3 на v1_8_X(Где X номер версии)
В 1.7.10 нет таких методов как таковых. Там нет BlockPosition, там нет IBlockData, но на что их заменять я не знаю.
Я не смог найти какие методы они заменили в 1.8.
 
В 1.7.10 нет таких методов как таковых. Там нет BlockPosition, там нет IBlockData, но на что их заменять я не знаю.
Я не смог найти какие методы они заменили в 1.8.
А всё очень просто. В плагине используется NMS. Просто импортируй туда craftbukkit твоёй версии.
 
А всё очень просто. В плагине используется NMS. Просто импортируй туда craftbukkit твоёй версии.
Я импортировал крафтбаккит, заменил номер версии. Но на два этих метода она жалуется. Их там просто нет.
 
Я импортировал крафтбаккит, заменил номер версии. Но на два этих метода она жалуется. Их там просто нет.
Так ты портируешь плагин на 1.7?
Попробуй убрать те иморты и импортировать их сам.
UPD: скорее всего вам просто придётся переписать плагин, не используя в нём NMS.
 
Так ты портируешь плагин на 1.7?
Попробуй убрать те иморты и импортировать их сам.
UPD: скорее всего вам просто придётся переписать плагин, не используя в нём NMS.
Пробовал. Просто нет таких функций, мне нужно узнать что заменили эти функции в 1.7.
Тут всего 1 класс, только с ним проблемы. Это класс, для помощи трансляции названий блоков в человекопонятный вид.
Разобрался.
Вот конечный код:

Код:
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.*********ventory.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();
    }
}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх