using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Lib_K_Relay;
using Lib_K_Relay.Utilities;
using Lib_K_Relay.Interface;
using Lib_K_Relay.Networking;
using Lib_K_Relay.Networking.Packets;
using Lib_K_Relay.Networking.Packets.Client;
using Lib_K_Relay.Networking.Packets.Server;
using Lib_K_Relay.Networking.Packets.DataObjects;
using K_RelayMove;
namespace followme
{
public class followme : IPlugin
{
public string GetAuthor()
{ return "CLW/102387"; }
public static List<Client> clientlist = new List<Client>();
public static bool Enabled = false;
public static Client WhoFollowme;
public string GetName()
{return "followme";}
public string GetDescription()
{ return "pro multiboxing k-relay"; }
public string[] GetCommands()
{ return new string[] { "/followme" }; }
public void Initialize(Proxy proxy)
{
proxy.HookCommand("followme", new Proxy.CommandHandler(this.OnCommand));
proxy.HookPacket(PacketType.NEWTICK, new Proxy.PacketHandler(this.NT));
proxy.ClientConnected += new Proxy.ConnectionHandler(this.proxy_ClientConnected );
proxy.ClientDisconnected += new Proxy.ConnectionHandler(this.proxy_ClientDisconnec ted);
}
private void NT(Client client, Packet packet)
{
foreach (Client client2 in clientlist)
{
if (client != WhoFollowme)
{
if (Math.Abs((float)(WhoFollowme.PlayerData.Pos.X - client2.PlayerData.Pos.X)) > KRelayMove.clientlist[KRelayMove.IndexOfClient(client)].Step)
{
if (client2.PlayerData.Pos.X > WhoFollowme.PlayerData.Pos.X)
{
KRelayMove.MoveClient(client2, KRelayMove.Direction.left, 1, 8.332474E+09f);
}
else
{
KRelayMove.MoveClient(client2, KRelayMove.Direction.right, 1, 8.332474E+09f);
}
}
if (Math.Abs((float)(WhoFollowme.PlayerData.Pos.X - client2.PlayerData.Pos.Y)) > KRelayMove.clientlist[KRelayMove.IndexOfClient(client)].Step)
{
if (client2.PlayerData.Pos.Y > WhoFollowme.PlayerData.Pos.Y)
{
KRelayMove.MoveClient(client2, KRelayMove.Direction.down, 1, 8.332474E+09f);
}
else
{
KRelayMove.MoveClient(client2, KRelayMove.Direction.up, 1, 8.332474E+09f);
}
}
}
}
foreach (Client client3 in clientlist)
{
if (client != WhoFollowme)
{
if (Math.Abs((float)(WhoFollowme.PlayerData.Pos.X - client3.PlayerData.Pos.X)) > KRelayMove.clientlist[KRelayMove.IndexOfClient(client)].Step)
{
if (client3.PlayerData.Pos.X > WhoFollowme.PlayerData.Pos.X)
{
KRelayMove.MoveClient(client3, KRelayMove.Direction.left, 1, 8.332474E+09f);
}
else
{
KRelayMove.MoveClient(client3, KRelayMove.Direction.right, 1, 8.332474E+09f);
}
}
if (Math.Abs((float)(WhoFollowme.PlayerData.Pos.X - client3.PlayerData.Pos.Y)) > KRelayMove.clientlist[KRelayMove.IndexOfClient(client)].Step)
{
if (client3.PlayerData.Pos.Y > WhoFollowme.PlayerData.Pos.Y)
{
KRelayMove.MoveClient(client3, KRelayMove.Direction.down, 1, 8.332474E+09f);
}
else
{
KRelayMove.MoveClient(client3, KRelayMove.Direction.up, 1, 8.332474E+09f);
}
}
}
}
foreach (Client client4 in clientlist)
{
if (client != WhoFollowme)
{
if (Math.Abs((float)(WhoFollowme.PlayerData.Pos.X - client4.PlayerData.Pos.X)) > KRelayMove.clientlist[KRelayMove.IndexOfClient(client)].Step)
{
if (client4.PlayerData.Pos.X > WhoFollowme.PlayerData.Pos.X)
{
KRelayMove.MoveClient(client4, KRelayMove.Direction.left, 1, 8.332474E+09f);
}
else
{
KRelayMove.MoveClient(client4, KRelayMove.Direction.right, 1, 8.332474E+09f);
}
}
if (Math.Abs((float)(WhoFollowme.PlayerData.Pos.X - client4.PlayerData.Pos.Y)) > KRelayMove.clientlist[KRelayMove.IndexOfClient(client)].Step)
{
if (client4.PlayerData.Pos.Y > WhoFollowme.PlayerData.Pos.Y)
{
KRelayMove.MoveClient(client4, KRelayMove.Direction.down, 1, 8.332474E+09f);
}
else
{
KRelayMove.MoveClient(client4, KRelayMove.Direction.up, 1, 8.332474E+09f);
}
}
}
}
}
private void OnCommand(Client client, string command, string[] args)
{
Enabled = !Enabled;
if (Enabled)
{
WhoFollowme = client;
PluginUtils.CreateNotification(client.ObjectId, "Now Leader " + client.PlayerData.Name);
}
else
{
PluginUtils.CreateNotification(client.ObjectId, "Followme Plugin Disabled");
}
}
private void proxy_ClientConnected(Client client)
{
clientlist.Add(client);
}
private void proxy_ClientDisconnected(Client client)
{
clientlist.Remove(client);
KRelayMove.MoveClient(client, KRelayMove.Direction.up, 5);
}
}
}