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

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

Тема в разделе "Запросы на разработку плагинов", создана пользователем _beat_, 16 авг 2016.

  1. Автор темы
    _beat_

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

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

    Хочется чёт бесплатно)))
     
  2. Хостинг MineCraft
    <
  3. Larin

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

    Баллы:
    103
  4. Автор темы
    _beat_

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

    Баллы:
    46
    А когда вы пофиксите свой KeyCombinator?
     
  5. Larin

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

    Баллы:
    103
    =)
    Когда время будет. Сейчас занят.
    Работает?
     
  6. Alexgrist

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

    Баллы:
    173
    http://rubukkit.org/threads/pomosch-po-launcheram-2.104739/page-69#post-1381669

    Бесплатно любишь?
     
  7. Автор темы
    _beat_

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

    Баллы:
    46
    Люблю)0)
    Еслиб не написали, то покупал бы.[DOUBLEPOST=1471379297,1471379099][/DOUBLEPOST]
    Сейчас проверю.[DOUBLEPOST=1471379544][/DOUBLEPOST]
    Нет.
     
  8. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    скорее всего эту полоску добавляет сам клиент.
     
  9. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Вы чё ребят? Там изич сделать можно.
     
  10. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo

    youtube.com/watch?v=rmqQs4DJbKE
    нужен ProtocolLib

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

    Код:
    package ru.leymooo.unbreak;
    
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerItemDamageEvent;
    import org.bukkit.inventory.ItemFlag;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.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;
    
        }
    }
     
    Последнее редактирование: 17 авг 2016
  11. Larin

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

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

    Изучай java core и не пиши такой говнокод. Весь твой цикл можно заменить строчкой
    if(list.containst(object)) {
    ...
    }
     
  12. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Я не такой жестокий чтобы без IDE писать плагины.
     
  13. Larin

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

    Баллы:
    103
    javac -cp spigot-shaded.jar Main.java
    Всё.[DOUBLEPOST=1471387225,1471386967][/DOUBLEPOST]Also, через 10-15 мин закину сюда решение без всяких протокол-либов и прочего дерьма. Решение в 1 строчку. Хвала JavaDoc'ам.
     
  14. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Код:
    [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 костылить.
    [DOUBLEPOST=1471387528,1471387341][/DOUBLEPOST]А так да, твой плагин работает как надо.
     
  15. Larin

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

    Баллы:
    103
  16. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    ну тогда можно и скрыть её за одно.
     
  17. Larin

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

    Баллы:
    103
    Lore?
     
  18. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    unbreakable
    Он появляется на предмете когда ставишь его.
    meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
    item.setItemMeta(meta);
     
  19. Larin

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

    Баллы:
    103
    http://muonium.rgho.st/7k2vz9x7M
    Еще добавил принудительную смену предмета в главной руке на этот предмет. По идее, будет проблема, если будут использовать предмет с этим lore во вторичной руке.
    Рекомендую предыдущую версию.[DOUBLEPOST=1471388944,1471388669][/DOUBLEPOST]Всё же убрал возможный косяк.
    В JavaDoc не сказано, что именно возвращает getItem, клон предмета или же сам предмет, который использовали?
    http://fracton.rgho.st/79rZTNtYJ
     
  20. Автор темы
    _beat_

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

    Баллы:
    46
    Ну плагин как-бы работает, но как-бы и не работает :confused:
    Например я в ресурспаке привязал к алмазному мечу модель, на прочность 1561, то есть когда ударю 1 раз по мобу, у него появится модель. Так вот, допустим я ударил по мобу - появилась модель, дальше дал ему лор abc и после того, как ещё раз ударил по мобу, меч становится дефолтный неломаемый.

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

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

    Баллы:
    173
    Имя в Minecraft:
    Qmaks
    Не удобно.
     

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