Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Идея Кто умеет писать плагины?

ZaRRaZa

Старожил
Баллы
103
Собственно поехали:

есть в БД MySQL табличка:

CREATE TABLE `check_md5` (
`name` varchar(16) CHARACTER SET utf8 NOT NULL,
`hash` varchar(32) NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


допустим в ней записанно:

INSERT INTO `check_md5` VALUES ('User', 'B548C224C912C7D0F1E13890C5BDAE47');



Нужен плагин с конфигурационным файлом в котором записан хеш, сообщение при отключении игрока и настройки для коннекта к БД MySQL, например:
core:
hash: '1234567890'
message: 'У вас не наш клиент!'

database:
host: 'localhost'
database: 'minecraft'
username: 'root'
password: ''
table: 'check_md5'

Далее, когда игрок под ником User присоединяется к серверу, то плагин должен проверить хеш с файла конфигурации на совпадение в БД от пользователя User, если хеш совпадает пропустить игрока на сервер, а если нет отключить и написать типа: У вас не наш клиент!
 
Откуда будет браться второй хеш для сверки? Если будет второй хеш, зачем передавать имя игрока?
P.S. плагины не пишу, просто мне кажется у вас ошибка в логике...
 
Откуда будет браться второй хеш для сверки? Если будет второй хеш, зачем передавать имя игрока?
P.S. плагины не пишу, просто мне кажется у вас ошибка в логике...
Оригинальный хеш записан в конфиге плагина, а 2й хеш лаунчер передаёт в БД, через php файлик =)
P.S. у меня ошибки нет.
 
Оригинальный хеш записан в конфиге плагина, а 2й хеш лаунчер передаёт в БД, через php файлик =)
P.S. у меня ошибки нет.

@ZaRRaZa, теперь уже нет.., до этого вы о php файле не упоминали. И всё-таки, имя игрока передавать нет смысла необходимости.

Теперь другая ошибка, хеш должен передавать клиент, а не лаунчер, так-как я могу вашим лаунчером запустить свой клиент. При передаче хеша лаунчером, плагин не нужен.
 
@ZaRRaZa, теперь уже нет.., до этого вы о php файле не упоминали. И всё-таки, имя игрока передавать нет смысла необходимости.

Теперь другая ошибка, хеш должен передавать клиент, а не лаунчер, так-как я могу вашим лаунчером запустить свой клиент. При передаче хеша лаунчером, плагин не нужен.

Ну вы запустите моим лаунчером свой клиент, мой лаунчер проверит MD5 вашего minecraft.jar и отправит мне в БД ВашЛогин и ВашMD5, при заходе на сервер игрока с ВашимЛогином плагин проверит совпадает ли Ваш MD5 с тем который в конфиг файле, и отключит вас =)
 
Вот видите, мы уже выяснили что у вас есть лаунчер который поддерживает авторизацию пользователей, и сверяет хеш minecraft.jar с хешем файла на вашем сервер(это информация важна для того человека который возьмется писать плагин, т.к. ему еще придется модифицировать ваш лаунчер, чтобы он что-то куда-то передавал).
P.S. это не защитит вас на 100% от запуска не вашего клиента, т.к. одно незначительное изменение в лаунчере сведет на нет все ваши усилия (декомпилировать лаунчер не нужно).
 
Вот видите, мы уже выяснили что у вас есть лаунчер который поддерживает авторизацию пользователей, и сверяет хеш minecraft.jar с хешем файла на вашем сервер(это информация важна для того человека который возьмется писать плагин, т.к. ему еще придется модифицировать ваш лаунчер, чтобы он что-то куда-то передавал).
P.S. это не защитит вас на 100% от запуска не вашего клиента, т.к. одно незначительное изменение в лаунчере сведет на нет все ваши усилия (декомпилировать лаунчер не нужно).

Лаунчер не прийдётся ему модифицировать, т.к. он уже модифицированный, при запуске он посылает мне в БД имя пользователя и Хеш, вот мне нужен плагин который будет сверять имя пользователя его хеш клиент с хешом в конфигурационном файле ;)

P.S. у меня лаунчер во временной директории находится, так что его ещё надо найти, и не именно лаунчер передаёт )
 

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

Назад
Верх