Взаимодействие с игроком в оффлайн

Версия Minecraft
1.7.10
7,099
324
1,510
Помню ,что кто-то когда-то спрашивал ,как работать с инвентарем игрока, который не на сервере, но я не могу найти той темы.
Поэтому задам вопрос еще раз: как изменять свойства игрока, который в оффлайн? Я имею ввиду его позицию в мире, инвентарь, capabilites.
Не обязательно давать код, лучше опишите идею, какие классы стоит посмотреть...
Заранее спасибо.
 
Решение
Игрок сохраняется нужно узнавать место хранения карты, затем ищем пакет/папку "playerdata", в ней проверяем на то что в ней находиться файлы UUID.dat, где UUID это уникальный ид для игрока и извлекаем нужные данные виде NBT:
Код:
File file = new File(directory, uuid + ".dat");
if (file != null && file.exists()) {
	FileInputStream fileinputstream = new FileInputStream(file);
	NBTTagCompound nbttagcompound = CompressedStreamTools.readCompressed(fileinputstream);
}


Это моё предположение (что именно нужно писать не знаю).

Icosider

Kotliner
Администратор
3,603
99
664
Писать свой плагин/мод(что-там у тебя, я не знаю:C) который будет конвертировать имя в UUID и находить файл который с таким же номером, а дальше его открывать. У меня где-то был пример такого плагина, только там было всё совсем просто.
 

timaxa007

Модератор
5,831
409
672
Игрок сохраняется нужно узнавать место хранения карты, затем ищем пакет/папку "playerdata", в ней проверяем на то что в ней находиться файлы UUID.dat, где UUID это уникальный ид для игрока и извлекаем нужные данные виде NBT:
Код:
File file = new File(directory, uuid + ".dat");
if (file != null && file.exists()) {
	FileInputStream fileinputstream = new FileInputStream(file);
	NBTTagCompound nbttagcompound = CompressedStreamTools.readCompressed(fileinputstream);
}


Это моё предположение (что именно нужно писать не знаю).
 

Icosider

Kotliner
Администратор
3,603
99
664
timaxa007 написал(а):
Игрок сохраняется нужно узнавать место хранения карты, затем ищем пакет/папку "playerdata", в ней проверяем на то что в ней находиться файлы UUID.dat, где UUID это уникальный ид для игрока и извлекаем нужные данные виде NBT:
Код:
File file = new File(directory, uuid + ".dat");
if (file != null && file.exists()) {
 FileInputStream fileinputstream = new FileInputStream(file);
 NBTTagCompound nbttagcompound = CompressedStreamTools.readCompressed(fileinputstream);
}

uuid в оффлайне же не получить так просто(вроде)
 
7,099
324
1,510
uuid, вроде, хранится в usernamecache


Тимаха, спасибо, попробую


А что это за вьювер, где ты dat-файл открыл?
 

timaxa007

Модератор
5,831
409
672
Сверху