1
0
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:
RaidMax
2016-01-15 16:15:39 -06:00
parent c06cd191a2
commit c396428282
16 changed files with 133 additions and 66 deletions

View File

@ -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; }
}
}

View File

@ -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);
}

View File

@ -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)

View File

@ -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;

View File

@ -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" />

View File

@ -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);