оффлайн EntityPlayer

Версия Minecraft
1.12.2

timaxa007

Модератор
5,831
409
672
Насколько я знаю, нормально не как.
Либо сделать фейкового игрока на основе EntityPlayerMP.
Если как-то типа воздействовать, то изменять сохранённые NBT теги игрока.
 

timaxa007

Модератор
5,831
409
672
а вот это интересней того костыля с NBT.
Не думаю, лучше всё таки редактировать NBT. Фейковым игроком нужно правильно пользоваться, что не так (типа отправить пакет клиентскому игроку, которого нет пошлёться не тому не правильная инфа и т.п.) сервер может крашнуться.
Вот только как? =\
Нужно знать как он написан и делать, а так-же тестировать.
 

timaxa007

Модератор
5,831
409
672
На сервере "\world\playerdata\" и ищешь файл игрока, название файла это его UUID формат файл "dat". Не знаешь UUID, но знаешь ник, то UUID с его ником храниться в корневой папки сервера под "usernamecache.json".
В одиночной игре, игрок (не игроки) храниться в мире.
 

will0376

Токсичная личность
2,075
55
584
7,099
324
1,510
Записывать смтоит только при сохранении мира и перед тем, как реальный игрок зайдет на сервер, все время между можно просто хранить своего OfflinePlayer в мапе. Типо, меньше обращений к диску - быстрее работает
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Да ну, баги могут быть. Там всего-то файлик в один килобайт, запишется моментально.
Естественно это нельзя делать каждый тик, а если там например при выполнении команды в чате - норм все.
 
7,099
324
1,510
А ведь игрок может носить с собой всякие сумочки, набитые шмотом, а инвентарь в том же файле хранится.
Выходит, имеет смысл буферезировать в оперативке
 
7,099
324
1,510
Ну ячейки те же сумки. Там же есть портативный просмотрщик ячеек.
~~~
К тоже можно запихнуть можно сумку одного вида в сумку другого, а ее в первого и так неограниченно наращивать кол-во нбт-данных
 
Сверху