Иконка ресурса

Pich 1.2

Нет прав для скачивания
Версия(и) Minecraft
1.7.10
Pich
Добрый вечер. Я не обладаю даже зачатками красноречия, а потому буду краток.
Я написал мод, который добавляет в обычный майнкрафт чат картинки. Видео.


Как это работает:
Т.к. использовать обычные майнкрафт пакеты было бы глупо, я использую свои собственные протоколы и сокеты.

Что он может:
Когда вы жмакаете 'P' открывается интерфейс отправки картинки. Картинку вы можете выбрать со своего компьютера. После нажатия кнопки 'отправить' и начнется магия. А именно: клиент запросит ключ у сервера через обычный майнкрафт пакет, клиент начинает запрос через сокет, где использует свой ключ, сервер проверяет может ли игрок отправлять картинку и не является ли это спамом, после чего получит файл и опубликует его. Протокол получения файла очень похож.
Так же после того, как вы сделаете скриншот и нажмете 'P' скриншот будет автоматически подгружен в интерфейс.

Для администраторов:
Итак, все просто. Как только вы поставите серверную часть мода на сервер, он создаст файл 'pich.json', который и является конфигурационым файлом пича. По дефолту он выглядит так:
Код:
{
 "port": 3000,
 "provider": {
   "type": "hard drive",
   "folder": "pich"
 },
 "permissions": {
   "type": "general",
   "spamDelay": 0,
   "maxDim": 4096
 },
 "dispatcher": {
   "type": "default",
   "pattern": "[\"{player} {text} \",{\"text\": \"{picture}\",\"bold\": true,\"underlined\": true,\"clickEvent\": {\"action\": \"run_command\",\"value\": \"/pich {id}\"},\n\"hoverEvent\": {\"action\": \"show_text\",\"value\": {\n\"text\": \"\",\"extra\": [{\"text\": \"Нажмите чтобы просмотреть картинку\",\"color\": \"dark_green\"}]}}\n}\n]"
 }
}
Ничего сложного. Но, все же, поговорим поподробнее.
port - порт на котором будет сидеть пич.
provider - тут сложнее. Провайдер - это способ хранения и получения картинок. Они есть 3 видов:
1) 'hard drive' - хранение всех картинок в отдельных файлах. Вы можете указать 'folder' путь до папки в которой вы хотели бы хранить картинки, но можете и не указывать. Этот вариант побережет вашу оперативку но скажется на скорости. В демке я использовал именно его.
2) 'buffered' - хранение всех файлов в оперативной памяти. Быстро, дешево и сердито.
3) 'imgur' - в последнее время модно хранить там картинки, ну я и подумал, а чем я хуже? Вообщем он закидывает все файлы на имгур.
Во время отключения сервера все файлы удаляются.
permissions - Это провайдер пермишенов. Они бывают 2 видов:
1) 'general' - на сколько я знаю английский, это значит общий. Он дает всем одинаковые права не смотря на их расовую принадлежность. У него есть два параметра: 'spamDelay' - время передышки спамера и 'maxDim' - максимальная длина и ширина картинки.
2)'bukkit' - тут уже учитываются пермишены. Какие существуют пермишены:
a)pich.dimension.max - размер картинки без ограничений
б)pich.dimension.extra_large - 4096х4096
в)pich.dimension.large - 2048x2048
г)pich.dimension.medium - 1024x1024
д)pich.dimension.smal - 512x512
е)pich.dimension.tiny - 256x256
е)pich.can_send - возможность отправлять
ж)pich.can_receive - возможность получать
и)pich.spam_override - обход анти-спама

dispatcher - диспетчер событий мода. Событие пока только одно: получение и рассылка картинки.
Бывают 3 видов: deafault - диспетчер написаный мной, параметром берет формат сообщения в виде JSON элемента, custom - диспетчер написаный вами, параметром берет путь к вашему классу.
bukkit - форматирует согласно плагинам на сервере. Вообщем то просто отсылает событие и считывает результат.

Код:
Спасибо, что используете Pich.

Далее идет инструкция по настройке.

"port" - port к которому будет привязан Pich

"provider" - способ сохранения файлов
"provider": {
   "type": "hard drive",
   "folder": "pich"
} - все файлы будут сохранятся на жестком диске в папке pich. Скорость весьма средняя.

"provider": {
   "type": "imgur"
} - все файлы будут загружаться на Imgur. Скорость зависит от интернет соединения.

"provider": {
   "type": "buffered"
} - все файлы будут сохраняться в оперативной памяти. Самый быстрый вариант.


"permissions": {
   "type": "general",
   "spamDelay": 20000,
   "maxDim": 4096
} - обобщеный способ предоставления прав(У всех права одинаковы). "spamDelay" - время передышки спамера в милисекундах(1 / 1000 секунды),
"maxDim" - максимальная ширина и высота картинки в пикселях.

"permissions": {
    "type": "bukkit",
    "spamDelay": 20000,
} - Bukkit способ(зависит от Bukkit прав). "spamDelay" - время передышки спамера в милисекундах(1 / 1000 секунды).
Доступные пермишены:
pich.dimension.max - размер картинки без ограничений
pich.dimension.extra_large - 4096х4096
pich.dimension.large - 2048x2048
pich.dimension.medium - 1024x1024
pich.dimension.small - 512x512
pich.dimension.tiny - 256x256
pich.can_send - возможность отправлять
pich.can_receive - возможность получать
pich.spam_override - обход анти-спама

"dispatcher": {
   "type": "default",
   "pattern": "[\"{player} {text} \",{\"text\": \"{picture}\",\"bold\": true,\"underlined\": true,\"clickEvent\": {\"action\": \"run_command\",\"value\": \"/pich {id}\"},\n\"hoverEvent\": {\"action\": \"show_text\",\"value\": {\n\"text\": \"\",\"extra\": [{\"text\": \"Нажмите чтобы просмотреть картинку\",\"color\": \"dark_green\"}]}}\n}\n]"
} - стандартный диспетчер событий. "pattern" - как будет выглядить сообщение в чате

"dispatcher": {
   "type": "custom",
   "class": "ru.justagod.pich.api.EventDispatcher"
} - ваш собственный диспетчер.
Требования:
1) Наследование от ru.justagod.pich.api.EventDispatcher.
2) Наличие стандартного конструктора (без параметров)
3) Класс не должен быть интерфейсом, абстрактным классом, аннотацией и прочим, что нельзя инстантилизировать.

P.S. Что бы установить вам нужно поставить клиентскую часть на клиент и серверную на сервер.

Pich
Автор
JustAGod
Скачивания
25
Просмотры
1,201
Первый выпуск
Обновление
Оценка
4.00 звёзд 2 оценок

Другие ресурсы пользователя JustAGod

Последние обновления

  1. Initial

    Первый

Последние рецензии

Нужно больше скриншотов! А вообще штука прикольная
Сверху