mirror of
https://github.com/RaidMax/IW4M-Admin.git
synced 2025-06-10 15:20:48 -05:00
VERSION 1.1
CHANGELOG: -fixed ban sorting ( and an overlooked bug ) -added kicks and temp-bans to penalty list -bans are now named penalties -readded pubbans page http://127.0.0.1:1624/pubbans -updated RepZ profile link
This commit is contained in:
@ -5,15 +5,16 @@ using System.Text;
|
||||
|
||||
namespace SharedLibrary
|
||||
{
|
||||
public class Ban
|
||||
public class Penalty
|
||||
{
|
||||
public Ban(String Reas, String TargID, String From, DateTime time, String ip)
|
||||
public Penalty(Type BType, String Reas, String TargID, String From, DateTime time, String ip)
|
||||
{
|
||||
Reason = Reas;
|
||||
npID = TargID;
|
||||
bannedByID = From;
|
||||
When = time;
|
||||
IP = ip;
|
||||
this.BType = BType;
|
||||
}
|
||||
|
||||
public String getWhen()
|
||||
@ -21,10 +22,18 @@ namespace SharedLibrary
|
||||
return When.ToString("MM/dd/yy HH:mm:ss"); ;
|
||||
}
|
||||
|
||||
public enum Type
|
||||
{
|
||||
Kick,
|
||||
TempBan,
|
||||
Ban
|
||||
}
|
||||
|
||||
public String Reason { get; private set; }
|
||||
public String npID { get; private set; }
|
||||
public String bannedByID { get; private set; }
|
||||
public DateTime When { get; private set; }
|
||||
public String IP { get; private set; }
|
||||
public Type BType { get; private set; }
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Data.SQLite;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Collections;
|
||||
|
||||
namespace SharedLibrary
|
||||
{
|
||||
@ -157,7 +155,7 @@ namespace SharedLibrary
|
||||
{
|
||||
String Create = "CREATE TABLE [CLIENTS] ( [Name] TEXT NULL, [npID] TEXT NULL, [Number] INTEGER PRIMARY KEY AUTOINCREMENT, [Level] INT DEFAULT 0 NULL, [LastOffense] TEXT NULL, [Connections] INT DEFAULT 1 NULL, [IP] TEXT NULL, [LastConnection] TEXT NULL);";
|
||||
ExecuteNonQuery(Create);
|
||||
Create = "CREATE TABLE [BANS] ( [Reason] TEXT NULL, [npID] TEXT NULL, [bannedByID] TEXT NULL, [IP] TEXT NULL, [TIME] TEXT NULL);";
|
||||
Create = "CREATE TABLE [BANS] ( [TYPE] TEXT NULL, [Reason] TEXT NULL, [npID] TEXT NULL, [bannedByID] TEXT NULL, [IP] TEXT NULL, [TIME] TEXT NULL);";
|
||||
ExecuteNonQuery(Create);
|
||||
}
|
||||
}
|
||||
@ -340,9 +338,9 @@ namespace SharedLibrary
|
||||
}
|
||||
|
||||
//Returns list of bans in database
|
||||
public List<Ban> getBans()
|
||||
public List<Penalty> getBans()
|
||||
{
|
||||
List<Ban> Bans = new List<Ban>();
|
||||
List<Penalty> Bans = new List<Penalty>();
|
||||
DataTable Result = GetDataTable("SELECT * FROM BANS ORDER BY TIME DESC");
|
||||
|
||||
foreach (DataRow Row in Result.Rows)
|
||||
@ -350,7 +348,12 @@ namespace SharedLibrary
|
||||
if (Row["TIME"].ToString().Length < 2) //compatibility with my old database
|
||||
Row["TIME"] = DateTime.Now.ToString();
|
||||
|
||||
Bans.Add(new Ban(Row["Reason"].ToString(), Row["npID"].ToString(), Row["bannedByID"].ToString(), DateTime.Parse(Row["TIME"].ToString()), Row["IP"].ToString()));
|
||||
SharedLibrary.Penalty.Type BanType = Penalty.Type.Ban;
|
||||
if (Row["TYPE"].ToString().Length != 0)
|
||||
BanType = (Penalty.Type)Enum.Parse(typeof(Penalty.Type), Row["TYPE"].ToString());
|
||||
|
||||
Bans.Add(new Penalty(BanType, Row["Reason"].ToString(), Row["npID"].ToString(), Row["bannedByID"].ToString(), DateTime.Parse(Row["TIME"].ToString()), Row["IP"].ToString()));
|
||||
|
||||
}
|
||||
|
||||
return Bans;
|
||||
@ -413,7 +416,7 @@ namespace SharedLibrary
|
||||
|
||||
|
||||
//Add specified ban to database
|
||||
public void addBan(Ban B)
|
||||
public void addBan(Penalty B)
|
||||
{
|
||||
Dictionary<String, object> newBan = new Dictionary<String, object>();
|
||||
|
||||
@ -422,6 +425,7 @@ namespace SharedLibrary
|
||||
newBan.Add("bannedByID", B.bannedByID);
|
||||
newBan.Add("IP", B.IP);
|
||||
newBan.Add("TIME", Utilities.DateTimeSQLite(DateTime.Now));
|
||||
newBan.Add("TYPE", B.BType);
|
||||
|
||||
Insert("BANS", newBan);
|
||||
}
|
||||
|
@ -128,14 +128,14 @@ namespace SharedLibrary
|
||||
lastEvent.Owner.Tell(Message, this);
|
||||
}
|
||||
|
||||
public void Kick(String Message)
|
||||
public void Kick(String Message, Player Sender)
|
||||
{
|
||||
lastEvent.Owner.Kick(Message, this);
|
||||
lastEvent.Owner.Kick(Message, this, Sender);
|
||||
}
|
||||
|
||||
public void tempBan(String Message)
|
||||
public void tempBan(String Message, Player Sender)
|
||||
{
|
||||
lastEvent.Owner.tempBan(Message, this);
|
||||
lastEvent.Owner.tempBan(Message, this, Sender);
|
||||
}
|
||||
|
||||
public void Ban(String Message, Player Sender)
|
||||
|
@ -23,7 +23,7 @@ namespace SharedLibrary
|
||||
clientDB = new ClientsDB("clients.rm");
|
||||
aliasDB = new AliasesDB("aliases.rm");
|
||||
|
||||
Bans = new List<Ban>();
|
||||
Bans = new List<Penalty>();
|
||||
players = new List<Player>(new Player[18]);
|
||||
events = new Queue<Event>();
|
||||
Macros = new Dictionary<String, Object>();
|
||||
@ -97,7 +97,7 @@ namespace SharedLibrary
|
||||
}
|
||||
|
||||
//Returns list of all active bans (loaded at runtime)
|
||||
public List<Ban> getBans()
|
||||
public List<Penalty> getBans()
|
||||
{
|
||||
return Bans;
|
||||
}
|
||||
@ -169,7 +169,7 @@ namespace SharedLibrary
|
||||
/// </summary>
|
||||
/// <param name="C">Player to check if banned</param>
|
||||
/// <returns>Matching ban if found</returns>
|
||||
abstract public Ban isBanned(Player C);
|
||||
abstract public Penalty isBanned(Player C);
|
||||
|
||||
/// <summary>
|
||||
/// Process requested command correlating to an event
|
||||
@ -286,21 +286,14 @@ namespace SharedLibrary
|
||||
/// </summary>
|
||||
/// <param name="Reason">Reason for kicking</param>
|
||||
/// <param name="Target">Player to kick</param>
|
||||
public void Kick(String Reason, Player Target)
|
||||
{
|
||||
if (Target.clientID > -1)
|
||||
executeCommand("clientkick " + Target.clientID + " \"" + Reason + "^7\"");
|
||||
}
|
||||
abstract public void Kick(String Reason, Player Target, Player Origin);
|
||||
|
||||
/// <summary>
|
||||
/// Temporarily ban a player ( default 1 hour ) from the server
|
||||
/// </summary>
|
||||
/// <param name="Reason">Reason for banning the player</param>
|
||||
/// <param name="Target">The player to ban</param>
|
||||
public void tempBan(String Reason, Player Target)
|
||||
{
|
||||
executeCommand("tempbanclient " + Target.clientID + " \"" + Reason + "\"");
|
||||
}
|
||||
abstract public void tempBan(String Reason, Player Target, Player Origin);
|
||||
|
||||
/// <summary>
|
||||
/// Perm ban a player from the server
|
||||
@ -472,7 +465,7 @@ namespace SharedLibrary
|
||||
|
||||
//Objects
|
||||
public Log Log { get; private set; }
|
||||
public List<Ban> Bans;
|
||||
public List<Penalty> Bans;
|
||||
public Player owner;
|
||||
public List<Map> maps;
|
||||
public List<String> rules;
|
||||
|
@ -38,7 +38,7 @@
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.SQLite">
|
||||
<HintPath>..\..\Admin\lib\System.Data.SQLite.dll</HintPath>
|
||||
<HintPath>D:\SOURCE\Admin\lib\System.Data.SQLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
|
@ -183,6 +183,21 @@ namespace SharedLibrary
|
||||
}
|
||||
}
|
||||
|
||||
public static String penaltyHTMLFormatted(Penalty.Type BType)
|
||||
{
|
||||
switch(BType)
|
||||
{
|
||||
case Penalty.Type.Ban:
|
||||
return "<span style='color:Red'>" + BType.ToString() + "</span>";
|
||||
case Penalty.Type.TempBan:
|
||||
return "<span style='color:Orange'>" + BType.ToString() + "</span>";
|
||||
case Penalty.Type.Kick:
|
||||
return "<span style='color:#ffff80'>" + BType.ToString() + "</span>";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public static String processMacro(Dictionary<String, Object> Dict, String str)
|
||||
{
|
||||
MatchCollection Found = Regex.Matches(str, @"\{\{[A-Z]+\}\}", RegexOptions.IgnoreCase);
|
||||
|
Reference in New Issue
Block a user