Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Создать неподделываемую, уникальную вещь

saharNooby

Активный участник
Девелопер
Пользователь
Баллы
78
Имя в Minecraft
saharNooby
Необходимо создать средствами API вещь, которую нельзя никак подделать или создать, кроме как одной, определённой командой.
Идеи были такие:
  • Использовать описание предмета - не подходит, потому что можно получить через /i
  • Использовать цветное название - не подходит потому же
  • Зачаровать - то же самое
Возможно ли добавить к вещи какие-либо уникальные данные, которые можно добавить только в коде?
 
Это хорошо, как редактировать NBT тогда?
Код:
    public static boolean hasCustomNBT(ItemStack item, String key) {
        if(item == null) return false;
        NBTManager m = NBTManager.getInstance();
        try {
            NBTCompound d = m.read(item);
            return d.containsKey(key, String.class);
        } catch(NullPointerException e){
            return false;
        }
    }

    public static String getCustomNBT(ItemStack item, String key) {
        if(item == null) return null;
        NBTManager m = NBTManager.getInstance();
        NBTCompound d = m.read(item);
        return d.getString(key);
    }

    public static void addCustomNBT(ItemStack item, String key, String value) {
        if (item == null) return;
        NBTManager m = NBTManager.getInstance();
        NBTCompound d = m.read(item);
        d.put(key, value);
        m.write(item, d);
    }
 
Код:
    public static boolean hasCustomNBT(ItemStack item, String key) {
        if(item == null) return false;
        NBTManager m = NBTManager.getInstance();
        try {
            NBTCompound d = m.read(item);
            return d.containsKey(key, String.class);
        } catch(NullPointerException e){
            return false;
        }
    }

    public static String getCustomNBT(ItemStack item, String key) {
        if(item == null) return null;
        NBTManager m = NBTManager.getInstance();
        NBTCompound d = m.read(item);
        return d.getString(key);
    }

    public static void addCustomNBT(ItemStack item, String key, String value) {
        if (item == null) return;
        NBTManager m = NBTManager.getInstance();
        NBTCompound d = m.read(item);
        d.put(key, value);
        m.write(item, d);
    }
Стыдно спрашивать, но куда всё это сунуть? Засунул в класс, говорит, нет NBTManager никакого.
А, понял, это какой-то плагин-API http://dev.bukkit.org/bukkit-plugins/powernbt/
Как его в проект сунуть?
А, всё, скачал jar и в проект подключил. Спасибо!
Интересно, а вещи с нестандартными (я использую своё название) NBT-тегами исчезают...
 
Командой выдаются, без ошибок. Но если переместить вещь в другую ячейку, например, или выкинуть, то она исчезнет. Я думаю, это из-за того, что название тэга нестандартное.
 
Командой выдаются, без ошибок. Но если переместить вещь в другую ячейку, например, или выкинуть, то она исчезнет. Я думаю, это из-за того, что название тэга нестандартное.
Название какого тега?
 
Все нестандартные нбт теги вытираются баккитом при взаимодействии с вещью.
А ещё команда /minecraft:give пожет и нбт теги добавлять.
Грубо говоря если у кого-то есть доступ к командам выдачи предмета, то уникальную вещь ты никак не сделаешь.
 
Все нестандартные нбт теги вытираются баккитом при взаимодействии с вещью.
А ещё команда /minecraft:give пожет и нбт теги добавлять.
Грусть-тоска. Значит, никак не сделать такие вещи?
 
Ладно, спасибо всем за советы и помощь, пойду через лор делать, как
CraftCoder сказал. Можно тупо добавить в конце пару лишних цветовых кодов, никто и не узнает, а через /i сделать не сможет (правда, можно в креативе скопировать, но это уже совсем другая история).
 
Ладно, спасибо всем за советы и помощь, пойду через лор делать, как
CraftCoder сказал. Можно тупо добавить в конце пару лишних цветовых кодов, никто и не узнает, а через /i сделать не сможет (правда, можно в креативе скопировать, но это уже совсем другая история).
режим дебага клиента млжет показывать пришедший пакет из которого нуюжные цветокоды дёрнуть - раз плюнуть.
 
режим дебага клиента млжет показывать пришедший пакет из которого нуюжные цветокоды дёрнуть - раз плюнуть.
Короче, плагин бесполезен будет на серверах с продажей креатива и команд типа /i и /give (ибо все это копировать да и просто выдавать будут). Собственно, на другое и не рассчитывал.

А вещи исчезали, потому что new ItemStack(Material.KAKOY_NIBYD_MATERIAL, 0) - количество было 0.
 
Будь проще. Можно реализовать свои /i и /give которые не позволят редактировать нбт или Lore и тогда ты будешь уверен что предмет сделанный тобой нереально подделать. (кроме дюпа, естественно, если такой способ найдется)
 
Anyway, если есть /i и /give, то есть и креатив, и наоборот (на большинстве серверов). А тогда даже никакого дюпа не надо - средний клик, и мы имеем уже 2 идентичных вещи. На моём сервере креатив не продаётся и не покупается, так что всё ок. А вот если выложить плагин в свет, то он может потерять большую часть смысла на большинстве серверах.
 

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

Назад
Верх