Надо повторить функционал маленького плагина и немного изменить.

  • Автор темы Автор темы _beat_
  • Дата начала Дата начала

_beat_

Активный участник
Пользователь
Баллы
46
Собственно, добрый вечер. Меня зов...., а вообще не важно.
Важно то, что я бы хотел, чтобы супер добрые программисты @Mr_RoboMan, @Dereku (больше не знаю хороших и добрых) повторили функционал плагина ( https://mods.curse.com/bukkit-plugins/minecraft/insane-durability-lock - не пиар xD )
Суть плагин: предмету в лоре даётся специальная фраза(настраивается в конфиге), благодаря которой предмет становится с бесконечной прочностью, но в этом плагине остаётся полоска прочности, а хотелось бы, чтобы она исчезала, и оставалась привязанная модель/текстура с ресурспака.

Хочется чёт бесплатно)))
 
Ахахах, опять же, думаешь я бы за бесплатно говорил тебе причины, из-за которых возникли все те ошибки? 😆
Людям которым я помог за деньги - остались довольны, что я устранил ошибки, и среди них был человек, с такими же ошибками, что и у тебя.
http://rubukkit.org/threads/pomosch-po-launcheram-2.104739/page-69#post-1381669

Бесплатно любишь?
 
Люблю)0)
Еслиб не написали, то покупал бы.
=)
Когда время будет. Сейчас занят.
Работает?
Сейчас проверю.
Нет.
 
Вы чё ребят? Там изич сделать можно.
 
youtube.com/watch?v=rmqQs4DJbKE
нужен ProtocolLib

https://www.dropbox.com/s/2w0cuo2hd8xlx2k/dlocker.jar?dl=0
код:

Java:
package ru.leymooo.unbreak;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerItemDamageEvent;
import org.*********ventory.ItemFlag;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

import com.comphenix.protocol.wrappers.nbt.NbtCompound;
import com.comphenix.protocol.wrappers.nbt.NbtFactory;

public class Main extends JavaPlugin implements Listener {
    private String lore;

    @Override
    public void onEnable() {
        saveDefaultConfig();
        lore = getConfig().getString("Lore", "lore");
        getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onItemDamage(PlayerItemDamageEvent event) {
        if (a(event.getItem())) {
            event.setCancelled(true);
        }
    }
    private boolean a(ItemStack item) {
        try {
            NbtCompound tag = (NbtCompound) NbtFactory.fromItemTag(item);
            if (tag.containsKey("Unbreakable")) {
                return false;
            } else {
                if(!item.hasItemMeta()) {
                    return false;
                }
               ItemMeta meta = item.getItemMeta();
                if (!meta.hasLore()) {
                    return false;
                }
                for (String s : meta.getLore()) {
                    if (s.equals(lore) || s.contains(lore));
                    meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
                    item.setItemMeta(meta);
                    tag.put("Unbreakable", 1);
                    return true;
                }
            }
        } catch (Exception e) {
            return false;
        }
        return false;

    }
}
 
Последнее редактирование:
youtube.com/watch?v=rmqQs4DJbKE
нужен ProtocolLib
https://www.dropbox.com/s/2w0cuo2hd8xlx2k/dlocker.jar?dl=0
код:

Java:
package ru.leymooo.unbreak;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerItemDamageEvent;
import org.*********ventory.ItemFlag;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

import com.comphenix.protocol.wrappers.nbt.NbtCompound;
import com.comphenix.protocol.wrappers.nbt.NbtFactory;

public class Main extends JavaPlugin implements Listener {
    private String lore;

    @Override
    public void onEnable() {
        saveDefaultConfig();
        lore = getConfig().getString("Lore", "lore");
        getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onItemDamage(PlayerItemDamageEvent event) {
        if (a(event.getItem())) {
            event.setCancelled(true);
        }
    }
    private boolean a(ItemStack item) {
        try {
            NbtCompound tag = (NbtCompound) NbtFactory.fromItemTag(item);
            if (tag.containsKey("Unbreakable")) {
                return false;
            } else {
                if(!item.hasItemMeta()) {
                    return false;
                }
               ItemMeta meta = item.getItemMeta();
                if (!meta.hasLore()) {
                    return false;
                }
                for (String s : meta.getLore()) {
                    if (s.equals(lore) || s.contains(lore));
                    meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
                    item.setItemMeta(meta);
                    tag.put("Unbreakable", 1);
                    return true;
                }
            }
        } catch (Exception e) {
            return false;
        }
        return false;

    }
}
Зачем мой код уродуешь?
Also, запускать IDE для 1 файла - ...
Javac наше всё.

Изучай java core и не пиши такой говнокод. Весь твой цикл можно заменить строчкой
if(list.containst(object)) {
...
}
 
Я не такой жестокий чтобы без IDE писать плагины.
javac -cp spigot-shaded.jar Main.java
Всё.
Also, через 10-15 мин закину сюда решение без всяких протокол-либов и прочего дерьма. Решение в 1 строчку. Хвала JavaDoc'ам.
 
Also, через 10-15 мин закину сюда решение без всяких протокол-либов и прочего дерьма. Решение в 1 строчку. Хвала JavaDoc'ам.
Код:
[01:37:17] [Server thread/ERROR]: Could not load 'plugins\dlocker.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: dk/xakeps/durablitylocker/Main (wrong name: dk/xakeps/durablitylock/Main)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[Spigot.jar:git-Spigot-90f61bc-29e1d72]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[Spigot.jar:git-Spigot-90f61bc-29e1d72]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [Spigot.jar:git-Spigot-90f61bc-29e1d72]
    at org.bukkit.craftbukkit.v1_10_R1.CraftServer.loadPlugins(CraftServer.java:297) [Spigot.jar:git-Spigot-90f61bc-29e1d72]
    at net.minecraft.server.v1_10_R1.DedicatedServer.init(DedicatedServer.java:203) [Spigot.jar:git-Spigot-90f61bc-29e1d72]
    at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:535) [Spigot.jar:git-Spigot-90f61bc-29e1d72]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_65]
Caused by: java.lang.NoClassDefFoundError: dk/xakeps/durablitylocker/Main (wrong name: dk/xakeps/durablitylock/Main)
    at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_65]
    at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_65]
    at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.8.0_65]
    at java.net.URLClassLoader.defineClass(Unknown Source) ~[?:1.8.0_65]
    at java.net.URLClassLoader.access$100(Unknown Source) ~[?:1.8.0_65]
    at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_65]
    at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_65]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_65]
    at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_65]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[Spigot.jar:git-Spigot-90f61bc-29e1d72]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[Spigot.jar:git-Spigot-90f61bc-29e1d72]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_65]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_65]
    at java.lang.Class.forName0(Native Method) ~[?:1.8.0_65]
    at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_65]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[Spigot.jar:git-Spigot-90f61bc-29e1d72]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[Spigot.jar:git-Spigot-90f61bc-29e1d72]
    ... 6 more
Да просто автор написал что твой плагин не робит, так я и начал через protocolLib костылить.

А так да, твой плагин работает как надо.
 
http://muonium.rgho.st/7k2vz9x7M
Еще добавил принудительную смену предмета в главной руке на этот предмет. По идее, будет проблема, если будут использовать предмет с этим lore во вторичной руке.
Рекомендую предыдущую версию.
Всё же убрал возможный косяк.
В JavaDoc не сказано, что именно возвращает getItem, клон предмета или же сам предмет, который использовали?
http://fracton.rgho.st/79rZTNtYJ
 
http://muonium.rgho.st/7k2vz9x7M
Еще добавил принудительную смену предмета в главной руке на этот предмет. По идее, будет проблема, если будут использовать предмет с этим lore во вторичной руке.
Рекомендую предыдущую версию.
Всё же убрал возможный косяк.
В JavaDoc не сказано, что именно возвращает getItem, клон предмета или же сам предмет, который использовали?
http://fracton.rgho.st/79rZTNtYJ
Ну плагин как-бы работает, но как-бы и не работает 😕
Например я в ресурспаке привязал к алмазному мечу модель, на прочность 1561, то есть когда ударю 1 раз по мобу, у него появится модель. Так вот, допустим я ударил по мобу - появилась модель, дальше дал ему лор abc и после того, как ещё раз ударил по мобу, меч становится дефолтный неломаемый.

Видимо нельзя сделать, чтобы он был неломаемый без полоски прочности :с
https://www.spigotmc.org/wiki/custom-item-models-in-1-9-and-up/ тут вот делают, но не уверен, что так можно сделать по тегам. А тем более бесплатно :0
 
Назад
Верх