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

Помогите Получение числа из лора

Тема в разделе "Разработка плагинов для новичков", создана пользователем sasha2003, 5 фев 2018.

Статус темы:
Закрыта.
  1. Автор темы
    sasha2003

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

    Баллы:
    76
    Есть предмет с лором в котором есть некоторое число.
    Как получить это число?
     
  2. Mr Hosting
  3. Exception_Prototype

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

    Баллы:
    76
    Сперва сам лор покажи скрином.
     
  4. Автор темы
    sasha2003

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

    Баллы:
    76
    https://ibb.co/co78kc
     
  5. Автор темы
    sasha2003

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

    Баллы:
    76
    Ну можно в принципе и из названия взять?
     
  6. hyndorik

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

    Баллы:
    76
    Имя в Minecraft:
    hyndo
    Дикий костыль если ты хочешь это юзать для того чтобы узнать на какую сумму чек
     
  7. Автор темы
    sasha2003

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

    Баллы:
    76
    А как тогда?
     
  8. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Парсинг регулярными выражениями
     
  9. Автор темы
    sasha2003

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

    Баллы:
    76
    А на примере?
     
  10. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Пакет java.util.regex, дальше сам информацию найдешь
     
  11. Автор темы
    sasha2003

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

    Баллы:
    76
    Не нашёл
     
  12. Exception_Prototype

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

    Баллы:
    76
    Этот кастомный предмет является частью какого-то плагина? Если да, может у плагина есть API ?
     
  13. Автор темы
    sasha2003

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

    Баллы:
    76
    Нет это предмет с этого же плагина
     
  14. hyndorik

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

    Баллы:
    76
    Имя в Minecraft:
    hyndo
    Тут короче логика нужна, а не такое говно. Ну на крайняк юзай нбт
     
  15. Автор темы
    sasha2003

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

    Баллы:
    76
    Не хочется api пользовать
     
  16. imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Как-то так мб
    Код:
    public int getAmount(ItemStack is){
        String lore = is.getItemMeta().getLore().get(0);
        int amount=Integer.parseInt(lore.replaceAll("\\D*",""));
        return amount;
    }
     
  17. Автор темы
    sasha2003

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

    Баллы:
    76
    Спасибо
     
  18. Автор темы
    sasha2003

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

    Баллы:
    76
    UP
    Как сделать тоже самое, только с double (точку должно определять)?
     
  19. imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Вроде этого
    Код:
    public double getAmount(ItemStack is){
        String lore = is.getItemMeta().getLore().get(0);
        double amount=Double.parseDouble(lore.replaceAll("(\\D*)(\\d+(\\.\\d+)?)(\\D*)","$2"));
        return amount;
    }
    Но как и с прошлым вариантом - стоит опасаться, если в строке описания есть другие числа.
    Можно использовать и "77.8", и "51.0", и просто "51"
     
  20. Автор темы
    sasha2003

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

    Баллы:
    76
    У меня появилась возможность сделать без знака $.
    Сделал так - ничего не работает
    Код:
    String lore = p.getInventory().getItemInMainHand().getItemMeta().getLore().get(0);
                double amount = Double.parseDouble(lore);
    ошибка:
    Код:
    [19:11:50] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to Prison v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at org.bukkit.craftbukkit.v1_11_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:231) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at org.bukkit.craftbukkit.v1_11_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:198) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at org.bukkit.craftbukkit.v1_11_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:194) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at net.minecraft.server.v1_11_R1.PlayerConnection.a(PlayerConnection.java:935) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at net.minecraft.server.v1_11_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:26) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at net.minecraft.server.v1_11_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at net.minecraft.server.v1_11_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_161]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_161]
        at net.minecraft.server.v1_11_R1.SystemUtils.a(SourceFile:46) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at net.minecraft.server.v1_11_R1.MinecraftServer.D(MinecraftServer.java:739) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:675) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:574) [spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]
    Caused by: java.lang.NumberFormatException: For input string: "§071.7"
        at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) ~[?:1.8.0_161]
        at sun.misc.FloatingDecimal.parseDouble(Unknown Source) ~[?:1.8.0_161]
        at java.lang.Double.parseDouble(Unknown Source) ~[?:1.8.0_161]
        at ru.taselix.taselixapi.Events.onInteract(Events.java:382) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.11-R0.1-SNAPSHOT-latest.jar:git-Spigot-16c940b-0805f60]
        ... 18 more
     
  21. Автор темы
    sasha2003

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

    Баллы:
    76
    Выше

     
Статус темы:
Закрыта.

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