diff --git a/.gitignore b/.gitignore index 452cff8..8d5862f 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,5 @@ scripting/include/stats scripting/ssh.sp scripting/l4d2_witch_force_attack_cmd.sp l4d2_stats_plugin/ -data \ No newline at end of file +data +!sql/* diff --git a/README.md b/README.md index 3c0d183..78420cf 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# sourcemod-plugins +# Sourcemod L4D2 Plugins This is a collection of sourcemod plugins, most are used on my servers. The majority of the plugins are created by me, but some are modifications of other plugins. Some of the plugins / changes are very specific, but may be useful to someone. Not always the latest versions. If you have any interest with a plugin, I can make sure to upload the latest. Useful things: -1. Netprop viewer https://jackz.me/netprops/l4d2 +1. **Netprop Viewer** [L4D2 Netprops](https://jackz.me/netprops/l4d2) and [L4D2 Datamaps](https://jackz.me/netprops/l4d2-data) ## Plugin List @@ -35,6 +35,7 @@ Useful things: * [sm_namespamblock](#sm_namespamblock) - Basic plugin that bans players if they change their name in rapid succession * [l4d2-stats-plugin](https://github.com/jackzmc/l4d2-stats-plugin) - Custom stats recorder, see https://stats.jackz.me * [l4d2-ai-tweaks](#l4d2_ai_tweaks) - Very minor tweaks to survivor bots' behavior + * [sm_player_notes](#sm_player_notes) - Add notes to players ### Modified Others * [200IQBots_FlyYouFools](#200iqbots_flyyoufools) - Improved code to make it support multiple tanks and work better @@ -308,6 +309,8 @@ This plugin will store bans in a database and read from it on connect. This allo It will automatically intercept any ban that calls OnBanIdentity or OnBanClient (so sm_ban will work normally) Note: All admin players are ignored +[Database File](sql/globalbans.sql) + * **Convars:** * `sm_globalbans_kick_type <0/1/2>` * 0 = Do not kick, just notify @@ -468,3 +471,14 @@ Simply, prevents an idle bot (that is a bot for an idle player) from healing ano 2. The player has been idle for over **ALLOW_HEALING_MIN_IDLE_TIME** (a \#define) seconds (default is 3 minutes) Requires recompile to change. + +### sm_player_notes + +Simply lets you add notes to any player, and includes reputation summary and automatic actions (for my other plugins). When a player joins, all admins will see their notes. + +[Database File](sql/sm_player_notes.sql) | [Docs for Automatic Actions](https://admin.jackz.me/docs/notes) + +* **Commands:** + * `sm_note ` - Add notes to player, message does not need to be surrounded with quotes + * `sm_notedisconnected` - Shows menu of all players that have disconnected + * `sm_notes ` - View notes for player diff --git a/sql/globalbans.sql b/sql/globalbans.sql new file mode 100644 index 0000000..121b024 --- /dev/null +++ b/sql/globalbans.sql @@ -0,0 +1,52 @@ +-- MySQL dump 10.13 Distrib 8.2.0, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: left4dead2 +-- ------------------------------------------------------ +-- Server version 5.5.5-10.6.16-MariaDB-1:10.6.16+maria~deb11 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `bans` +-- + +DROP TABLE IF EXISTS `bans`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `bans` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `steamid` varchar(32) NOT NULL, + `reason` varchar(255) NOT NULL, + `public_message` varchar(255) DEFAULT NULL, + `ip` varchar(32) DEFAULT NULL, + `expires` bigint(20) DEFAULT NULL, + `timestamp` bigint(20) DEFAULT unix_timestamp(), + `flags` smallint(6) NOT NULL DEFAULT 0, + `expired` tinyint(1) GENERATED ALWAYS AS (ifnull(`expires`,0) > 1 and unix_timestamp() >= `expires`) VIRTUAL, + `times_tried` smallint(6) NOT NULL DEFAULT 0, + `executor` varchar(32) NOT NULL, + PRIMARY KEY (`id`), + KEY `ip` (`ip`), + KEY `steamid` (`steamid`) +) ENGINE=InnoDB AUTO_INCREMENT=2250 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2024-03-06 18:22:26 diff --git a/sql/sm_player_notes.sql b/sql/sm_player_notes.sql new file mode 100644 index 0000000..5d670c1 --- /dev/null +++ b/sql/sm_player_notes.sql @@ -0,0 +1,43 @@ +-- MySQL dump 10.13 Distrib 8.2.0, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: left4dead2 +-- ------------------------------------------------------ +-- Server version 5.5.5-10.6.16-MariaDB-1:10.6.16+maria~deb11 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `notes` +-- + +DROP TABLE IF EXISTS `notes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `notes` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `steamid` varchar(32) NOT NULL, + `markedBy` varchar(32) DEFAULT NULL, + `content` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2301 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2024-03-06 18:20:53