//Где-то в классе//
String PackageName = "net.minecraft.server.1_6_R4";
Class Packet202Abilities = Class.forName(PackageName.concat(".Packet202Abilities"));
Class PlayerAbilities = Class.forName(PackageName.concat(".PlayerAbilities"));
Method player_minecraft = Class.forName("org.bukkit.craftbukkit.1_6_R4.entity.CraftPlayer")).getMethod("getHandle", new Class[]{});
//Где-то в классе//
Object constructPacket202(Player p, float walk, float fly)
{
Object packet = Packet202Abilities.getConstructor(new Class[]{PlayerAbilities}).newInstance(playerAbilities(p));
fieldSet(packet, "e", (float) fly);//def 0.5
fieldSet(packet, "f", (float) walk);//def 0.1
return packet;
}
void fieldSet(Object o, String name, Object value)
{
Field field = o.getClass().getDeclaredField(name);
field.setAccessible(true);
field.set(o, value);
}
void sendPacket(Player p, Object packet)
{
Object playerConnection = player_minecraft.getReturnType().getField("playerConnection").get(player_minecraft.invoke(p));
Method sendPacket = playerConnection.getClass().getDeclaredMethod("sendPacket", new Class[]{Packet});
sendPacket.setAccessible(true);
sendPacket.invoke(playerConnection, packet);
}
//Где-то в классе//
@EventHandler
void onPlayerJoin(PlayerJoinEvent e)
{
sendPacket(e.getPlayer(), constructPacket202(e.getPlayer(), 0.01F, 0.05F));
}