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

[Решено] Много переменных с данными

Статус
Закрыто для дальнейших ответов.

baksovic111

Активный участник
Пользователь
Баллы
88
Имя в Minecraft
Baksovic
Привет всем)
Я очень ценю производительность сервера и по этому у меня возник следующий вопрос.
Собственно работаю над одним плагином в котором мне нужно будет при каждом ударе игрока получать переменные.
Собственно проблема в том что я не могу решить откуда их брать.
Как я знаю есть 3 варианта.
Config - который загружается в память при включении сервера
Yml File - к которому сервер обращается каждый раз
Mysql - с ним к сожалению работать не умею.

Так вот.
Каждый раз в эвенте DamageByEntityDamage мне нужно будет получать ключ со значением int.
И обрабатывать его.
Рассчитываю я на очень частое получение этих данных.
Подскажите пожалуйста..Что же мне использовать с чем работать и почему..
 
Если я правильно понимаю, то вам нужно смотреть в сторону конфиг файла обычного. Config и Yml file это одно и тоже. При загрузке плагина вы загружаете файл который хранит значение указанное. Потом в нужном месте его берете. MySQL совершенно для этого не подходит.
 
Если я правильно понимаю, то вам нужно смотреть в сторону конфиг файла обычного. Config и Yml file это одно и тоже. При загрузке плагина вы загружаете файл который хранит значение указанное. Потом в нужном месте его берете. MySQL совершенно для этого не подходит.
Config и Yml File не много разные вещи.
Конфиг при первой загрузке сервера загружает все свои значения в память сервера.
А к File сервер обращается каждый раз когда ему нужно получить значение.
Проверял я это таким образом.
Создавай File и создал там переменную String.
И вызывал ее плагином. Я мог легко изменить значение в файле и не требовалось не какой перезагрузки сервера или плагина чтобы получить новое значение. Это доказывает то что сервер каждый раз обращается за значением к Файлу.
 
Config и Yml File не много разные вещи.
Конфиг при первой загрузке сервера загружает все свои значения в память сервера.
А к File сервер обращается каждый раз когда ему нужно получить значение.
Проверял я это таким образом.
Создавай File и создал там переменную String.
И вызывал ее плагином. Я мог легко изменить значение в файле и не требовалось не какой перезагрузки сервера или плагина чтобы получить новое значение. Это доказывает то что сервер каждый раз обращается за значением к Файлу.
Чтение из файла затратная операция
 
Чтение из файла затратная операция
Да поэтому я и решил создать пост чтобы решить где лучше хранить такие данные.
Config не очень подходит для этих действий
Так как 1 игрок будет иметь примерно 10 переменных и при 1-3 тысячах игроков будет очень большое количество строк в конфиге..
 
Вы все же путаете что для чего нужно. Исходя из того что вы написали сейчас, нужна база данных. Только учтите, обращаться к базе данных каждый раз, тоже затратная операция. Время отклика на ваш запрос достигает приличных значений, что приведет к зависанию сервера на это время. Для этого нужно научиться кешировать данные.
 
Вы все же путаете что для чего нужно. Исходя из того что вы написали сейчас, нужна база данных. Только учтите, обращаться к базе данных каждый раз, тоже затратная операция. Время отклика на ваш запрос достигает приличных значений, что приведет к зависанию сервера на это время.
Я так понимаю вы не плохо разбираетесь.
Опыта у меня еще не так много но я тут подумал.
Может есть вариант как то загружать все существующие файлы с диска в память сервера?
То есть переменные в память. И дальше уже работать с ними и в нужное время выгружать переменные из памяти в файл. Что то вроде сохранения.
 
Можно сделать так: в плагине объявить хэшмап (как я понял будет string -> int) и просто в этот хэшмап подгружать все ключи и все значения из конфига при загрузке плагина.
 
Можно сделать так: в плагине объявить хэшмап (как я понял будет string -> int) и просто в этот хэшмап подгружать все ключи и все значения из конфига при загрузке плагина.
Только зачем? Yml делает это за вас
 
Можно сделать так: в плагине объявить хэшмап (как я понял будет string -> int) и просто в этот хэшмап подгружать все ключи и все значения из конфига при загрузке плагина.
Не много по другому.
String, string , int
Товарищи как я понял лучший вариант загружать переменные из Файла в память.
Я с этим не работал и не знаю как это сделать(
Может есть у кого скайп?
Кто бы уделил минут 15?
Даже друг не хочет помогать(
Все против меня..
 
Не много по другому.
String, string , int
Товарищи как я понял лучший вариант загружать переменные из Файла в память.
Я с этим не работал и не знаю как это сделать(
Может есть у кого скайп?
Кто бы уделил минут 15?
Даже друг не хочет помогать(
Все против меня..
Тебе нужно по двум строкам получить число? Почему бы не сложить эти две строки и сделать как я сказал?
 
Тема закрыта)
Мне наконец все же помог мой друг.
Вообщем тут HashMap или другая хрень не пойдет. Тут нужно создавать новые классы где будут хранится переменные и все ост что нужно)
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх