本文整理汇总了C#中HookArgs类的典型用法代码示例。如果您正苦于以下问题:C# HookArgs类的具体用法?C# HookArgs怎么用?C# HookArgs使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HookArgs类属于命名空间,在下文中一共展示了HookArgs类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnUnkownPacketSend
public static void OnUnkownPacketSend(ref HookContext ctx, ref HookArgs.UnkownSendPacket args)
{
switch (args.PacketId)
{
case (int)Packets.CLIENT_MOD_GOD:
{
NetMessageExtension msg = new NetMessageExtension();
if (args.RemoteClient != -1)
{
var player = Main.players[args.RemoteClient];
if (player.HasClientMod)
{
if (Server.AllowTDCMRPG)
{
Server.notifyOps(
String.Format("Failed attempt to {0} God Mode on an RPG Server.", true, (args.Number == 1) ? "give" : "remove"));
return;
}
Server.notifyOps(
String.Format("{0} {1} God Mode.", true, player.Name, (args.Number == 1) ? "has" : "doesn't have"));
msg.GodTDCMClient(args.Number == 1);
args.Message = msg;
ctx.SetResult(HookResult.IGNORE); //Let TDSM know it's to ignore returning.
}
}
break;
}
}
}
示例2: OnReadConfig
void OnReadConfig(ref HookContext ctx, ref HookArgs.ConfigurationLine args)
{
switch (args.Key)
{
case "mysql":
if (!Storage.IsAvailable)
{
MySQLConnector cn = null;
try
{
cn = new MySQLConnector(args.Value);
cn.Open();
}
catch (Exception e)
{
ProgramLog.Error.Log("Exception connecting to MySQL database: {0}", e);
return;
}
Storage.SetConnector(cn);
_connector = cn;
}
break;
}
}
示例3: LeftHook
void LeftHook(ref HookContext ctx, ref HookArgs.PlayerLeftGame args)
{
// If player has a last command stored, remove it now.
if ( history.ContainsKey(ctx.Sender.SenderName) ) {
history.Remove(ctx.Sender.SenderName);
}
}
示例4: OnStateChange
void OnStateChange(ref HookContext ctx, ref HookArgs.ServerStateChange args)
{
if (args.ServerChangeState == TDSM.API.ServerState.Initialising)
{
ProgramLog.Plugin.Log("SQLite connector is: " + (_connector == null ? "disabled" : "enabled"));
}
}
示例5: CheckState
/// <summary>
/// Handles the connection state when receiving a packet
/// </summary>
public static void CheckState(ref HookContext ctx, ref HookArgs.CheckBufferState args)
{
if (Terraria.Netplay.Clients[args.BufferId].State == (int)ConnectionState.AwaitingUserPassword)
{
//Since this is a custom state, we accept it [true to kick the connection, false to accept]
ctx.SetResult(HookResult.RECTIFY, true, false /* TODO validate packets */);
}
}
示例6: OnStateChange
void OnStateChange(ref HookContext ctx, ref HookArgs.ServerStateChange args)
{
if (args.ServerChangeState == TDSM.API.ServerState.Initialising)
{
//Data connectors must have loaded by now
//Get TDSM to swap the current permission handler to our own
TDSM.API.Permissions.PermissionsManager.SetHandler(_instance);
}
}
示例7: CommmandHook
void CommmandHook(ref HookContext ctx, ref HookArgs.Command args)
{
// If the command issued is not !...
if ( args.Prefix != "!" ) {
string WhoCalled = ctx.Sender.SenderName; // get the name of the sender
// If there is a command saved for the sender already...
if ( history.ContainsKey( WhoCalled ) ) {
history[WhoCalled] = args.Prefix + " " + args.ArgumentString; // Replace the sender's last command.
} else {
history.Add( WhoCalled, args.Prefix + " " + args.ArgumentString ); // Record the sender's command for the first time.
}
}
}
示例8: HandlePacket
/// <summary>
/// Handles packets received from OTA
/// </summary>
public static void HandlePacket(ref HookContext ctx, ref HookArgs.ReceiveNetMessage args)
{
if (_packetHandlers != null)
{
if (_packetHandlers[args.PacketId] != null)
{
if (_packetHandlers[args.PacketId].Read(args.BufferId, args.Start, args.Length))
{
//Packet informed us that it was read, let OTA know we consumed the packet
ctx.SetResult(HookResult.IGNORE, true);
}
}
}
}
示例9: OnServerStateChange
void OnServerStateChange(ref HookContext ctx, ref HookArgs.ServerStateChange args)
{
if (args.ServerChangeState == ServerState.LOADED)
{
ProgramLog.Plugin.Log("Starting fishy mod...");
fishy = new Fishy();
ProgramLog.Plugin.Log("Fishy mod Started.");
}
else if (args.ServerChangeState == ServerState.STOPPING || args.ServerChangeState == ServerState.RESTARTING)
{
ProgramLog.Plugin.Log("Stopping fishy mod...");
fishy.Stop();
ProgramLog.Plugin.Log("Fishy mod Stopped.");
}
}
示例10: OnReadConfig
void OnReadConfig(ref HookContext ctx, ref HookArgs.ConfigurationLine args)
{
switch (args.Key)
{
case "sqlite":
if (_connector == null)
{
var cn = new SQLiteConnector(args.Value);
cn.Open();
Storage.SetConnector(cn);
_connector = cn;
}
break;
}
}
示例11: OnGreetPlayer
void OnGreetPlayer(ref HookContext ctx, ref HookArgs.PlayerPreGreeting args)
{
ctx.SetResult(HookResult.IGNORE);
var lines = args.Motd.Split(new string[] { "\\0" }, StringSplitOptions.None);
foreach (var line in lines)
ctx.Player.SendMessage(line, 255, 0, 0, 255);
string list = "";
for (int i = 0; i < 255; i++)
{
if (Main.player[i].active)
{
if (list == "")
list += Main.player[i].name;
else
list = list + ", " + Main.player[i].name;
}
}
ctx.Player.SendMessage("Current players: " + list + ".", 255, 255, 240, 20);
}
示例12: onPlayerJoin
void onPlayerJoin(ref HookContext ctx, ref HookArgs.PlayerEnteringGame args)
{
//ctx.Player.A = AccessLevel.OP;
}
示例13: OnSignEdit
void OnSignEdit(ref HookContext ctx, ref HookArgs.SignTextSet args)
{
foreach (Region rgn in regionManager.Regions)
{
if (rgn.HasPoint(new Vector2(args.X, args.Y)))
{
if (ctx.Sender is Player)
{
if (IsRestrictedForUser(ctx.Player, rgn, DoorChange))
{
ctx.SetResult(HookResult.IGNORE);
ctx.Player.sendMessage("You cannot edit this area!", ChatColor.Red);
return;
}
}
}
}
}
示例14: OnServerStateChange
void OnServerStateChange(ref HookContext ctx, ref HookArgs.ServerStateChange args)
{
if (args.ServerChangeState == ServerState.LOADED)
regionManager.LoadRegions();
}
示例15: OnProjectileReceived
void OnProjectileReceived(ref HookContext ctx, ref HookArgs.ProjectileReceived args)
{
Vector2 Position = new Vector2(args.X, args.Y);
foreach (Region rgn in regionManager.Regions)
{
if (rgn.HasPoint(Position / 16))
{
if (rgn.ProjectileList.Contains("*") ||
rgn.ProjectileList.Contains(args.Type.ToString()))// ||
//rgn.ProjectileList.Contains(args.Projectile.Name.ToLower().Replace(" ", "")))
{
if (IsRestrictedForUser(ctx.Player, rgn, ProjectileUse))
{
ctx.SetResult(HookResult.ERASE);
ctx.Player.sendMessage("You cannot edit this area!", ChatColor.Red);
return;
}
}
}
}
}