import java.io.File;
import java.io.IOException;
import net.minecraft.server.v1_7_R1.EntityPlayer;
import net.minecraft.server.v1_7_R1.EnumClientCommand;
import net.minecraft.server.v1_7_R1.PacketPlayInClientCommand;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener{
File con;
double i;
Location loc3;
public void onEnable(){
con = new File(this.getDataFolder(), "config.yml");
if(!con.exists()){
FileConfiguration conc = YamlConfiguration.loadConfiguration(con);
conc.addDefault("spawn_sayısı", 0);
conc.options().copyDefaults(true);
try {
conc.save(con);
con.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
Bukkit.getServer().getPluginManager().registerEvents(this, this);
Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Plugin is enabled");
}
public void onDisable(){
Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Plugin is disabled");
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
if(cmd.getName().equalsIgnoreCase("belirle")){
if(sender instanceof Player){
con = new File(this.getDataFolder(), "config.yml");
FileConfiguration conc = YamlConfiguration.loadConfiguration(con);
Player player = Bukkit.getServer().getPlayer(sender.getName());
if(player.isOp()){
conc.set("spawn_sayısı", conc.getInt("spawn_sayısı") + 1);
conc.set("spawns.spawn_" + conc.getInt("spawn_sayısı") + ".X", player.getLocation().getX());
conc.set("spawns.spawn_" + conc.getInt("spawn_sayısı") + ".Y", player.getLocation().getY());
conc.set("spawns.spawn_" + conc.getInt("spawn_sayısı") + ".Z", player.getLocation().getZ());
conc.set("spawns.spawn_" + conc.getInt("spawn_sayısı") + ".World", player.getLocation().getWorld().getName());
try {
conc.save(con);
} catch (IOException e) {
e.printStackTrace();
}
player.sendMessage(ChatColor.AQUA + "Spawn "+ conc.getInt("spawn_sayısı") + " ayarlandı !");
}
}
}
return false;
}
@EventHandler
public void onDeath(PlayerDeathEvent event ){
con = new File(this.getDataFolder(), "config.yml");
FileConfiguration conc = YamlConfiguration.loadConfiguration(con);
Bukkit.getServer().broadcastMessage("a");
if(event.getEntity() instanceof Player){
final Player p = event.getEntity();
Bukkit.getServer().broadcastMessage("a");
p.sendMessage("a");
Location loc = p.getLocation();
Location loc2 = null;
loc3 = null;
this.i = 999999999;
for(String str : conc.getConfigurationSection("spawns").getKeys(false)){
loc2 = new Location(Bukkit.getServer().getWorld(conc.getString("spawns." + str + ".World")) , conc.getDouble("spawns." + str + ".X"), conc.getDouble("spawns." + str + ".Y"), conc.getDouble("spawns." + str + ".Z"));
if(i > loc.distance(loc2)){
i = loc.distance(loc2);
loc3 = loc2;
}
}
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
@Override
public void run() {
PacketPlayInClientCommand in = new PacketPlayInClientCommand(EnumClientCommand.PERFORM_RESPAWN);
EntityPlayer cPlayer = ((CraftPlayer)p).getHandle();
cPlayer.playerConnection.a(in);
p.teleport(loc3);
}
}, 1L);
}
}
}