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

Как вам?


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

Уго, про запоминание папки и user.home (про то что другая папка, а не эта) я и спрашивал.
 

CumingSoon

Местный стендапер
1,634
12
269
Зачетный мод, молодец. Будет ли возможность глянуть исходы?
Кстати, по поводу imgur и етс. Можно привинтить скрипт(javax.script), который будет реализовывать абстрактный метод, отвечающий за публикацию картинки куда-либо.
 
1,111
47
420
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 бинарников. Думаю клиентский код я опубликую.
 

CumingSoon

Местный стендапер
1,634
12
269
Честно говоря, я не до конца понял устройство этого неплохого мода.
 
1,111
47
420
CoomingSoon написал(а):
Честно говоря, я не до конца понял устройство этого неплохого мода.

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

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

CumingSoon

Местный стендапер
1,634
12
269
Если ты про мой статус, то это Anacondaz, но не суть.
Да, мне интересно устройство мода, передачи данных и пр.
 
1,111
47
420
Хмх перепутул сорян.

Поехали!

Итак как я уже говорил мод использует свои собственные сокеты. Когда игрок заходит на сервер ему прилетает пакет с портом сокета, максимальным размером изображения, возможность отсылать, возможность принимать и пр. После получения этого пакета мод считается активированым, если пакет не получен(на сервере стоит чот не то либо синглплеер) мод работать не будет вообще. Далее есть такая фича как секретные ключи. Ключ запрашивается через обычные майнкрафт пакеты, при том если ключ запрашивается слишком часто или при прочих исключения будет возвращаться -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 отправляется к клиенту.

Как то так
 

CumingSoon

Местный стендапер
1,634
12
269
Неплохо, но мне всё равно до конца сложно понять, увы
 
3,005
192
592
https://minecraft.curseforge.com/projects/pich
То самое чувство, когда он выложил его 23 часа назад, а не написал...
 
7,099
324
1,510
128
12
Идеальный мод! На иностранных серверах с FTB-сборками подходит, как TwitchEmoticons
 
1,111
47
420
Что ж я мод допилил. Создал ресурс. Не знаю надо ли удалять тему тут, так что просто оставлю все как есть.
 
Сверху