• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# ISender类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中ISender的典型用法代码示例。如果您正苦于以下问题:C# ISender类的具体用法?C# ISender怎么用?C# ISender使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ISender类属于命名空间,在下文中一共展示了ISender类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: TestPoint

        public static void TestPoint(Server server, ISender sender, ArgumentList args)
        {
            string param;
            Player player = server.GetPlayerByName(sender.Name);

            if (args.TryGetString(0, out param))
            {
                switch (param.ToUpper())
                {
                    case "LOBBY":
                        player.sendMessage("Teleporting to the lobby", Login.plugin.chatColor);
                        Login.plugin.TeleportPlayerToPoint(player, Login.LOBBY);
                        break;
                    case "VALIDATED":
                        player.sendMessage("Teleporting to the validated point", Login.plugin.chatColor);
                        Login.plugin.TeleportPlayerToPoint(player, Login.VALIDATED);
                        break;
                    default:
                        player.sendMessage("You must specify either lobby or validated", Login.plugin.chatColor);
                        break;
                }
            }
            else
                player.sendMessage("You must specify either lobby or validated", Login.plugin.chatColor);
        }
开发者ID:Erls-Corporation,项目名称:Login,代码行数:25,代码来源:Commands.cs


示例2: DeopPlayer

        /// <summary>
        /// De-OPs a given Player.
        /// </summary>
        /// <param name="sender">Sending player</param>
        /// <param name="args">Arguments sent with command</param>
        public static void DeopPlayer(ISender sender, ArgumentList args)
        {
            var playerName = args.GetString(0);
            Player player;
            if (args.TryGetOnlinePlayer(0, out player))
            {
                playerName = player.Name;

                if (Player.isInOpList(playerName))
                {
                    player.sendMessage("You have been De-Opped!.", ChatColor.Green);
                }

                player.Op = false;
                if (player.HasClientMod)
                {
                    NetMessage.SendData(Packet.CLIENT_MOD, player.whoAmi);
                }
            }

            if (Player.isInOpList(playerName))
            {
                Server.notifyOps("De-Opping " + playerName + " {" + sender.Name + "}", true);
                Server.OpList.removeException(playerName + ":" + Player.GetPlayerPassword(playerName));
            }

            if (!Server.OpList.Save())
            {
                Server.notifyOps("OpList Failed to Save due. {" + sender.Name + "}", true);
                return;
            }
        }
开发者ID:rakiru,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:37,代码来源:Commands.cs


示例3: HandleData

 public void HandleData(MemBlock payload, ISender return_path, object state) {
   if(_sub != null) {
     MemBlock rest = null;
     PType.Parse(payload, out rest);
     _sub.Handle(rest, return_path);
   }
 }
开发者ID:johnynek,项目名称:brunet,代码行数:7,代码来源:RoutingDataHandler.cs


示例4: HandleRpc

 // Provides a method for local apps to add certificates to Brunet without
 // being loaded with Brunet.
 public void HandleRpc(ISender caller, string method, IList args, object rs)
 {
   object result = null;
   try {
     if(method.Equals("AddCertificate")) {
       ReqrepManager.ReplyState rqrs = caller as ReqrepManager.ReplyState;
       if(rqrs == null || !(rqrs.ReturnPath is Node)) {
         throw new Exception("Call must be made locally for security reasons!");
       }
       string path = (string) args[0];
       result = _ch.AddCertificate(path);
     } else if(method.Equals("GetState")) {
       if(args.Count != 1) {
         throw new Exception("Not enough arguments");
       } else if(!(args[0] is string)) {
         throw new Exception("Argument should be a string");
       }
       Address addr = AddressParser.Parse(args[0] as string);
       SecurityAssociation sa = CheckForSecureSender(addr);
       if(sa == null) {
         result = "No SA";
       } else {
         result = sa.ToString();
       }
     } else {
       result = new Exception("Invalid method");
     }
   } catch (Exception e) {
     result = e;
   }
   _node.Rpc.SendResult(rs, result);
 }
开发者ID:pstjuste,项目名称:brunet,代码行数:34,代码来源:SymphonySecurityOverlord.cs


示例5: DtlsAssociation

    /// <summary>Create a DtlsFilter.</summary>
    /// <param name="key">A CryptoKey initialized by the OpenSSL.NET library.</param>
    /// <param name="cert">The path to the certificate to use.</param>
    /// <param name="ca_cert">The path to the ca certificate to use.</param>
    /// <param name="client">Use client initialization parameters.</param>
    public DtlsAssociation(ISender sender, CertificateHandler ch, PType ptype,
        Ssl ssl, bool client) : base(sender, ch)
    {
      _ip = new IdentifierPair();
      PType = ptype;
      _ssl = ssl;
      _client = client;
      _ssl.SetReadAhead(1);
      // Buggy SSL versions have issue with compression and dtls
      _ssl.SetOptions((int) SslOptions.SSL_OP_NO_COMPRESSION);
      if(client) {
        _ssl.SetConnectState();
      } else {
        _ssl.SetAcceptState();
      }

      // The ssl object will take control
      _read = BIO.MemoryBuffer(false);
      _read.NonBlocking = true;
      _write = BIO.MemoryBuffer(false);
      _write.NonBlocking = true;

      _ssl.SetBIO(_read, _write);
      _ssl.DoHandshake();

      _buffer = new byte[Int16.MaxValue];
      _buffer_sync = new object();
      _fe_lock = 0;
    }
开发者ID:pstjuste,项目名称:brunet,代码行数:34,代码来源:DtlsAssociation.cs


示例6: NPCSpawning

        /// <summary>
        /// Enables or disables NPC spawning
        /// </summary>
        /// <param name="sender">Sending player</param>
        /// <param name="args">Arguments sent with command</param>
        public void NPCSpawning(ISender sender, ArgumentList args)
        {
            args.ParseNone();

            Core.StopNPCSpawning = !Core.StopNPCSpawning;
            sender.Message("NPC spawning is now " + (Core.StopNPCSpawning ? "off" : "on") + "!");
        }
开发者ID:DeathCradle,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:12,代码来源:NpcSpawningCommand.cs


示例7: InstructionPacketSetID

 public InstructionPacketSetID(byte servoId, byte newId, ISender sender)
     : base(servoId, sender)
 {
     _instruction = 0x03;
     _lengthOfCommand = 0x04;
     _parameters.AddRange(new[] { (byte)0x03, newId });
 }
开发者ID:evilmachina,项目名称:theMachine,代码行数:7,代码来源:UpdateAX12ID.cs


示例8: Auth

 /// <summary>
 /// Allows users to log in.
 /// </summary>
 /// <param name="sender">Sending player</param>
 /// <param name="password">Password for verification</param>
 public void Auth(ISender sender, string password)
 {
     if (sender is Player)
     {
         var player = sender as Player;
         if (Storage.IsAvailable)
         {
             var existing = Authentication.GetPlayer(sender.SenderName);
             if (existing != null)
             {
                 if (existing.ComparePassword(sender.SenderName, password))
                 {
                     Utils.NotifyAllOps(
                         String.Format("{0} successfully logged in.", player.name)
                     );
                     player.SendMessage("Successfully logged in.", Color.DarkGreen);
                     player.SetAuthentication(sender.SenderName, "tdsm");
                     player.SetOp(existing.Operator);
                 }
                 else
                 {
                     sender.Message("Login failed", Color.DarkRed);
                 }
             }
             else
             {
                 sender.Message("Login failed", Color.DarkRed);
             }
         }
         else
             sender.Message("This function is unavailable", Color.DarkRed);
     }
 }
开发者ID:DeathCradle,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:38,代码来源:OperatorCommand.cs


示例9: Ban

 /// <summary>
 /// Bans a user from the server.
 /// </summary>
 /// <param name="sender">Sending entity</param>
 /// <param name="args">Arguments sent with command</param>
 public static void Ban(ISender sender, string player)
 {
     if (sender is ConsoleSender)
     {
         if (String.IsNullOrEmpty(player))
         {
             Tools.WriteLine("Usage: ban <player>");
         }
         else
         {
             bool found = false;
             var lowered = player.ToLower();
             for (int i = 0; i < 255; i++)
             {
                 if (Main.player[i].active && Main.player[i].name.ToLower() == lowered)
                 {
                     Callbacks.NetplayCallback.AddBan(i);
                     NetMessage.SendData(2, i, -1, "Banned from server.", 0, 0f, 0f, 0f, 0);
                     found = true;
                 }
             }
             if (!found) sender.Message("Failed to find a player by the name of {0}", player);
         }
     }
 }
开发者ID:VanixxGraphix,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:30,代码来源:DefaultCommands.cs


示例10: Subscribe

 public void Subscribe(ISender sender)
 {
     sender.MessageAvailable += (o, args) =>
                                    {
                                        ReceivedMessage = args.Message;
                                    };
 }
开发者ID:fr33h8r,项目名称:ServerEventsTest,代码行数:7,代码来源:Receiver.cs


示例11: List

        /// <summary>
        /// Prints a player list, Possibly readable by bots.
        /// </summary>
        /// <param name="sender">Sending player</param>
        /// <param name="args">Arguments sent with command</param>
        public void List(ISender sender, ArgumentList args)
        {
            args.ParseNone();

            var players = from p in Terraria.Main.player
                                   where p.active && !p.IsOp()
                                   select p.name;
            var ops = from p in Terraria.Main.player
                               where p.active && p.IsOp()
                               select p.name;

            var pn = players.Count();
            var on = ops.Count();

            if (on + pn == 0)
            {
                sender.Message("No players online.");
                return;
            }

            string ps = String.Empty;
            string os = String.Empty;

            if (pn > 0)
                ps = (on > 0 ? " | Players: " : "Players: ") + String.Join(", ", players);

            if (on > 0)
                os = "Ops: " + String.Join(", ", ops);

            sender.SendMessage(string.Concat(os, ps, " (", on + pn, "/", Netplay.MaxConnections, ")"), 255, 255, 240, 20);
        }
开发者ID:DeathCradle,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:36,代码来源:PlayerListCommand.cs


示例12: TeleportHere

        /// <summary>
        /// Teleports specified player to sending player's location.
        /// </summary>
        /// <param name="sender">Sending player</param>
        /// <param name="args">Arguments sent with command</param>
        public void TeleportHere(ISender sender, ArgumentList args)
        {
            if (sender is Player)
            {
                Player player = ((Player)sender);
                Player subject;

                if (args.TryPopOne(out subject))
                {
                    if (subject == null)
                    {
                        sender.Message("Cannot find player");
                        return;
                    }

                    subject.Teleport(player);

                    Utils.NotifyAllOps("Teleported " + subject.name + " to " +
                        player.name + " [" + sender.SenderName + "]", true);
                }
            }
            else
            {
                throw new CommandError("This command is for players only");
            }
        }
开发者ID:DeathCradle,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:31,代码来源:TeleportHereCommand.cs


示例13: RequestCommand

        public RequestCommand(ISender sender)
        {
            if (sender == null)
                throw new ArgumentNullException("sender");

            this.sender = sender;
        }
开发者ID:yjcrab777,项目名称:Sheep.VHall,代码行数:7,代码来源:RequestCommand.cs


示例14: ChangePassword

        void ChangePassword(ISender sender, string password)
        {
            if (!Storage.IsAvailable)
                throw new CommandError("No permissions plugin or data plugin is attached");

            var player = sender as Player;
            if (player == null)
            {
                sender.SendMessage("This is a player command", G: 0, B: 0);
                return;
            }
            else if (!player.IsAuthenticated())
            {
                sender.SendMessage("You are not authenticated.", G: 0, B: 0);
                return;
            }
            else if (password == null || password.Trim().Length < MinPasswordLength)
            {
                sender.SendMessage("Please specify a password longer than 5 characters.", G: 0, B: 0);
                return;
            }

            var auth = player.GetAuthenticatedAs();

            if (Authentication.UpdatePlayer(auth, password))
            {
                sender.SendMessage("Your password is now updated.", R: 0, B: 0);
            }
            else
            {
                sender.SendMessage("Failed to update your password.", G: 0, B: 0);
            }
        }
开发者ID:DeathCradle,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:33,代码来源:ChangePasswordCommand.cs


示例15: PasswordCommand

        void PasswordCommand(ISender sender, ArgumentList args)
        {
            Player player = sender as Player;
                Protection temp = new Protection ();
                Pair<Action, Protection> pair = new Pair<Action, Protection> (Action.NOTHING, null);

                if (args.Count != 1) {
                    player.SendMessage ("Usage: /cpassword <password>", 255, 255, 0, 0);
                    return;
                }

                string Extra = args[0];

                temp = new Protection ();
                temp.Owner = player.Name;
                temp.Type = Protection.PASSWORD_PROTECTION;
                temp.Data = SHA1.Hash (Extra);

                char[] pass = Extra.ToCharArray ();
                for (int index = 0; index < pass.Length; index++) {
                    pass [index] = '*';
                }

                pair.First = Action.CREATE;
                pair.Second = temp;

                player.SendMessage ("Password: " + new string (pass), 255, 255, 0, 0);
                player.SendMessage ("Open the chest to protect it!", 255, 0, 255, 0);

            // cache the action if it's not null!
            if (pair.First != Action.NOTHING) {
                ResetActions (player);
                Cache.Actions.Add (player.Name, pair);
            }
        }
开发者ID:elevatorguy,项目名称:LWC-Terraria,代码行数:35,代码来源:Commands.cs


示例16: Clear

 //TODO sort commands in alphabetical order.
 /// <summary>
 /// Shuts down an exists.
 /// </summary>
 /// <param name="sender">Sending entity</param>
 /// <param name="args">Arguments sent with command</param>
 public static void Clear(ISender sender, ArgumentList args)
 {
     if (sender is ConsoleSender)
     {
         Console.Clear();
     }
 }
开发者ID:VanixxGraphix,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:13,代码来源:DefaultCommands.cs


示例17: WhoAmI

        private void WhoAmI(ISender sender, string args)
        {
            var player = sender as Player;
            if (player != null)
            {
                var sb = new StringBuilder();
                sb.Append("You are ");
                if (!player.IsAuthenticated()) sb.Append("not ");

                if (player.Op) sb.Append("an operator");
                else sb.Append("logged in");

                var groupName = String.Empty;
                if (Storage.IsAvailable)
                {
                    var grp = Storage.GetInheritedGroup(player);
                    if (grp != null) groupName = grp.Name;
                }

                if (!String.IsNullOrEmpty(groupName))
                {
                    sb.Append(" and are a part of the ");
                    sb.Append(groupName);
                    sb.Append(" group");
                }
                else sb.Append(" but not apart of any groups");

                sb.Append(".");
                sender.Message(sb.ToString(), Color.Orange);
            }
            else sender.Message("This command is for players only", Color.Red);
        }
开发者ID:carriercomm,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:32,代码来源:WhoAmICommand.cs


示例18: Heal

        /// <summary>
        /// Heals one or all players.
        /// </summary>
        /// <param name="sender">Sending player</param>
        /// <param name="message">Message to send</param>
        public void Heal(ISender sender, ArgumentList args)
        {
            Player subject;

            if (args.TryPopOne(out subject))
            {
                subject = sender as Player;
                if (subject == null)
                {
                    sender.Message("Need a heal target");
                    return;
                }

                NetMessage.SendData((int)Packet.HEAL_PLAYER, -1, -1, String.Empty, subject.whoAmI, (float)subject.statLifeMax);
                subject.Message("You have been healed!", Color.Green);
            }
            else if (args.TryPop("-all"))
            {
                foreach (var plr in Main.player)
                {
                    if (plr.active)
                    {
                        NetMessage.SendData((int)Packet.HEAL_PLAYER, -1, -1, String.Empty, plr.whoAmI, (float)plr.statLifeMax);
                        plr.Message("You have been healed!", Color.Green);
                    }
                }
            }
            else if (sender is Player)
            {
                var plr = sender as Player;
                NetMessage.SendData((int)Packet.HEAL_PLAYER, -1, -1, String.Empty, plr.whoAmI, (float)plr.statLifeMax);
                plr.Message("You have been healed!", Color.Green);
            }
            else throw new CommandError("Nobody specified to heal");
        }
开发者ID:DeathCradle,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:40,代码来源:HealCommand.cs


示例19: HandleData

    public void HandleData(MemBlock packet, ISender from, object node)
    {
      _message_count++;

      long stop_time, rt_ticks = -10000;

      if ( !from.Equals(node)) {
        if (packet[0] == 0) {
        //log.Debug("Echo Response:");
	  stop_time = System.DateTime.Now.Ticks;
	  int received_uid = NumberSerializer.ReadInt(packet, 1);
          if(uid_starttime.ContainsKey(received_uid)){
		rt_ticks = stop_time - (long)EchoTester.uid_starttime[received_uid];
	  }
	  double rt_ms = (double) rt_ticks/10000.0;
	  uid_brunetpingtime.Add(received_uid, rt_ms);
	  Console.WriteLine("Packet ID = {0}, Round-trip = {1}", received_uid, rt_ms); 	  
        }
        else {
        //log.Debug("Echo Request:");
        }

        //log.Debug(packet.ToString());

        //System.Console.WriteLine("{0}", packet.ToString());

        if (packet[0] > 0) {
          //Send a reply back, this is a request  
	  byte[] new_payload = new byte[ packet.Length ];
	  packet.CopyTo(new_payload, 0);
          new_payload[0] = (byte) 0;
          from.Send(new CopyList(PType.Protocol.Echo, MemBlock.Reference(new_payload)));
        }
      }
    }
开发者ID:hseom,项目名称:hseom_brunet,代码行数:35,代码来源:EchoTester.cs


示例20: Refresh

        /// <summary>
        /// Refreshes a players area
        /// </summary>
        /// <param name="sender">Sending player</param>
        /// <param name="args">Arguments sent with command</param>
        public void Refresh(ISender sender, ArgumentList args)
        {
            args.ParseNone();

            var player = sender as Player;

            if (player == null)
            {
                sender.Message(255, "This is a player command");
                return;
            }

            if (player.whoAmI < 0)
                return;

            if (!player.Op)
            {
                var diff = DateTime.Now - player.GetLastCostlyCommand();

                if (diff < TimeSpan.FromSeconds(30))
                {
                    sender.Message(255, "You must wait {0:0} more seconds before using this command.", 30.0 - diff.TotalSeconds);
                    return;
                }

                player.SetLastCostlyCommand(DateTime.Now);
            }

            NetMessage.SendTileSquare(player.whoAmI, (int)(player.position.X / 16), (int)(player.position.Y / 16), 32);
        }
开发者ID:carriercomm,项目名称:Terraria-s-Dedicated-Server-Mod,代码行数:35,代码来源:RefreshCommand.cs



注:本文中的ISender类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# ISensor类代码示例发布时间:2022-05-24
下一篇:
C# ISemanticResolver类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap