- Баллы
- 88
- Имя в Minecraft
- MOR_IV
Доброго времени суток.
Мне нужен простенький плагин, который выполнял бы 4 вещи.
1 - при выходе игрока с сервера: Записывал в конфиг: Ник:мир:координаты(x,y,z,)
2 - при входе игрока на сервер: загружал из конфига: Ник:мир:координаты(x,y,z,) и делал по этим кордам ТП
3 - каждые 30 секунд записывал всех пользователей в конфиг: Ник:мир:координаты(x,y,z,)
4 - при выключении сервера повторял пункт 3
Наработки:
У меня получилось сохраняет так:
CraftPlayer{name=Admin}world: world
CraftPlayer{name=Admin}x: 262.9074449360731
CraftPlayer{name=Admin}y: 96.63702518367731
CraftPlayer{name=Admin}z: 295.9765944369526
и не грузит
Мне нужен простенький плагин, который выполнял бы 4 вещи.
1 - при выходе игрока с сервера: Записывал в конфиг: Ник:мир:координаты(x,y,z,)
2 - при входе игрока на сервер: загружал из конфига: Ник:мир:координаты(x,y,z,) и делал по этим кордам ТП
3 - каждые 30 секунд записывал всех пользователей в конфиг: Ник:мир:координаты(x,y,z,)
4 - при выключении сервера повторял пункт 3
Наработки:
Код:
package savep;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
public class savePlayer extends JavaPlugin implements Listener {
protected FileConfiguration config;
protected Player pl;
@Override
public void onEnable() {
config = getConfig();
Bukkit.getPluginManager().registerEvents(this, this);
config.options().copyDefaults(true);
saveConfig();
BukkitRunnable runnable = new BukkitRunnable(){
@Override
public void run (){
Bukkit.broadcastMessage("Автоматическое сохранение локации");
// тут бы код, чтоб вызвать список игроков и каждого сохранить.
}
};
runnable.runTaskTimer(this, 1L, 600L);
}
@EventHandler
public void onJoin(PlayerJoinEvent event){
Player p = event.getPlayer();
configToLoc(p);
}
@EventHandler
public void onQuit(PlayerQuitEvent event){
Player p = event.getPlayer();
locToConfig(p);
}
public void locToConfig(Player p){
config.set(p + "world", p.getLocation().getWorld().getName());
config.set(p + "x", p.getLocation().getX());
config.set(p + "y", p.getLocation().getY());
config.set(p + "z", p.getLocation().getZ());
saveConfig();
}
public void configToLoc(Player p){
if(getConfig().getConfigurationSection("hd") == null) {
p.sendMessage(ChatColor.RED + "Вы впервые зашли на сервер");
World w = Bukkit.getServer().getWorld(getConfig().getString(p + "world"));
double x = getConfig().getDouble(p + "x");
double y = getConfig().getDouble(p + "y");
double z = getConfig().getDouble(p + "z");
p.teleport(new Location(w, x, y, z));
}
}
}
У меня получилось сохраняет так:
CraftPlayer{name=Admin}world: world
CraftPlayer{name=Admin}x: 262.9074449360731
CraftPlayer{name=Admin}y: 96.63702518367731
CraftPlayer{name=Admin}z: 295.9765944369526
и не грузит