Рекомендовал бы простой стиль словаря значения ключа в текущем экземпляре.
(Хотя вы можете сохранить его в текстовом файле или базе данных позже, если вы предпочитаете, чтобы данные были постоянными в разных сеансах.)
На основе экземпляра:
Основано на этом посте на stackoverflow ...
Вы можете создать глобальный словарь вверху
var usernameChangeDict = {};
Всякий раз, когда пользователь вызывает !setname
, просто сделайте:
usernameChangeDict[user.id] = Their_new_name_here
Получить его обратно, используя usernameChangeDict[user.id]
, должно вернуть null
или пусто, если они не установили свое имя ранее.
Постоянные данные:
Можно сохранить их в текстовом файле на локальном компьютере или создать базу данных, как упоминал Зооли.
(Хотя лично база данных будет излишней.если ваш бот не будет использоваться широким кругом людей.)
Текстовый файл
Чтение из этого поста , он содержитподробности о том, как писать в текстовый файл.
Этот пост говорит о чтении изma text file.
Я бы порекомендовал хранить его в формате JSON, чтобы упростить вам жизнь, поскольку существует JSON.parse
.
Скорее всего, вы в конечном итоге сохранитев таком формате:
{ "23125167744": "someone", "USER_ID": "username" }
Доступ к нему по parsedJson["USER_ID"]
.
SQLite
This учебник, вероятно, объяснит, как настроить ваш SQLite для javascript лучше, чем я.
После того, как все настройки выполнены, просто сохраните ID пользователя и имя пользователя, вы можете просто сделать:
SELECT username FROM yourTable WHERE userID = ?;
и
INSERT INTO yourTable (username, userID) VALUES (?, ?);
Для вставки и выбора в базе данных соответственно.