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

Плагин [ADMIN]Hugo v.1.0 - берём в свои руки власть над временем на нашем сервере [1.7.10]

Тема в разделе "Неподтвержденные плагины", создана пользователем LaoTheLizard, 3 дек 2014.

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

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Hugo v.1.0

    Краткая предыстория:
    С позволения уважаемого @Shevchik решил развить его идею об изменении течения времени на сервере. Предлагаю вашему вниманию то, что у меня в итоге получилось.
    Название позаимствовал у фильма "Хранитель времени".

    Описание:
    Данный плагин является гибким инструментом администрации, позволяющим без перезагрузки сервера, без ванильных команд и без вспомогательных плагинов ускорять, замедлять, останавливать и вновь запускать, устанавливать на конкретное значение, либо привязывать к реальному времени сервера (компьютера, на котором сервер установлен) суточный ход времени.

    В работе:


    Версия:
    Работоспособность текущей версии плагина была проверена на версиях Craftbukkit 1.7.10 и Cauldron 1.1236.06.211. Насколько я могу предполагать, плагин должен корректно работать на всех версиях, начиная с 1.6.1 (Horse Update).

    Конфликты:
    • Конфликтов с плагинами не установлено, однако, нежелательно совместное использование с командой /time плагина CommandBook (лучше её вообще отключить в его конфиге) и аналогичными ванильными командами. То есть, критических проблем возникнуть не должно, но корректную работу плагина в этом случае я вообще не гарантирую.
    • При использовании мода GravestoneMod обязательно установите в конфиге мода EnableNightStone=false.
    • Удалять плагин с сервера рекомендуется только после корректного завершения его работы, так как суточный ход времени регулируется плагином на все существующие миры (включая миры из модов). При этом сама конфигурация плагина не имеет значения: просто при корректном завершении плагин всегда возвращает стандартное течение времени на сервере.

    Известные баги, фичи:
    • (баг) При изменении времени на меньшее текущего происходит смена лунного дня - луна меняет свою фазу. При этом мод Calendar Mod считает, что наступил следующий день.
    • (фича) Если лечь спать всем, кто есть на сервере, все тут же проснутся, но утро не наступит.

    История версий:
    • v.1.0 Release.

    Требования:
    • Vault (без него плагин не запустится).
    Установка:
    Закиньте файл Hugo.jar в папку с плагинами.
    Перезапустите сервер.
    В папке Hugo будут автоматически сгенерированы два файла - конфигурации и локализации.
    По умолчанию плагин не русифицирован, но свой вариант русификации я прилагаю в архиве - можно сразу создать папку Hugo и закинуть его туда - тогда плагин сразу будет на русском языке. Перезагрузка плагина на данный момент не предусмотрена (она пригодилась бы только для русификации "на лету"), поэтому для применения ручного тюнинга файла локализации придется сервер перезагрузить.
    При первом запуске плагин не меняет текущий ход суток. Все изменения производятся соответствующими командами плагина. После перезагрузки сервера все изменения остаются в силе (если вы остановите время - после перезагрузки оно будет также стоять на месте).

    Конфигурация:
    Я настоятельно рекомендую не править файл конфигурации вручную. Хотя в коде есть пара защит от дурака, я вполне мог что-то пропустить и не предусмотреть. Правки конфигурации командами при тестовых проверках никаких проблем не вызвали. Состояние времени в данный момент можно узнать, не заглядывая в файл конфигурации, командой /clock.
    Файл локализации можно править на свой вкус, не забывая про UTF-8 и кавычки. В случае, если ваши правки привели к проблемам, просто удалите файл локализации и перезапустите сервер - будет сгенерирован новый файл.

    Permissions:
    Clock.Admin
    - разрешает пользование всеми командами.
    Clock.start - разрешает команду /clock start
    Clock.real - разрешает команду /clock real
    Clock.set - разрешает команду /clock set xx
    Clock.fast - разрешает команду /clock fast xx
    Clock.slow - разрешает команду /clock slow xx
    Clock.help - разрешает команду /clock help
    Clock.vanilla - разрешает команду /clock vanilla
    Clock.stop - разрешает команду /clock stop
    Clock.status - разрешает команду /clock (единственная безопасная команда, для игроков)

    Операторы по умолчанию имеют доступ ко всем командам плагина.


    Команды:
    /clock
    - показывает, какой режим сейчас активен.
    /clock help - показывает помощь по плагину.
    /clock start - запускает режим Extended Day.
    /clock stop - останавливает режим Extended Day.
    /clock set xx - устанавливает время на xx часов (0...23).
    /clock fast xx - делит длительность суток на xx (1...20).
    /clock slow xx - умножает длительность суток на xx (1...60).
    /clock vanilla - включает/выключает ванильный ход времени.
    /clock real - включает/выключает привязку к реальному времени сервера.

    Вместо /clock можно использовать /cl.

    ToDo:
    • ввести пару платных команд (за внутриигровую валюту) для игроков, позволяющую, к примеру, поставить время "на паузу" на некоторый регламентированный промежуток времени.
    • реализовать возможность полного контроля лунных фаз (в данный момент реализовано лишь частично).
    • реализовать возможность установки текущей даты на сервере (актуально только для мода Calendar Mod).
    • реализовать возможность работы с плагином через консоль (скоро сделаю, если будут желающие).
    Bukkit.org: http://dev.bukkit.org/bukkit-plugins/hugo/
     

    Вложения:

    • Hugo.zip
      Размер файла:
      11,4 КБ
      Просмотров:
      26
    • Hugo164.zip
      Размер файла:
      11,4 КБ
      Просмотров:
      9
    Последнее редактирование: 3 дек 2014
  2. Mr Hosting
  3. Sergey_28rus

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

    Баллы:
    76
    На 1.6.4 R2-0 не создает папку с файлами, но при этом плагин работает, только на английском. Исправь!
     
  4. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Правильно, не создает. Файлы он положил в корневой каталог сервера. Туда, где лежит твой CraftBukkit.jar, можешь поискать. Специально для 1.6.1-1.6.4 вложил в топик дополнительный файл, в котором это исправлено.
     
  5. vladF

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

    Баллы:
    103
    Имя в Minecraft:
    vladF
    Код (Text):
    1. [00:08:05 ERROR]: Could not load 'plugins\Hugo164.jar' in folder 'plugins'
    2. org.bukkit.plugin.UnknownDependencyException: Vault
    3.         at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    4. .java:221) [SimplePluginManager.class:git-Cauldron-MCPC-Plus-1.7.10-1.1207.01.19
    5. 8]
    6.         at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugins(CraftServer.ja
    7. va:320) [CraftServer.class:git-Cauldron-MCPC-Plus-1.7.10-1.1207.01.198]
    8.         at net.minecraft.world.storage.SaveHandler.initBukkitData(SaveHandler.ja
    9. va:458) [ayq.class:?]
    10.         at net.minecraft.world.storage.SaveHandler.func_75757_d(SaveHandler.java
    11. :136) [ayq.class:?]
    12.         at net.minecraft.world.World.<init>(World.java:350) [ahb.class:?]
    13.         at net.minecraft.world.WorldServer.<init>(WorldServer.java:153) [mt.clas
    14. s:?]
    15.         at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.jav
    16. a:356) [MinecraftServer.class:?]
    17.         at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(Dedicated
    18. Server.java:329) [lt.class:?]
    19.         at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:620) [M
    20. inecraftServer.class:?]
    21.         at java.lang.Thread.run(Unknown Source) [?:1.8.0_11]
    Хм, на Cauldron 1.7.10 не запускается. Вот фрагмент лога
     
  6. InTheWeb

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

    Баллы:
    66
    vault установили?
     
  7. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Имя в Minecraft:
    iBars
    А разве на Dev Bukkit возвращена модерация? Или как плагин был принят?
     
  8. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    vladF:
    У меня как раз стоит Cauldron 1.7.10 - и всё работает.
    Выше я писал:
    "Требования: Vault (без него плагин не запустится)."
    В приведенном куске лога написана причина: "UnknownDependencyException: Vault".
    --- Сообщения объединены: 12 дек 2014, предыдущее сообщение: 12 дек 2014 ---
    Bars, плагин был принят на Dev Bukkit. Правда, я не понял сути вопроса.
     
  9. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Имя в Minecraft:
    iBars
    1. Bukkit заброшен
    2. Авторы плагинов постят обновления на сторонние сайты и оставляют ссылки в описании на Bukkit Dev. Если бы на Bukkit Dev была модерация, они бы этого не делали и могли продолжать постить обновления дальше
    3. Каталог не обновляется вуапще
    --- Сообщения объединены: 12 дек 2014, предыдущее сообщение: 12 дек 2014 ---
    Посему удивляюсь и вопрошаю...
     
  10. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Bars, теперь понял.

    1. Не знал.
    2. Мне все равно, я пишу плагины для себя, а выкладываю, если считаю задумку полезной. Там и здесь - чтоб было больше шансов, что кому-то пригодится. Когда я выкладывал плагин, вверху было красное сообщение, что плагин еще не утвержден, а через десяток часов его утвердили. Видимо, модерация все-таки есть.
    3. Про каталог не знал. Да и теперь не интересуюсь им.

    P.S. Кстати, вот интересно, почему тут есть мой плагин (или два), которые перенесли в "Утвержденные", а есть такие, которые не перенесли. От чего это зависит?
     
  11. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Имя в Minecraft:
    iBars
    Думаю что от оформления темы. Или утвердители спят :D
    Не знаю даже и перенесли ли мой новый Flight Reloaded...
     
  12. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Так я вроде все по правилам строго стараюсь оформлять. Может, кружева какие-нибудь добавить или еще какие элементы аранжировки?
     
  13. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Имя в Minecraft:
    iBars
    Нет, скорее всего в зимней спячке.
     
  14. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Исправляется использованием метода setFullTime, если что
     
  15. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Да это не очень важно. Лучше скажи, как получать и как задавать внутреннюю дату мира. :)
     
  16. vladF

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

    Баллы:
    103
    Имя в Minecraft:
    vladF
    Извини, не заметил)
     
  17. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Не понял вопрос
     
  18. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Есть такой мод - CalendarMod. Он откуда-то умеет брать количество дней (внутренних, которые по 20 минут), прошедших с последнего вайпа (с момента создания новой карты) и выводить текущую дату на блок календаря. Установлен факт, что эта информация содержится в level.dat. Однако я не нашел, как ее оттуда извлекать в бакките и как её изменять по своему усмотрению.
     
  19. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Можно достать через NBT, точно не знаю как. Возможно мод сравнивает прошлое и нынешнее время суток, и если нынешнее меньше прошлого, то он начинает новый день.
     
  20. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Допустим, вайпаем сервер, играем месяц, потом ставим на сервер этот мод - и мод знает, сколько игровых дней прошло с вайпа карты. Если стереть файл level.dat, то мод считает что сегодня 1 января 1 года. Значит, где-то в нем хранится информация о том, сколько суток прошло. Интересно было бы реализовать в плагине возможность установки конкретной даты. Можно, конечно, для обнуления тупо удалять level.dat, только незадача - модовые шмотки меняют свои ID и в "мире" наступает апокалипсис...
     
  21. vladF

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

    Баллы:
    103
    Имя в Minecraft:
    vladF
    А ,может быть, мод проверяет дату создания level.dat? И исходя от нее высчитывает текущую?
     

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