Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Так что то я вас не совсем понимаю или вы меня.
Изначально открывается папка user.home. Чтобы перейти в другую папку тыкаете на папку и нажимаете выбрать. Если хотите перейти на папку выше, нажимаете на первый элемент списка. Т.е. это нормальный такой эксплорерю.
UPD Он запоминает последнюю открытую папку, но после перезагрузки клиента все равно user.home.
Так что то я вас не совсем понимаю или вы меня.
Изначально открывается папка user.home. Чтобы перейти в другую папку тыкаете на папку и нажимаете выбрать. Если хотите перейти на папку выше, нажимаете на первый элемент списка. Т.е. это нормальный такой эксплорерю.
UPD Он запоминает последнюю открытую папку, но после перезагрузки клиента все равно user.home.
Зачетный мод, молодец. Будет ли возможность глянуть исходы?
Кстати, по поводу imgur и етс. Можно привинтить скрипт(javax.script), который будет реализовывать абстрактный метод, отвечающий за публикацию картинки куда-либо.
Зачетный мод, молодец. Будет ли возможность глянуть исходы?
Кстати, по поводу 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 бинарников. Думаю клиентский код я опубликую.
Итак как я уже говорил мод использует свои собственные сокеты. Когда игрок заходит на сервер ему прилетает пакет с портом сокета, максимальным размером изображения, возможность отсылать, возможность принимать и пр. После получения этого пакета мод считается активированым, если пакет не получен(на сервере стоит чот не то либо синглплеер) мод работать не будет вообще. Далее есть такая фича как секретные ключи. Ключ запрашивается через обычные майнкрафт пакеты, при том если ключ запрашивается слишком часто или при прочих исключения будет возвращаться -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 отправляется к клиенту.