Skip to content

Instantly share code, notes, and snippets.

@Garris0n-
Created February 20, 2014 15:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Garris0n-/9116504 to your computer and use it in GitHub Desktop.
Save Garris0n-/9116504 to your computer and use it in GitHub Desktop.
package de.bananaco.change;
import net.minecraft.server.v1_7_R1.*;
import org.bukkit.*;
import org.bukkit.command.*;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.*;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class WorldChanger extends JavaPlugin implements Listener {
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
if(getConfig().get(player.getWorld().getName()) != null) {
setDimension(player, getConfig().getInt(player.getWorld().getName(), 0));
}
}
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
public boolean onCommand(CommandSender sender, Command command,
String label, String[] args) {
if(args.length == 2) {
if(Bukkit.getWorld(args[0]) == null) return false;
org.bukkit.World w = Bukkit.getWorld(args[0]);
for(Player p : w.getPlayers()) setDimension(p, getDimension(args[1]));
getConfig().set(w.getName(), getDimension(args[1]));
saveConfig();
sender.sendMessage("Set world: "+w.getName()+" to dimension "+getDimension(args[1]));
return true;
}
return false;
}
public int getDimension(String input) {
try {
int i = Integer.parseInt(input);
if(i == 0 || i == -1 || i == 1) return i;
} catch (Exception e) {}
return 0;
}
public void setDimension(Player player, int dimension) {
CraftPlayer cp = (CraftPlayer) player;
PacketPlayOutRespawn packet = new PacketPlayOutRespawn(dimension, (byte) 1, net.minecraft.server.WorldType.NORMAL, player.getWorld().getMaxHeight(), EnumGamemode.a(player.getGameMode().getValue()));
cp.getHandle().playerConnection.sendPacket(packet);
org.bukkit.Chunk chunk = player.getWorld().getChunkAt(player.getLocation());
for(int x=-10; x<10; x++)
for(int z=-10; z<10; z++)
player.getWorld().refreshChunk(chunk.getX()+x, chunk.getZ()+z);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment