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

Помогите Сохранение инвентаря

BeYkeR

Старожил
Девелопер
Пользователь
Баллы
173
На bukkit я нашел код для сохранения инвентаря когда пишешь команду, так вот: У меня вещи не возвращаются когда пишешь нужную команду. Что я делаю не так ?
Код:
Код:
//Где-то там:
    public Map<String, Inventory> inventories = new HashMap<String, Inventory>();
 
//Заход
if (args[0].equalsIgnoreCase("join")) {
 
//Типо код           
Location loc = player.getLocation();
loc.setX(this.getConfig().getDouble("Game.Team1.Lobby.X"));
loc.setY(this.getConfig().getDouble("Game.Team1.Lobby.Y"));
loc.setZ(this.getConfig().getDouble("Game.Team1.Lobby.Z"));
inventories.put(name, player.getInventory());
player.teleport(loc);
//Типо код
}
 
//Выход
if (args[0].equalsIgnoreCase("leave")) {
//Типо тоже барахло
player.getInventory().setContents(inventories.get(name).getContents());
//Тут тоже
}
 
На bukkit я нашел код для сохранения инвентаря когда пишешь команду, так вот: У меня вещи не возвращаются когда пишешь нужную команду. Что я делаю не так ?
Код:
Код:
//Где-то там:
    public Map<String, Inventory> inventories = new HashMap<String, Inventory>();
 
//Заход
if (args[0].equalsIgnoreCase("join")) {
 
//Типо код         
Location loc = player.getLocation();
loc.setX(this.getConfig().getDouble("Game.Team1.Lobby.X"));
loc.setY(this.getConfig().getDouble("Game.Team1.Lobby.Y"));
loc.setZ(this.getConfig().getDouble("Game.Team1.Lobby.Z"));
inventories.put(name, player.getInventory());
player.teleport(loc);
//Типо код
}
 
//Выход
if (args[0].equalsIgnoreCase("leave")) {
//Типо тоже барахло
player.getInventory().setContents(inventories.get(name).getContents());
//Тут тоже
}
Сохраняй предметы, а не инвентарь. На сколько я помню, player.getInventory() и inventories.get(name) являются одним и тем же объектом.
 
На bukkit я нашел код для сохранения инвентаря когда пишешь команду, так вот: У меня вещи не возвращаются когда пишешь нужную команду. Что я делаю не так ?
Код:
Код:
//Где-то там:
    public Map<String, Inventory> inventories = new HashMap<String, Inventory>();
 
//Заход
if (args[0].equalsIgnoreCase("join")) {
 
//Типо код         
Location loc = player.getLocation();
loc.setX(this.getConfig().getDouble("Game.Team1.Lobby.X"));
loc.setY(this.getConfig().getDouble("Game.Team1.Lobby.Y"));
loc.setZ(this.getConfig().getDouble("Game.Team1.Lobby.Z"));
inventories.put(name, player.getInventory());
player.teleport(loc);
//Типо код
}
 
//Выход
if (args[0].equalsIgnoreCase("leave")) {
//Типо тоже барахло
player.getInventory().setContents(inventories.get(name).getContents());
//Тут тоже
}

позаимствуй исходники скавенжера. Он сохраняет инвентарь в файл, что способствует восстановлению даже после краша сервере. Переписать под восстановление по требованию не составит труда.
 
позаимствуй исходники скавенжера. Он сохраняет инвентарь в файл, что способствует восстановлению даже после краша сервере. Переписать под восстановление по требованию не составит труда.
Спасибо за подсказку :D
 

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

Назад
Верх