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

Плагин [ADMN/DEV/FUN] VarScript 1.2 - Пишем скрипты на Groovy

Тема в разделе "Релизы плагинов", создана пользователем DPOH-VAR, 29 сен 2012.

  1. DigitalMisha

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

    Баллы:
    58
    Просто не знал какой ИДЕ использовать. На одном компе Сублайм. А на втором только НПП стоял. Нашел для НПП
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Очередной модуль на груви
    https://github.com/DPOH-VAR/VarScript/blob/master/groovy-modules/yaml.groovy
    Предназначен для работы с данными в формате YAML

    Модуль использует библиотеку SnakeYAML, добавляет следуюшие функции:
    def loadYaml(File file) - чтение YAML из файла
    def loadYaml(InputStream is) - чтение YAML из потока
    def loadYaml(String data) - чтение YAML из строки.
    Все три метода возвращают обработанный парсером объект.

    String dumpYaml(def data) - сохранение объекта в формат YAML, метод вернет строку
    boolean dumpYaml(def data, OutputStream is) - сохранение объекта в формат YAML в поток
    boolean dumpYaml(def data, File file)- сохранение объекта в формат YAML и запись в файл
    Последние два метода возвращают true в случае успеха.


    И вот простенький пример работы модулей yaml и NBTTools:
    1) Сохраняем свой инвентарь в файл:
    /g> dumpYaml( nbt(me).Inventory, new File("inventory.yml") )
    Содержимое файла будет примерно таким:
    Код:
    - id: 1
      Damage: 0
      Count: 3
      Slot: 0
    - id: 145
      Damage: 2
      Count: 1
      Slot: 1
    - id: 403
      Damage: 0
      Count: 1
      tag:
        StoredEnchantments:
        - id: 21
          lvl: 3
      Slot: 2
    - id: 314
      Damage: 0
      Count: 1
      tag:
        RepairCost: 2
        display:
          Name: Шлем из золота
      Slot: 103
    
    2) Изменяем файл и загружаем инвентарь обратно:
    /g> nbt(me) {it.Inventory = loadYaml(new File("inventory.yml")) }

    PS: все данные формата nbt прекрасно конвертируются в YAML и обратно.
    У меня уже появилась идея добавить такую фичу в плагин PowerNBT ;)
     
    Hephest нравится это.
  4. MYXOMOPX

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

    Баллы:
    78
    Skype:
    MYXOMOPX
    Имя в Minecraft:
    MYXOMOPX
    Переделал модуль CustomAchievements.
    Теперь всё хранится в .yml файлах (раньше хранилось в .nbtz)
    Скачать можно тут
     
  5. Reedanger

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

    Баллы:
    88
    Имя в Minecraft:
    Reedanger
    Прекрасный плагин, продолжайте в том же духе:coffee:
     
  6. WalpeR

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

    Баллы:
    73
    Начну с того, что я не осилил прочесtь все 11 страниц, информации слишком много(оставил на завтра), и ничего не понятно. Хотел подключить модуль Helljump, понять как оно работает. Делал по этой инструкции.
    /> @FirstArena PRINT - выдает Null

    Ну и лог 1.6.4
    2014-01-23 23:34:29 [INFO] NullPointerException at [1:42]
    PLAYERS ME 4 SPHERE SCAN NULL @FirstArena:start
    >> {} at [1:42] :start for Program{CraftBlock{chunk=CraftChunk{x=-10z=6},x=-154,y=73,z=101,type=COMMAND,data=1}}
    2014-01-23 23:34:29 [SEVERE] me.dpohvar.varscript.vs.exception.ThreadTrace: NullPointerException at [1:42]
    PLAYERS ME 4 SPHERE SCAN NULL @FirstArena§6:start§r
    2014-01-23 23:34:29 [SEVERE] at me.dpohvar.varscript.vs.Thread.runFunctions(Thread.java:143)
    2014-01-23 23:34:29 [SEVERE] at me.dpohvar.varscript.vs.ThreadRunner.runThreads(ThreadRunner.java:33)
    2014-01-23 23:34:29 [SEVERE] at me.dpohvar.varscript.command.CommandRunVS.onCommand(CommandRunVS.java:38)
    2014-01-23 23:34:29 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    2014-01-23 23:34:29 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:192)
    2014-01-23 23:34:29 [SEVERE] at net.minecraft.server.v1_6_R3.TileEntityCommand.a(TileEntityCommand.java:101)
    2014-01-23 23:34:29 [SEVERE] at net.minecraft.server.v1_6_R3.BlockCommand.a(BlockCommand.java:47)
    2014-01-23 23:34:29 [SEVERE] at net.minecraft.server.v1_6_R3.WorldServer.a(WorldServer.java:571)
    2014-01-23 23:34:29 [SEVERE] at net.minecraft.server.v1_6_R3.WorldServer.doTick(WorldServer.java:207)
    2014-01-23 23:34:29 [SEVERE] at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:565)
    2014-01-23 23:34:29 [SEVERE] at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:240)
    2014-01-23 23:34:29 [SEVERE] at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:483)
    2014-01-23 23:34:29 [SEVERE] at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:415)
    2014-01-23 23:34:29 [SEVERE] at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
    2014-01-23 23:34:29 [SEVERE] Caused by: me.dpohvar.varscript.vs.exception.CommandException: NullPointerException at [1:42]
    PLAYERS ME 4 SPHERE SCAN NULL @FirstArena§6:start§r
    2014-01-23 23:34:29 [SEVERE] at me.dpohvar.varscript.vs.CommandDebug.runWorker(CommandDebug.java:29)
    2014-01-23 23:34:29 [SEVERE] at me.dpohvar.varscript.vs.Function.runCommands(Function.java:75)
    2014-01-23 23:34:29 [SEVERE] at me.dpohvar.varscript.vs.Context.runCommands(Context.java:90)
    2014-01-23 23:34:29 [SEVERE] at me.dpohvar.varscript.vs.Thread.runFunctions(Thread.java:134)
    2014-01-23 23:34:29 [SEVERE] ... 13 more
    2014-01-23 23:34:29 [SEVERE] Caused by: java.lang.NullPointerException
    2014-01-23 23:34:29 [SEVERE] at me.dpohvar.varscript.vs.init.InitDynamic$11.run(InitDynamic.java:302)
    2014-01-23 23:34:29 [SEVERE] at me.dpohvar.varscript.vs.init.InitDynamic$11.run(InitDynamic.java:298)
    2014-01-23 23:34:29 [SEVERE] at me.dpohvar.varscript.vs.CommandDebug.runWorker(CommandDebug.java:25)
    2014-01-23 23:34:29 [SEVERE] ... 16 more

    Даже не знаю с чего начать в изучении этого чуда.
     
  7. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Для начала нужно убедиться, что включен чедулер
    /scheduler on
    и включена сама задача
    /task FirstArena on
    теперь можно попробовать перезагрузить задачу:
    /task FirstArena reload
    смотрим в консоль на наличие ошибок.
    Задача должна была создать переменную FirstArena, которая содержит нужную арену.
    /> @FirstArena PRINT
    Если и теперь она выдает NULL - значит ошибка в задаче.

    PS: Этот модуль тестировался с VarScript 0.5.6 и 0.5.7, PowerNBT 0.5.4
    не тестировал с PowerNBT 0.6.x
     
    WalpeR нравится это.
  8. WalpeR

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

    Баллы:
    73
    VarScript 0.5.7

    В туторе было написано создать таск фаил по пути plugins/VarScript/scripts/vs/tasks/FirstArena.yml, а необходимо было plugins/VarScript/tasks/FirstArena.yml
    Все отлично работает =)
     
    Последнее редактирование: 24 янв 2014
    DPOH-VAR нравится это.
  9. RunFMe

    RunFMe Участник Пользователь

    Баллы:
    38
    А где можно взять item script
     
  10. MYXOMOPX

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

    Баллы:
    78
    Skype:
    MYXOMOPX
    Имя в Minecraft:
    MYXOMOPX
    Я его забросил. Он был написан на VarScript синтаксисе, у которого сейчас не работают пару функций.
    Может быть, позже переделаю его на Groovy.
     
    WalpeR нравится это.
  11. RunFMe

    RunFMe Участник Пользователь

    Баллы:
    38
    А что насчет дальнейшей пазработки плагина? И что вы думаете о перспективности рпг сервера со своим клиентом, самописными плагинами, var scriptom и др. Bukkit плагинами, модами, сайтом, и рпг сюжетом, созданном с помощью мода custom npc? Я почти все сделал, но сомневаюсь в перспективности в материальном плане. Сам я программист неплохой, есть команда.
     
  12. RunFMe

    RunFMe Участник Пользователь

    Баллы:
    38
    Я имею ввиду то, насколько живым майн остается на данный момент, играют ли в него нормальные люди или уже все. Дело в том, что раньше движения в этой области было много, сейчас же про майн вспоминают только школьники(агро) да программисты, типа вас. Но я в этом не уверен, поэтому и спросил так ли это. Сейчас думаю запускать проект или нет.
     
  13. ujkbktj

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

    Баллы:
    123
    DPOH-VAR, Ты богоподобен.[DOUBLEPOST=1391371543,1391363620][/DOUBLEPOST]Либо я слепой либо тут не написано.

    Никак не пойму как ставить модули и движки да вобще всё.
    Ктонибудь объясните как с нуля поставить Hell Jump очень хочу на свой сервер!
     
    RunFMe и fromgate нравится это.
  14. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Попробуй по этой инструкции.
    Если не получится - пиши в лс или skype
     
    RunFMe нравится это.
  15. RunFMe

    RunFMe Участник Пользователь

    Баллы:
    38
    Мда... Этот плагин гениален. Он позволяет делать плагины за несколько секунд... Ну, кроме нереально сложных. А плагин не популярен только, лишь потому что школо агро не хочет разбираться даже в такой простоте. Автор молодец. Продолжай в том же духе. А еще, я думаю, можно сделать файл с описанием всех функций(команд), чтобы это была просто стена текста с таким же описанием как в майнкрафте, но в текстовике.
     
    Последнее редактирование: 3 фев 2014
  16. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Я уже хочу отказаться от всех варскриптовых команд. Оставляю только для совместимости старых скриптов и модулей.
    Этих команд всего 500-700. Тут нет методов для работы с пакетами, нельзя использовать новые классы (добавленные в 1.7), а кое-какие команды вообще приходится каждый раз переделывать от версии в версии.
    Поэтому призываю всех использовать Groovy!
    Тут нет стековой системы, а вся документация есть на jd.bukkit.org
    Метаклассы позволяют упростить команды:
    me.setHealth(10) как me.hp = 10
    me.teleport(loc) как me >> loc
    и т.д.

    Функции из метаклассов описаны тут.
    Для новичков это будет очень сложно. Но можно все решить с помощью хороших подробных туториалов.
     
    0bsid1, RunFMe и fromgate нравится это.
  17. 0bsid1

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

    Баллы:
    123
    Имя в Minecraft:
    Artarious_Empiroo
    @DPOH-VAR, Привет.
    Тут ты писал вот что -
    [​IMG]
    А куда теперь закидывать Hell Jump?
    Папка Modules не создаётся, может надо её создать?
     
  18. ujkbktj

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

    Баллы:
    123
    Надо создать. С тебя лайк :).
     
    RunFMe, 0bsid1 и fromgate нравится это.
  19. 0bsid1

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

    Баллы:
    123
    Имя в Minecraft:
    Artarious_Empiroo
    А на 1.7.2/4 всё действует?
    Не могли бы скинуть папку VarScript с Hell Jump
     
  20. ujkbktj

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

    Баллы:
    123
    К сожалению HellJump не работает на 1.7. Только на 1.5(Со старой версией PowerNBT).
    Я уже сказал DPOH-VAR'у, он работает над исправлением.
     
    0bsid1 нравится это.
  21. 0bsid1

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

    Баллы:
    123
    Имя в Minecraft:
    Artarious_Empiroo
    Помогите!
    Когда проверяю
    Код:
    /> @Helljump PRINT
    /> @PlayerSaver PRINT
    Пишет null!!!
    Versions:
    VarScript 0.5.4.
    PowerNBT v0.5.1 beta
    -------------------
    Helljump кинул в plugins/VarScript/scripts/vs/modules
    PlayerSaver кинул в plugins/VarScript/scripts/vs/modules
    FirstArena кинул в plugins/VarScript/tasks
    ----
    В чём дело?
    Может кто-то сделает туториал(видио урок) по Helljump?
     

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