SHOW:
|
|
- or go back to the newest paste.
| 1 | import com.mojang.authlib.GameProfile; | |
| 2 | - | import org.bukkit.event.EventHandler; |
| 2 | + | import net.minecraft.server.v1_8_R3.*; |
| 3 | - | import org.bukkit.event.Listener; |
| 3 | + | import org.bukkit.Bukkit; |
| 4 | - | import org.bukkit.event.player.PlayerJoinEvent; |
| 4 | + | import org.bukkit.Location; |
| 5 | - | import org.bukkit.plugin.java.JavaPlugin; |
| 5 | + | import org.bukkit.craftbukkit.v1_8_R3.CraftServer; |
| 6 | import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; | |
| 7 | - | import java.util.ArrayList; |
| 7 | + | import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; |
| 8 | import org.bukkit.entity.Player; | |
| 9 | ||
| 10 | /** | |
| 11 | * @author VINETOS on 26/10/2015. | |
| 12 | - | public class Main extends JavaPlugin implements Listener{
|
| 12 | + | |
| 13 | public class FakePlayer {
| |
| 14 | - | private ArrayList<FakePlayer> players = new ArrayList<FakePlayer>(); |
| 14 | + | |
| 15 | private String name; | |
| 16 | - | @Override |
| 16 | + | private EntityPlayer ep; |
| 17 | - | public void onEnable() {
|
| 17 | + | |
| 18 | - | getServer().getPluginManager().registerEvents(this, this); |
| 18 | + | public FakePlayer(String name){
|
| 19 | this.name = name; | |
| 20 | } | |
| 21 | - | @Override |
| 21 | + | |
| 22 | - | public void onDisable() {
|
| 22 | + | public void spawn(Player p){
|
| 23 | - | for(FakePlayer player : players){//On récupère tous les FakePlayers qu'on a stocké pour les faires dispawn.
|
| 23 | + | MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); |
| 24 | - | player.dispawn(); |
| 24 | + | WorldServer world = ((CraftWorld) Bukkit.getWorlds().get(0)).getHandle(); |
| 25 | EntityPlayer npc = new EntityPlayer(server, world, new GameProfile(p.getUniqueId(), name), new PlayerInteractManager(world)); | |
| 26 | Location loc = p.getLocation(); | |
| 27 | npc.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch()); | |
| 28 | - | @EventHandler |
| 28 | + | |
| 29 | - | public void onJoin(PlayerJoinEvent e){
|
| 29 | + | for(Player pls : Bukkit.getOnlinePlayers()){
|
| 30 | - | Player p = e.getPlayer(); |
| 30 | + | PlayerConnection connection = ((CraftPlayer)pls).getHandle().playerConnection; |
| 31 | - | FakePlayer fp = new FakePlayer("Vinetos2");//On créer un FakePlayer nommé Vinetos2
|
| 31 | + | connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, npc)); |
| 32 | - | fp.spawn(p);//On appelle sa fonction pour spawn |
| 32 | + | connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc)); |
| 33 | - | players.add(fp);//On l'ajoute dans notre ArrayList pour pouvoir le supprimé |
| 33 | + | |
| 34 | ep = npc; | |
| 35 | } | |
| 36 | ||
| 37 | public void dispawn(){
| |
| 38 | for(Player pls : Bukkit.getOnlinePlayers()){
| |
| 39 | PlayerConnection connection = ((CraftPlayer)pls).getHandle().playerConnection; | |
| 40 | connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, ep)); | |
| 41 | connection.sendPacket(new PacketPlayOutEntityDestroy(new int[]{ep.getId()}));
| |
| 42 | } | |
| 43 | } | |
| 44 | ||
| 45 | } |