示例#1
0
        public bool checkTrigger(int count, Client client)
        {
            if (count == countToTrigger)
            {
                PlayerData player = client.playerData;

                switch (actionName)
                {
                case "mute":
                    player.isMuted = true;
                    StarryboundServer.sendGlobalMessage("^#f75d5d;" + player.name + " has been muted automatically for spamming.");
                    break;

                case "kick":
                    client.kickClient(reason);
                    break;

                case "ban":
                    if (length != 0)
                    {
                        length = Utils.getTimestamp() + (length * 60);
                    }

                    Bans.addNewBan(player.name, player.uuid, player.ip, Utils.getTimestamp(), "[SYSTEM]", length, reason);

                    client.banClient(reason);
                    break;
                }

                return(true);
            }

            return(false);
        }
示例#2
0
 public void delayDisconnect(string reason, string message)
 {
     if (kickTargetTimestamp != 0)
     {
         return;
     }
     sendChatMessage("^#f75d5d;" + reason);
     flushChatQueue();
     kickTargetTimestamp = Utils.getTimestamp() + 6;
     sendServerPacket(Packet.ClientDisconnect, new byte[1]);
     StarryboundServer.sendGlobalMessage("^#f75d5d;" + message);
     StarryboundServer.logInfo("[" + playerData.client + "] is being kicked for " + message);
 }
示例#3
0
 private void doDisconnect(string logMessage)
 {
     if (this.state == ClientState.Disposing)
     {
         return;
     }
     this.state = ClientState.Disposing;
     StarryboundServer.logInfo("[" + playerData.client + "] " + logMessage);
     try
     {
         if (this.playerData.name != null)
         {
             Client target = StarryboundServer.getClient(this.playerData.name);
             if (target != null)
             {
                 Users.SaveUser(this.playerData);
                 StarryboundServer.removeClient(this);
                 if (this.kickTargetTimestamp == 0)
                 {
                     StarryboundServer.sendGlobalMessage(this.playerData.name + " has left the server.");
                 }
             }
         }
     }
     catch (Exception e)
     {
         StarryboundServer.logException("Failed to remove client from clients: " + e.ToString());
     }
     try
     {
         this.sendServerPacket(Packet.ClientDisconnect, new byte[1]);
     }
     catch (Exception) { }
     try
     {
         this.cSocket.Close();
         this.sSocket.Close();
     }
     catch (Exception) { }
     try
     {
         this.ClientForwarder.Abort();
         this.ServerForwarder.Abort();
     }
     catch (Exception) { }
 }