Помогите Уникальный ID каждому игроку

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

Qbert

Активный участник
Пользователь
Баллы
66
Хочу сделать Чтобы при заходе человека на сервер, ему давалось ID как в самп. Ему давалось самое маленькое и свободное ID, и желательно ник (player.getName() + "[" + айди + "]"). Надо через PlayerJoinEvent
 
Последнее редактирование:
Хочу сделать Чтобы при заходе человека на сервер, ему давалось ID как в самп. Ему давалось самое маленькое и свободное ID, и желательно ник (player.getName() + "[" + айди + "]"). Надо через PlayerJoinEvent
А в чём проблема то? Записывай в БД id (`id` INT NOT NULL AUTO_INCREMENT) и назначь его primary key и никнейм. при insert в таблицу не нужно будет указывать id, он сам будет увеличиваться и не будет повторяться.
 
А в чём проблема то? Записывай в БД id (`id` INT NOT NULL AUTO_INCREMENT) и назначь его primary key и никнейм. при insert в таблицу не нужно будет указывать id, он сам будет увеличиваться и не будет повторяться.
Проблема в том что я не новичок, и не понял что ты сказал.
 
Хочу сделать Чтобы при заходе человека на сервер, ему давалось ID как в самп. Ему давалось самое маленькое и свободное ID, и желательно ник (player.getName() + "[" + айди + "]"). Надо через PlayerJoinEvent
У игрока уже есть уникальный uuid. Зачем тебе велосипед?
 
У игрока уже есть уникальный uuid. Зачем тебе велосипед?
Он же написал - маленькое и свободное. Возможно так же проделывать операции как в сампе через этот "временный" id чем через ник, хотя зачем это нужно именно в майне я хз.

Хочу сделать Чтобы при заходе человека на сервер, ему давалось ID как в самп. Ему давалось самое маленькое и свободное ID, и желательно ник (player.getName() + "[" + айди + "]"). Надо через PlayerJoinEvent
Вопрос на самом деле такой, что можно и самому догадаться логически как это реализовать, если ты знаешь конечно же основы Java и коллекции хотя бы.

Я бы сделал через Map<Integer, Player>. Допустим при заходе игрока через for перебираешь все id (допустим от 1 до 300, достаточно считать до ожидаемого максимума онлайна) и чекаешь, есть ли этот id в мапе. Если нет, добавляешь, присваиваешь игроку ID. Соответственно при выходе удалять из мапы.

Код не хочу оставлять, тут слишком просто, надо учиться только и немного хотеть разобраться :)

P.S. С перебором простой пример очень, можно конечно намудрить и сделать что то вроде инкремента макс ID и залива неиспользуемых айдишек в отдельную очередь, чтоб потом реюзать без перебора, но в данном случае это не является крайней необходимостью.
 
Он же написал - маленькое и свободное. Возможно так же проделывать операции как в сампе через этот "временный" id чем через ник, хотя зачем это нужно именно в майне я хз.
Вот только нафига? uuid будет не медленней.
 
Вот только нафига? uuid будет не медленней.
Ну я так понял что ему нужно что то вроде альтернативы, когда вписываешь ник игрока в чате. В сампе я знаю там онлайн игрокам присваивается id при заходе и все команды требуют не ник а именно id (там таб комплита то нет). В этом идея.

KOko6ez.png
 
Ну я так понял что ему нужно что то вроде альтернативы, когда вписываешь ник игрока в чате. В сампе я знаю там онлайн игрокам присваивается id при заходе и все команды требуют не ник а именно id (там таб комплита то нет). В этом идея.

KOko6ez.png
Дибилизм какой то.
 
Ну я так понял что ему нужно что то вроде альтернативы, когда вписываешь ник игрока в чате. В сампе я знаю там онлайн игрокам присваивается id при заходе и все команды требуют не ник а именно id (там таб комплита то нет). В этом идея.

KOko6ez.png
+
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх