[1.7.10]Pich - свои картинки в майнкрафт чат=)

Как вам?


  • Всего проголосовало
    26
Так что то я вас не совсем понимаю или вы меня.
Изначально открывается папка user.home. Чтобы перейти в другую папку тыкаете на папку и нажимаете выбрать. Если хотите перейти на папку выше, нажимаете на первый элемент списка. Т.е. это нормальный такой эксплорерю.
UPD Он запоминает последнюю открытую папку, но после перезагрузки клиента все равно user.home.
 
JustAGod написал(а):
Так что то я вас не совсем понимаю или вы меня.
Изначально открывается папка user.home. Чтобы перейти в другую папку тыкаете на папку и нажимаете выбрать. Если хотите перейти на папку выше, нажимаете на первый элемент списка. Т.е. это нормальный такой эксплорерю.
UPD Он запоминает последнюю открытую папку, но после перезагрузки клиента все равно user.home.

Уго, про запоминание папки и user.home (про то что другая папка, а не эта) я и спрашивал.
 
Зачетный мод, молодец. Будет ли возможность глянуть исходы?
Кстати, по поводу imgur и етс. Можно привинтить скрипт(javax.script), который будет реализовывать абстрактный метод, отвечающий за публикацию картинки куда-либо.
 
CoomingSoon написал(а):
Зачетный мод, молодец. Будет ли возможность глянуть исходы?
Кстати, по поводу imgur и етс. Можно привинтить скрипт(javax.script), который будет реализовывать абстрактный метод publish, отвечающий за публикацию картинки куда-либо.

Хорошая идея, спасибо. Сделаю!

Только там немного не так. Там есть 4 метода:
1) int putFile(byte[]);
2) InputStream getFile(int id);
3) boolean hasFile(int id);
4) void deleteFile(int id);

По поводу исходников.
У меня мод состоит из 2 бинарников. Думаю клиентский код я опубликую.
 
Честно говоря, я не до конца понял устройство этого неплохого мода.
 
CoomingSoon написал(а):
Честно говоря, я не до конца понял устройство этого неплохого мода.

Спасибо конечно еще раз. Кстати Noize Mc я узнал.

Мод в сумме состоит из 15к строчек кода. Если действительно интересно я могу рассказать всю подноготную, но будет много. Желаете?
 
Если ты про мой статус, то это Anacondaz, но не суть.
Да, мне интересно устройство мода, передачи данных и пр.
 
Хмх перепутул сорян.

Поехали!

Итак как я уже говорил мод использует свои собственные сокеты. Когда игрок заходит на сервер ему прилетает пакет с портом сокета, максимальным размером изображения, возможность отсылать, возможность принимать и пр. После получения этого пакета мод считается активированым, если пакет не получен(на сервере стоит чот не то либо синглплеер) мод работать не будет вообще. Далее есть такая фича как секретные ключи. Ключ запрашивается через обычные майнкрафт пакеты, при том если ключ запрашивается слишком часто или при прочих исключения будет возвращаться -1. Так же нужно сказать что ключ привязан к игроку. Далее идут запросы. Клиент посылает супер секретный ключ на сервер и прочее контрольные  данные. Если все ок сервер возвращает true, ну и уже идет дальнейшие общение. Все что можно проверить проверяется на обеих сторонах. И да постоянных сокет подключений нет, хотя наверно так было бы даже лучше, но не суть. 

Далее на сервере есть singelton PictureManager. При инициализации он подгружает PermissionProvider, FilesProvider и EventDispetcher обусловленные в конфигах.
Код:
public interface PermissionsProvider {

    boolean canSend(EntityPlayerMP player);

    int maxDim(EntityPlayerMP sender);

    boolean canReceive(EntityPlayerMP receiver);

    int getSpamDelay(EntityPlayerMP sender);
}
Код:
public interface EventDispatcher {

    boolean onPictureReceived(String player, int pictureId, String message, String picture);
}
Код:
public interface FileProvider {

    boolean hasFile(int id);

    byte[] getFile(int id);

    void deleteFile(int id);

    int putFile(byte[] bytes);

    void dump();
}

При отправке пакета на клиент пермишены как раз берутся из PermissionsProvider. При получении кншн же все еще раз проверяется. Когда картинка получена она отправляется в FileProvider он возвращает ее id. Потом это вызывается метод у диспетчера событий, чтобы он опубликовал сообщение на сервере, если он вернул true, id отправляется к клиенту.

Как то так
 
Неплохо, но мне всё равно до конца сложно понять, увы
 
https://minecraft.curseforge.com/projects/pich
То самое чувство, когда он выложил его 23 часа назад, а не написал...
 
Идеальный мод! На иностранных серверах с FTB-сборками подходит, как TwitchEmoticons
 
Что ж я мод допилил. Создал ресурс. Не знаю надо ли удалять тему тут, так что просто оставлю все как есть.
 
Назад
Сверху