Помогите Получить всех онлайн и оффлайн людей с одним IPs

  • Автор темы Автор темы Qbert
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Qbert

Активный участник
Пользователь
Баллы
66
Надо сделать так чтобы при написании "/accs [IP]" Должно выдавать всех онлайн и оффлайн с этим IP игроков через знак " | " (справа и слева от знака | пробелы!!). "Игрок1 | игрок2 | игрок3 | игрок4...".
 
В ess что то подобное было вроде. Только ты не думай. что это 100% мульты, это могут быть сероайпи юзеры.
 
Tогда ответ выше - проще всего через Essentials или AuthMe. Можешь ещё сам хранить ip с UUID.
Возможно это сложно, и проще взять Essentials, но вопрос как получить всех игроков с IP, а не какой плагин дает это...
 
Можно сделать таблицу из [(`name` VARCHAR(16)) или (`uid_most` LONG, `uid_least` LONG)] PRIMARY KEY, `host` UNSIGNED INT

Запись/обновление:
INSERT INTO tbl (`name`, `host`) VALUES (?, INET_ATON(?)) ON DUPLICATE KEY UPDATE `host`=INET_ATON(?);
Чтение:
SELECT `name` FROM tbl WHERE `host`=INET_ATON(?);
Если UUID то вместо имени юзай UUID::getLeastSignificantBits UUID::getMostSignificantBits

Чтобы просмотреть таблицу полностью в хуман-реадабле (от создателей лангуаге):
SELECT `name`, INET_NTOA(`host`) AS `host` FROM tbl;

Надеюсь ты умеешь работать с базой данных)

Если прям ваще срочно и не хочешь учить работу с базой, то можно сделать по тупому. Записывай в текстовый файл
адрес | ник/uuid, потом перебирай все строки, у которых адрес = цель. Считывай желательно асинхронно. Но лучше такие костыли вообще не делать)

Если нужно, могу скинуть кусок кода для асинхронной/синхронной работы с PostgreSql, там просто название драйвера поменять.

UPD: Сори если бред написал, просто я 2 недели в отпуске был. Вот только вернулся)
 
Можно сделать таблицу из [(`name` VARCHAR(16)) или (`uid_most` LONG, `uid_least` LONG)] PRIMARY KEY, `host` UNSIGNED INT

Запись/обновление:
INSERT INTO tbl (`name`, `host`) VALUES (?, INET_ATON(?)) ON DUPLICATE KEY UPDATE `host`=INET_ATON(?);
Чтение:
SELECT `name` FROM tbl WHERE `host`=INET_ATON(?);
Если UUID то вместо имени юзай UUID::getLeastSignificantBits UUID::getMostSignificantBits

Чтобы просмотреть таблицу полностью в хуман-реадабле (от создателей лангуаге):
SELECT `name`, INET_NTOA(`host`) AS `host` FROM tbl;

Надеюсь ты умеешь работать с базой данных)

Если прям ваще срочно и не хочешь учить работу с базой, то можно сделать по тупому. Записывай в текстовый файл
адрес | ник/uuid, потом перебирай все строки, у которых адрес = цель. Считывай желательно асинхронно. Но лучше такие костыли вообще не делать)

Если нужно, могу скинуть кусок кода для асинхронной/синхронной работы с PostgreSql, там просто название драйвера поменять.

UPD: Сори если бред написал, просто я 2 недели в отпуске был. Вот только вернулся)
Я не шарю про БД пока, в процессе этого. Записывать в файл "IP | name | UUID", я немного не понял как это, но это подталкнуло меня на идею как сделать, спасибо :3
 
Я не шарю про БД пока, в процессе этого. Записывать в файл "IP | name | UUID", я немного не понял как это, но это подталкнуло меня на идею как сделать, спасибо :3
Я предупреждал. Это дикий костыль)
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх