1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Плагин [MECH/FUN] ReActions - Что? Тогда? Иначе! [BukkitDev]

Тема в разделе "Релизы плагинов", создана пользователем fromgate, 16 июл 2013.

  1. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Давно предлагал расширенный вариант: собственная папка для переменных и возможность указывать файл, куда будут записываться переменные. Предлагал из-за того, что при записи в файл и одновременном краше сервера, файл может испортиться и при следующем чтении будет перезаписан, что очень серьёзно может сказаться на безопасности.

    Не знаю как сейчас, так как за размером файла переменных жёстко слежу. Но такая ситуация была, когда я хранил данные для каждого игрока, вошедшего на сервер. А это количество исчислялось тысячами (строк в файле на сервере версии 1.5.2 - 7к).
     
  2. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Воспользуйтесь базой данных MySQL для хранения там персональных переменных. Очень удобно, когда переменных слишком много. Также удобно, когда необходимо связать переменные с данными из других плагинов, использующие базу MySQL.
     
  3. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Да, действительно. Работает только так:
    Код:
    BLOCK_BREAK:
      Test:
        block: type:chest
        actions:
        - MESSAGE=Вы сломали сундук. За Вами выехали.
    

    Вечно бегать от MySQL, как от переменных в ReActions в своё время, кажется, не получится. Что же, придётся осваивать :)
     
  4. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    И у меня была такая ситуация. Вот из-за этого основные переменные я уже, как пол-года, храню в БД.
     
  5. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Вопрос первый: какое влияние должно было оказать это действие? Что изменилось?
    Код:
        - SQL_INSERT=query:{INSERT INTO ReActions (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 )}
    Код:
    MySQL:
      server: localhost
      port: '3306'
      database: ReActions
      username: root
      password:
      codepage: '
    
    Консоль говорит, что ничего не изменилось:
    Код:
    Failed to connect to database: jdbc:mysql://localhost:3306/ReActions user: root
     
  6. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Эти параметры почему не изменены под вашу базу. Или у вас нет пароля к базе?
    А база ReActions существует?
    Базу лучше называть не ReActions, а minecraft. В ней будете хранить не только таблицы Reactions, но и таблицы других плагинов.
     
  7. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Судя по гайдам в интернетах, для создания базы предусмотрена отдельная команда, которую я даже не знаю куда ввести :D
    Пока что хочу экспериментировать не на основной, возможно существующей, базе.
     
  8. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Прежде чем выполнять это действие, необходимо создать таблицу ReActions, конечно, если вы её ещё не создали.
    Тогда нужно установить данные этой базы в конфиг ReActions, а затем в этой базе создать таблицу ReActions с теми колонками, которые вам необходимы.
     
  9. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Окей. Куда мне писать данную команду? Действия в ReActions не предусматривают этого:
    Код:
    CREATE TABLE table_name(
    column1 datatype,
    column2 datatype,
    column3 datatype,
    .....
    columnN datatype,
    PRIMARY KEY( one or more columns )
    );
    
     
  10. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Вам необходимо базу и таблицу подготовить за пределами сервера. Вы можете воспользоваться любыми оболочками для работы с БД. Я рекомендую воспользоваться phpMyAdmin. Очень удобная штука, работает в WEB режиме, можно использовать как в linux, так и в Windows системах. Интуитивно понятный интерфейс. Гарантирую, сразу разберётесь.
     
  11. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Спасибо, начну изучать :)
     
  12. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    А я рекомендую приложение MySQL Workbench. Правда это локальное приложение и на сервере (в зависимости от настроек БД) может быть запрещено соединение "из вне".
     
  13. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Я пользуюсь и Workbench и phpMyAdmin. У каждого имеются свои достоинства. Так, что на своём настаивать не буду. Думаю, даже проще будет установить MySQL Workbench и подключаться к серверу, если к нему разрешён доступ.
     
  14. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    А я пожалуй ещё побегаю месяца два-три. А там видно будет...
     
  15. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    А зря. Как мне кажется, я бы уже смог реализовать "переменный инвентарь". В 1.12 это уже сделали, но только для креатива и ещё непонятно как с этим работать. Однако, я смогу сделать не хуже :)
    Заметил, что EXEC не выполняется для игрока в активаторе QUIT. Придётся передавать имя игрока как переменную в качестве костыля?
    Поигрался я с MySQL на локалке. Создал таблицу, добавил строку, вывел её - что ещё нужно для счастья? Как теперь мне закинуть сервер MySQL вместе с созданной базой данных на сервер майна? Или это нужно заказывать отдельный дедик для сервера и таблиц? // Отбой. Нашёл, что хостинг предоставляет эту услугу бесплатно.
     
    Последнее редактирование: 25 май 2017
  16. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Вот тут какой-то чел создал плагин на сохранение/загрузку инвентаря, мб его попробуй, если с MySQL ничего не выйет -- https://www.spigotmc.org/resources/inventorysaver.39248/
    Я его не тестировал правда...
     
    Последнее редактирование: 25 май 2017
  17. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Как будто я смогу создавать несколько инвентарей для одного игрока. ReActions лучше! :) Да и он только до 1.9, а у меня 1.11.
     
  18. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    build #111
    Этим действием можно получить информацию о предмете в указанном слоте. Полезно, если необходимо сохранить указанный слот или инвентарь в персональную переменную/ые.​
     
    Последнее редактирование: 25 май 2017
  19. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Идеально :3
     
  20. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Только что набросал ряд активаторов для сохранения инвентаря в таблицу базы данных MySQL. Выкладываю, кому интересно. Чтобы у вас заработало, необходимо заранее создать таблицу с теми колонками, которые здесь указаны.
    Код:
      get_slots:
        actions:
        - VAR_PLAYER_SET=id:slots value:0
        - execute=activator:get_slot
      get_slot:
        flags:
        - '!VAR_PLAYER_GREATER=id:i value:35'
        actions:
        - VAR_PLAYER_INC=id:i
        - ITEM_SLOT_VIEW=slot:%CALC:%varp:i%-1%
        - if_else=if:{"%varp:slots%"=="0"} then:{'%item_str%'} else:{%varp:slots%,'%item_str%'}
        - VAR_PLAYER_SET=id:slots value:{%ifelseresult%}
        - execute=activator:get_slot
        reactions:
        - VAR_PLAYER_CLEAR=id:i
        - execute=activator:inv
      inv:
        flags:
        - VAR_PLAYER_EXIST=id:slots
        actions:
        - SQL_INSERT=query:{INSERT INTO tbl_server_mc_reactions_inventory (name,player_id,slot_0,slot_1,slot_2,slot_3,slot_4,slot_5,slot_6,slot_7,slot_8,slot_9,slot_10,slot_11,slot_12,slot_13,slot_14,slot_15,slot_16,slot_17,slot_18,slot_19,slot_20,slot_21,slot_22,slot_23,slot_24,slot_25,slot_26,slot_27,slot_28,slot_29,slot_30,slot_31,slot_32,slot_33,slot_34,slot_35) VALUES ('test_inventory', '12', %varp:slots%)}
        - VAR_PLAYER_CLEAR=id:slots
    
    Запуск:
    /exec get_slots
     

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