From bbb338edbab34d68eb566977a1589f2e006e27f2 Mon Sep 17 00:00:00 2001 From: Cadyn Date: Tue, 23 Feb 2021 03:02:32 -0800 Subject: [PATCH] Auto stash before merge of "tgs4" and "origin/master" --- SQL/DBSchema.sql | 294 +++++++++++++ SQL/feedback_schema.sql | 130 ------ SQL/tgstation_schema.sql | 100 ----- code/_helpers/logging.dm | 1 + code/modules/paperwork/faxmachine_vr.dm | 5 +- code/modules/tgs/v5/chat_commands_ch.dm | 59 +++ config/alienwhitelist.txt | 64 +-- config/custom_items.txt | 525 +----------------------- config/custom_sprites.txt | 4 +- 9 files changed, 364 insertions(+), 818 deletions(-) create mode 100644 SQL/DBSchema.sql delete mode 100644 SQL/feedback_schema.sql delete mode 100644 SQL/tgstation_schema.sql create mode 100644 code/modules/tgs/v5/chat_commands_ch.dm diff --git a/SQL/DBSchema.sql b/SQL/DBSchema.sql new file mode 100644 index 0000000000..e07c7ce48a --- /dev/null +++ b/SQL/DBSchema.sql @@ -0,0 +1,294 @@ +-- -------------------------------------------------------- +-- Host: localhost +-- Server version: 10.5.4-MariaDB - mariadb.org binary distribution +-- Server OS: Win64 +-- HeidiSQL Version: 11.0.0.5919 +-- -------------------------------------------------------- + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET NAMES utf8 */; +/*!50503 SET NAMES utf8mb4 */; +/*!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' */; + + +-- Dumping database structure for ss13 +CREATE DATABASE IF NOT EXISTS `ss13` /*!40100 DEFAULT CHARACTER SET utf8 */; +USE `ss13`; + +-- Dumping structure for table ss13.death +CREATE TABLE IF NOT EXISTS `death` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `pod` text DEFAULT NULL COMMENT 'Place of death', + `coord` text DEFAULT NULL COMMENT 'X, Y, Z POD', + `tod` datetime DEFAULT NULL COMMENT 'Time of death', + `job` text DEFAULT NULL, + `special` text DEFAULT NULL, + `name` text DEFAULT NULL, + `byondkey` text NOT NULL, + `laname` text DEFAULT NULL COMMENT 'Last attacker name', + `lakey` text DEFAULT NULL COMMENT 'Last attacker key', + `gender` text DEFAULT NULL, + `bruteloss` int(11) DEFAULT NULL, + `brainloss` int(11) DEFAULT NULL, + `fireloss` int(11) DEFAULT NULL, + `oxyloss` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=MyISAM AUTO_INCREMENT=13925 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_admin +CREATE TABLE IF NOT EXISTS `erro_admin` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `rank` varchar(32) NOT NULL DEFAULT 'Administrator', + `level` int(2) NOT NULL DEFAULT 0, + `flags` int(16) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_admin_log +CREATE TABLE IF NOT EXISTS `erro_admin_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `adminckey` varchar(32) NOT NULL, + `adminip` varchar(18) NOT NULL, + `log` text NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_attacklog +CREATE TABLE IF NOT EXISTS `erro_attacklog` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `time` datetime DEFAULT NULL, + `ckey` varchar(64) DEFAULT NULL, + `mob` varchar(128) DEFAULT NULL, + `message` varchar(1024) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=596 DEFAULT CHARSET=latin1; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_ban +CREATE TABLE IF NOT EXISTS `erro_ban` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bantime` datetime NOT NULL, + `serverip` varchar(32) NOT NULL, + `bantype` varchar(32) NOT NULL, + `reason` text NOT NULL, + `job` varchar(32) DEFAULT NULL, + `duration` int(11) NOT NULL, + `rounds` int(11) DEFAULT NULL, + `expiration_time` datetime NOT NULL, + `ckey` varchar(32) NOT NULL, + `computerid` varchar(32) NOT NULL, + `ip` varchar(32) NOT NULL, + `a_ckey` varchar(32) NOT NULL, + `a_computerid` varchar(32) NOT NULL, + `a_ip` varchar(32) NOT NULL, + `who` text NOT NULL, + `adminwho` text NOT NULL, + `edits` text DEFAULT NULL, + `unbanned` tinyint(1) DEFAULT NULL, + `unbanned_datetime` datetime DEFAULT NULL, + `unbanned_ckey` varchar(32) DEFAULT NULL, + `unbanned_computerid` varchar(32) DEFAULT NULL, + `unbanned_ip` varchar(32) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_connection_log +CREATE TABLE IF NOT EXISTS `erro_connection_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `serverip` varchar(64) NOT NULL, + `ckey` varchar(64) NOT NULL, + `ip` varchar(64) NOT NULL, + `computerid` varchar(64) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=12319 DEFAULT CHARSET=latin1; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_dialog +CREATE TABLE IF NOT EXISTS `erro_dialog` ( + `mid` int(11) NOT NULL AUTO_INCREMENT, + `time` datetime NOT NULL, + `ckey` varchar(32) NOT NULL, + `mob` varchar(128) DEFAULT NULL, + `type` varchar(32) NOT NULL, + `message` text NOT NULL, + PRIMARY KEY (`mid`) +) ENGINE=InnoDB AUTO_INCREMENT=1739 DEFAULT CHARSET=latin1; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_feedback +CREATE TABLE IF NOT EXISTS `erro_feedback` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `time` datetime NOT NULL, + `round_id` int(8) NOT NULL, + `var_name` varchar(32) NOT NULL, + `var_value` int(16) DEFAULT NULL, + `details` text DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=MyISAM AUTO_INCREMENT=68050 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_player +CREATE TABLE IF NOT EXISTS `erro_player` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `firstseen` datetime NOT NULL, + `lastseen` datetime NOT NULL, + `ip` varchar(18) NOT NULL, + `computerid` varchar(32) NOT NULL, + `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', + `discord_id` varchar(256) NOT NULL, + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `ckey` (`ckey`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1349 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_poll_option +CREATE TABLE IF NOT EXISTS `erro_poll_option` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `pollid` int(11) NOT NULL, + `text` varchar(255) NOT NULL, + `percentagecalc` tinyint(1) NOT NULL DEFAULT 1, + `minval` int(3) DEFAULT NULL, + `maxval` int(3) DEFAULT NULL, + `descmin` varchar(32) DEFAULT NULL, + `descmid` varchar(32) DEFAULT NULL, + `descmax` varchar(32) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_poll_question +CREATE TABLE IF NOT EXISTS `erro_poll_question` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `polltype` varchar(16) NOT NULL DEFAULT 'OPTION', + `starttime` datetime NOT NULL, + `endtime` datetime NOT NULL, + `question` varchar(255) NOT NULL, + `adminonly` tinyint(1) DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_poll_textreply +CREATE TABLE IF NOT EXISTS `erro_poll_textreply` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `pollid` int(11) NOT NULL, + `ckey` varchar(32) NOT NULL, + `ip` varchar(18) NOT NULL, + `replytext` text NOT NULL, + `adminrank` varchar(32) NOT NULL DEFAULT 'Player', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_poll_vote +CREATE TABLE IF NOT EXISTS `erro_poll_vote` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `pollid` int(11) NOT NULL, + `optionid` int(11) NOT NULL, + `ckey` varchar(255) NOT NULL, + `ip` varchar(16) NOT NULL, + `adminrank` varchar(32) NOT NULL, + `rating` int(2) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.erro_privacy +CREATE TABLE IF NOT EXISTS `erro_privacy` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `ckey` varchar(32) NOT NULL, + `option` varchar(128) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=763 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.karma +CREATE TABLE IF NOT EXISTS `karma` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `spendername` text NOT NULL, + `spenderkey` text NOT NULL, + `receivername` text NOT NULL, + `receiverkey` text NOT NULL, + `receiverrole` text NOT NULL, + `receiverspecial` text NOT NULL, + `isnegative` tinyint(1) NOT NULL, + `spenderip` text NOT NULL, + `time` datetime NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=MyISAM AUTO_INCREMENT=943 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.karmatotals +CREATE TABLE IF NOT EXISTS `karmatotals` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `byondkey` text NOT NULL, + `karma` int(11) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=MyISAM AUTO_INCREMENT=244 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.library +CREATE TABLE IF NOT EXISTS `library` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `author` text NOT NULL, + `title` text NOT NULL, + `content` text NOT NULL, + `category` text NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=MyISAM AUTO_INCREMENT=300 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.population +CREATE TABLE IF NOT EXISTS `population` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `playercount` int(11) DEFAULT NULL, + `admincount` int(11) DEFAULT NULL, + `time` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3613 DEFAULT CHARSET=latin1; + +-- Data exporting was unselected. + +-- Dumping structure for table ss13.vr_player_hours +CREATE TABLE IF NOT EXISTS `vr_player_hours` ( + `ckey` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, + `department` varchar(64) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, + `hours` double NOT NULL, + `total_hours` double(22,0) NOT NULL, + PRIMARY KEY (`ckey`,`department`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; + +-- Data exporting was unselected. + +/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; +/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/SQL/feedback_schema.sql b/SQL/feedback_schema.sql deleted file mode 100644 index a107136372..0000000000 --- a/SQL/feedback_schema.sql +++ /dev/null @@ -1,130 +0,0 @@ -CREATE TABLE `erro_admin` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, - `rank` varchar(32) NOT NULL DEFAULT 'Administrator', - `level` int(2) NOT NULL DEFAULT '0', - `flags` int(16) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_admin_log` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `adminckey` varchar(32) NOT NULL, - `adminip` varchar(18) NOT NULL, - `log` text NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_ban` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `bantime` datetime NOT NULL, - `serverip` varchar(32) NOT NULL, - `bantype` varchar(32) NOT NULL, - `reason` text NOT NULL, - `job` varchar(32) DEFAULT NULL, - `duration` int(11) NOT NULL, - `rounds` int(11) DEFAULT NULL, - `expiration_time` datetime NOT NULL, - `ckey` varchar(32) NOT NULL, - `computerid` varchar(32) NOT NULL, - `ip` varchar(32) NOT NULL, - `a_ckey` varchar(32) NOT NULL, - `a_computerid` varchar(32) NOT NULL, - `a_ip` varchar(32) NOT NULL, - `who` text NOT NULL, - `adminwho` text NOT NULL, - `edits` text, - `unbanned` tinyint(1) DEFAULT NULL, - `unbanned_datetime` datetime DEFAULT NULL, - `unbanned_ckey` varchar(32) DEFAULT NULL, - `unbanned_computerid` varchar(32) DEFAULT NULL, - `unbanned_ip` varchar(32) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_feedback` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `time` datetime NOT NULL, - `round_id` int(8) NOT NULL, - `var_name` varchar(32) NOT NULL, - `var_value` int(16) DEFAULT NULL, - `details` text, - PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_player` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, - `firstseen` datetime NOT NULL, - `lastseen` datetime NOT NULL, - `ip` varchar(18) NOT NULL, - `computerid` varchar(32) NOT NULL, - `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', - `discord_id` varchar(64) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ckey` (`ckey`), - KEY `discord_id` (`discord_id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_poll_option` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `pollid` int(11) NOT NULL, - `text` varchar(255) NOT NULL, - `percentagecalc` tinyint(1) NOT NULL DEFAULT '1', - `minval` int(3) DEFAULT NULL, - `maxval` int(3) DEFAULT NULL, - `descmin` varchar(32) DEFAULT NULL, - `descmid` varchar(32) DEFAULT NULL, - `descmax` varchar(32) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_poll_question` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `polltype` varchar(16) NOT NULL DEFAULT 'OPTION', - `starttime` datetime NOT NULL, - `endtime` datetime NOT NULL, - `question` varchar(255) NOT NULL, - `adminonly` tinyint(1) DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_poll_textreply` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `pollid` int(11) NOT NULL, - `ckey` varchar(32) NOT NULL, - `ip` varchar(18) NOT NULL, - `replytext` text NOT NULL, - `adminrank` varchar(32) NOT NULL DEFAULT 'Player', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_poll_vote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `pollid` int(11) NOT NULL, - `optionid` int(11) NOT NULL, - `ckey` varchar(255) NOT NULL, - `ip` varchar(16) NOT NULL, - `adminrank` varchar(32) NOT NULL, - `rating` int(2) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `erro_privacy` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `ckey` varchar(32) NOT NULL, - `option` varchar(128) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; - -CREATE TABLE `vr_player_hours` ( - `ckey` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, - `department` varchar(64) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, - `hours` double NOT NULL, - `total_hours` double NOT NULL DEFAULT '0', - PRIMARY KEY (`ckey`,`department`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; \ No newline at end of file diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql deleted file mode 100644 index b7e2e501ce..0000000000 --- a/SQL/tgstation_schema.sql +++ /dev/null @@ -1,100 +0,0 @@ -SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; -SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; -SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; - -CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ; -CREATE SCHEMA IF NOT EXISTS `tgstation` DEFAULT CHARACTER SET latin1 ; -USE `mydb` ; -USE `tgstation` ; - --- ----------------------------------------------------- --- Table `tgstation`.`death` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `tgstation`.`death` ( - `id` INT(11) NOT NULL AUTO_INCREMENT , - `pod` TEXT NOT NULL COMMENT 'Place of death' , - `coord` TEXT NOT NULL COMMENT 'X, Y, Z POD' , - `tod` DATETIME NOT NULL COMMENT 'Time of death' , - `job` TEXT NOT NULL , - `special` TEXT NOT NULL , - `name` TEXT NOT NULL , - `byondkey` TEXT NOT NULL , - `laname` TEXT NOT NULL COMMENT 'Last attacker name' , - `lakey` TEXT NOT NULL COMMENT 'Last attacker key' , - `gender` TEXT NOT NULL , - `bruteloss` INT(11) NOT NULL , - `brainloss` INT(11) NOT NULL , - `fireloss` INT(11) NOT NULL , - `oxyloss` INT(11) NOT NULL , - PRIMARY KEY (`id`) ) -ENGINE = MyISAM -AUTO_INCREMENT = 3409 -DEFAULT CHARACTER SET = latin1; - - --- ----------------------------------------------------- --- Table `tgstation`.`karma` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `tgstation`.`karma` ( - `id` INT(11) NOT NULL AUTO_INCREMENT , - `spendername` TEXT NOT NULL , - `spenderkey` TEXT NOT NULL , - `receivername` TEXT NOT NULL , - `receiverkey` TEXT NOT NULL , - `receiverrole` TEXT NOT NULL , - `receiverspecial` TEXT NOT NULL , - `isnegative` TINYINT(1) NOT NULL , - `spenderip` TEXT NOT NULL , - `time` DATETIME NOT NULL , - PRIMARY KEY (`id`) ) -ENGINE = MyISAM -AUTO_INCREMENT = 943 -DEFAULT CHARACTER SET = latin1; - - --- ----------------------------------------------------- --- Table `tgstation`.`karmatotals` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `tgstation`.`karmatotals` ( - `id` INT(11) NOT NULL AUTO_INCREMENT , - `byondkey` TEXT NOT NULL , - `karma` INT(11) NOT NULL , - PRIMARY KEY (`id`) ) -ENGINE = MyISAM -AUTO_INCREMENT = 244 -DEFAULT CHARACTER SET = latin1; - - --- ----------------------------------------------------- --- Table `tgstation`.`library` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `tgstation`.`library` ( - `id` INT(11) NOT NULL AUTO_INCREMENT , - `author` TEXT NOT NULL , - `title` TEXT NOT NULL , - `content` TEXT NOT NULL , - `category` TEXT NOT NULL , - PRIMARY KEY (`id`) ) -ENGINE = MyISAM -AUTO_INCREMENT = 184 -DEFAULT CHARACTER SET = latin1; - - --- ----------------------------------------------------- --- Table `tgstation`.`population` --- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `tgstation`.`population` ( - `id` INT(11) NOT NULL AUTO_INCREMENT , - `playercount` INT(11) NULL DEFAULT NULL , - `admincount` INT(11) NULL DEFAULT NULL , - `time` DATETIME NOT NULL , - PRIMARY KEY (`id`) ) -ENGINE = MyISAM -AUTO_INCREMENT = 2544 -DEFAULT CHARACTER SET = latin1; - - - -SET SQL_MODE=@OLD_SQL_MODE; -SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; -SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm index 56f2882957..abde26b220 100644 --- a/code/_helpers/logging.dm +++ b/code/_helpers/logging.dm @@ -34,6 +34,7 @@ admin_log.Add(text) if (config.log_admin) WRITE_LOG(diary, "ADMINPM: [key_name(source)]->[key_name(dest)]: [html_decode(text)]") + world.TgsTargetedChatBroadcast("ADMINPM: [key_name(source)]->[key_name(dest)]: [html_decode(text)]", TRUE) //CHOMPEdit, bot shows all adminpms now /proc/log_debug(text) if (config.log_debug) diff --git a/code/modules/paperwork/faxmachine_vr.dm b/code/modules/paperwork/faxmachine_vr.dm index 60b99117d4..dbca4ca8d2 100644 --- a/code/modules/paperwork/faxmachine_vr.dm +++ b/code/modules/paperwork/faxmachine_vr.dm @@ -46,8 +46,9 @@ query_string += "&sendername=[url_encode(sender.name)]" query_string += "&sentname=[url_encode(sent.name)]" world.Export("[config.chat_webhook_url]?[query_string]") - //YW EDIT - world.TgsTargetedChatBroadcast("FAX: [sanitize(faxname)] / [sanitize(sent.name)] - SENT BY: [sanitize(sender.name)] - FAXID: **[sanitize(faxid)]**", TRUE) + //YW EDIT //CHOMPEdit also + var/faxmsg = return_file_text("[config.fax_export_dir]/fax_[faxid].html") + world.TgsTargetedChatBroadcast("FAX: [sanitize(faxname)] / [sanitize(sent.name)] - SENT BY: [sanitize(sender.name)] - FAXID: **[sanitize(faxid)]** \n FAX: ```[strip_html_properly(faxmsg)]```", TRUE) //YW EDIT END // diff --git a/code/modules/tgs/v5/chat_commands_ch.dm b/code/modules/tgs/v5/chat_commands_ch.dm new file mode 100644 index 0000000000..d963347d1c --- /dev/null +++ b/code/modules/tgs/v5/chat_commands_ch.dm @@ -0,0 +1,59 @@ +/datum/tgs_chat_command/manifest + name = "manifest" + help_text = "Shows the current crew manifest" + admin_only = FALSE + +/datum/tgs_chat_command/manifest/Run(datum/tgs_chat_user/sender, params) + var/outp = "Crew Manifest:" + if(data_core) + data_core.get_manifest_list() + for(var/list/item in PDA_Manifest) + outp += "\n__**[item["cat"]]:**__" + for(var/list/person in item["elems"]) + outp += "\n[person["name"]] -:- [person["rank"]]" + return outp + +/datum/tgs_chat_command/discordping + name = "discordping" + help_text = "Pings the discord associated with the associated ckey" + admin_only = TRUE + +/datum/tgs_chat_command/discordping/Run(datum/tgs_chat_user/sender, params) + var/key_to_find = "[ckey(params)]" + + // They didn't provide anything worth looking up. + if(!length(key_to_find)) + return "[sender.friendly_name], you need to provide a Byond username at the end of the command. It can be in 'key' format (with spaces and characters) or 'ckey' format (without spaces or special characters)." + + var/DBQuery/query = SSdbcore.NewQuery("SELECT discord_id FROM erro_player WHERE ckey = :t_ckey",list("t_ckey" = key_to_find)) + query.Execute() + + if(!query.NextRow()) + qdel(query) + return "[sender.friendly_name], the server's database is either not responding or there's no such ckey in the database." + + if(!query.item[1]) + qdel(query) + return "[sender.friendly_name], [key_to_find] is in the database, but has no discord ID associated with them." + var/discord_id = query.item[1] + qdel(query) + return "[key_to_find]'s discord is <@[discord_id]>" + +/datum/tgs_chat_command/getkey + name = "getkey" + help_text = "Finds the key associated with a discord id" + admin_only = TRUE + +/datum/tgs_chat_command/getkey/Run(datum/tgs_chat_user/sender, params) + if(!params) + return "[sender.friendly_name], you need to provide a Discord ID at the end of the command. To obtain someone's Discord ID, you need to enable developer mode on discord, and then right click on their name and click Copy ID." + + var/DBQuery/query = SSdbcore.NewQuery("SELECT discord_id FROM erro_player WHERE discord_id = :t_discord", list("t_discord"=params)) + query.Execute() + + if(!query.NextRow()) + qdel(query) + return "[sender.friendly_name], the server's database is either not responding or there's no such Discord ID in the database." + + var/user_key = query.item[1] + return "<@[params]>'s ckey is [user_key]" \ No newline at end of file diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt index c423c19e38..e54ec34da6 100644 --- a/config/alienwhitelist.txt +++ b/config/alienwhitelist.txt @@ -1,62 +1,4 @@ some~user - Species - -admiraldragon - Vox -aetherelemental - Daemon -arandomalien - Xenochimera -arokha - Protean -aruis - Diona -aruis - Xenochimera -amarewolf - Xenochimera -azmodan412 - Xenochimera -alphaprime1 - Protean -bothnevarbackwards - Diona -bricker98 - Protean -crossexonar - Protean -funnyman2003 - Xenochimera -flurriee - Protean -hawkerthegreat - Vox -hollifex - Diona -inuzari - Diona -jademanique - Xenochimera -ktccd - Diona -khanivore - Protean -mewchild - Diona -mewchild - Vox -mrsebbi - Xenochimera -natje - Xenochimera -nerdass - Protean -ontejbjoav - Diona -oreganovulgaris - Xenochimera -paradoxspace - Xenochimera -pearlprophet - Protean -phoenixx0 - Vox -rapidvalj - Vox -rapidvalj - Common Skrellian -rapidvalj - High Skrellian -rikaru19xjenkins - Xenochimera -rixunie - Diona -rykkastormheart - Xenochimera -rubyflamewing - Protean -radiantaurora - Protean -ryumi - Protean -seiga - Vox -sepulchre - Vox -silvertalismen - Diona -silvertalismen - Vox -silvertalismen - Xenochimera -storesund97 - Protean -sharplight - Protean -tastypred - Black-Eyed Shadekin -tastypred - Xenochimera -tastypred - Protean -timidvi - Diona -varonis - Xenochimera -verkister - Xenochimera -vitoras - Protean -voidalynx - Protean -wickedtemp - Shadekin Empathy -xioen - Diona -xioen - Xenochimera -xonkon - Protean -zalvine - Shadekin Empathy -zammyman215 - Vox +banana - Vox +apple - Diona +NotAce - All \ No newline at end of file diff --git a/config/custom_items.txt b/config/custom_items.txt index 7b3256785f..59bd6f00b4 100644 --- a/config/custom_items.txt +++ b/config/custom_items.txt @@ -1,8 +1,4 @@ ## -# -------------- -# Legacy/Defunct -# -------------- -# # Custom items go here. They are modifications of existing paths; look at the example for details. # Item will spawn if the target has one of the req_titles and if their on-spawn ID has the required access level. # req_access is going to be a shit to maintain since the config file can't grab constants and has to use integers, use it minimally. @@ -14,8 +10,8 @@ # character_name: Jane Doe # item_path: /obj/item/toy/plushie # item_name: ugly plush toy -# item_icon: flagmask -# item_defsc: It's truly hideous. +# item_icon: flagmask +# item_desc: It's truly hideous. # req_titles: Assistant, Security Officer # req_access: 1 # } @@ -42,519 +38,4 @@ # kit_desc: An orange voidsuit. Reinforced! # kit_icon: salvage # } -## - -# ######## 0-9 CKEYS -# ######## A CKEYS -{ -ckey: admiraldragon -character_name: Tikorak Korgask -item_path: /obj/item/weapon/storage/box/fluff/tikorak -} - -# ######## B CKEYS -{ -ckey: blackangelsace -character_name: Madoka Koto -item_path: /obj/item/weapon/storage/box/fluff/madoka -} - -{ -ckey: blackangelsace -character_name: Wolfgang Jaeger -item_path: /obj/item/weapon/storage/box/fluff/mauser -} - -{ -ckey: blackangelsace -character_name: Aurora Goldtail -item_path: /obj/item/clothing/glasses/omnihud/prescription/aurora -} - -{ -ckey: blackangelsace -character_name: Strix Hades -item_path: /obj/item/clothing/suit/storage/seromi/cloak/fluff/strix -} - -{ -ckey: blackangelsace -character_name: Strix Hades -item_path: /obj/item/clothing/under/seromi/undercoat/fluff/strix -} - -{ -ckey: blackangelsace -character_name: Strix Hades -item_path: /obj/item/toy/bosunwhistle/fluff/strix -} - -{ -ckey: blackangelsace -character_name: Strix Hades -item_path: /obj/item/device/radio/headset/fluff/strix -} - -{ -ckey: benl8561 -character_name: M.I.S.S.Y -item_path: /obj/item/weapon/storage/box/fluff/missy -} - -{ -ckey: benl8561 -character_name: Quanah Hastings -item_path: /obj/item/weapon/storage/box/fluff/quanah -} -# ######## C CKEYS -{ -ckey: captmatt4 -character_name: Payton Joghs -item_path: /obj/item/weapon/material/hatchet/unathiknife/fluff/payton_joghs_1 -} - -{ -ckey: captmatt4 -character_name: Eliana Noya -item_path: /obj/item/clothing/under/fluff/eliana_noya_1 -} - -{ -ckey: captmatt4 -character_name: Korei Laskor -item_path: /obj/item/clothing/head/helmet/fluff/korei_laskor_1 -} - -{ -ckey: cynicaltester -character_name: Zeta Blackwell -item_path: /obj/item/clothing/accessory/fluff/zeta_blackwell_1 -} - -{ -ckey: championfire -character_name: Anoki Windroar -item_path: /obj/item/weapon/storage/box/fluff/anoki -} - -{ -ckey: championfire -character_name: Ivy Kaeire -item_path: /obj/item/weapon/storage/box/fluff/ivy -} - -{ -ckey: championfire -character_name: Kita -item_path: /obj/item/clothing/suit/storage/seromi/cloak/fluff/kita -} -# ######## D CKEYS -{ -ckey: dameonowen -character_name: Dameon Owen -item_path: /obj/item/weapon/reagent_containers/food/snacks/cookie/mysterious -} -{ -ckey: dameonowen -character_name: Amber Owen -item_path: /obj/item/weapon/reagent_containers/food/snacks/cookie/mysterious -} -{ -ckey: dawidoe -character_name: Melissa Krutz -item_path: /obj/item/weapon/storage/box/fluff/melissa -} - -{ -ckey: dwaggy90 -character_name: Saur Darastrix -item_path: /obj/item/weapon/storage/box/fluff/saur -} - -{ -ckey: dushka -character_name: Saroth -item_path: /obj/item/weapon/storage/box/fluff/saroth -} - -{ -ckey: dushka -character_name: Jaree-Kur -item_path: /obj/item/clothing/accessory/poncho/cloak/fluff/Jaree -} - -{ -ckey: dushka -character_name: Jaree-Kur -item_path: /obj/item/clothing/head/ushanka/alt/fluff/Jaree -} - -{ -ckey: deepindigo -character_name: Amina Dae-Kouri -item_path: /obj/item/weapon/storage/bible/fluff/amina -} -# ######## E CKEYS -{ -ckey: esperkin -character_name: Sheri Calen -item_path: /obj/item/device/modkit_conversion/fluff/sheri_rig_kit -} -# ######## F CKEYS -{ -ckey: frenziedvorcha -character_name: Philip Smirnov -item_path: /obj/item/weapon/storage/box/fluff/philipsmirnov -} -# ######## G CKEYS -{ -ckey: generalpantsu -character_name: Amara Faell -item_path: /obj/item/weapon/storage/box/fluff/amara -} - -{ -ckey: generalpantsu -character_name: Zara Venlee -item_path: /obj/item/weapon/storage/box/fluff/zara -} - -{ -ckey: generalpantsu -character_name: Samantha Quzix -item_path: /obj/item/weapon/storage/box/fluff/samantha -} - -{ -ckey: generalpantsu -character_name: Nika Domashev -item_path: /obj/item/weapon/storage/box/fluff/nika -} -# ######## H CKEYS -{ -ckey: harpsong -character_name: Harpsong -item_path: /obj/item/clothing/suit/armor/vest/harpsong -} -# ######## I CKEYS -{ -ckey: izac112 -character_name: Ally Faell -item_path: /obj/item/weapon/storage/box/fluff/ally -} - -{ -ckey: izac112 -character_name: Raja Bastet -item_path: /obj/item/weapon/storage/box/fluff/raja -} - -{ -ckey: izac112 -character_name: Shel Nargol -item_path: /obj/item/weapon/storage/box/fluff/shel -} - -{ -ckey: izac112 -character_name: Alva Karlholm -item_path: /obj/item/weapon/storage/box/fluff/alva -} - -{ -ckey: interrolouis -character_name: Kai Highlands -/obj/item/borg/upgrade/modkit/chassis_mod/kai -} - -{ -ckey: ivymoomoo -character_name: Ivy Baladeva -item_path: /obj/item/weapon/storage/backpack/messenger/sec/fluff/ivymoomoo -} - -{ -ckey: VanesaFancyFin -character_name: Ire -item_path: /obj/item/weapon/bikehorn/fluff/chew_ire -} - -# ######## J CKEYS -{ -ckey: johnwolf135 -character_name: Rosetta Neton -item_path: /obj/item/clothing/under/fluff/rosetta -} - -{ -ckey: johnwolf135 -character_name: John Wolf -item_path: /obj/item/weapon/storage/box/fluff/John -} - -{ -ckey: jwguy -character_name: Koyo Akimomi -item_path: /obj/item/weapon/storage/box/fluff/koyoakimomi -} - -# ######## K CKEYS -# ######## L CKEYS -{ -ckey: lukevale -character_name: Mira Rezus -item_path: /obj/item/weapon/storage/box/fluff/mira -} - -{ -ckey: lukevale -character_name: Natalya Vospit -item_path: /obj/item/weapon/storage/box/fluff/natalya -} - -{ -ckey: lukevale -character_name: Lena Hastings -item_path: /obj/item/weapon/storage/box/fluff/lena -} - -{ -ckey: lukevale -character_name: Eryn Wolfe -item_path: /obj/item/weapon/storage/box/fluff/eryn -} - -{ -ckey: lukevale -character_name: Mitsuko Jiao -item_path: /obj/item/weapon/storage/box/fluff/jiao -} - -# ######## M CKEYS -{ -ckey: masmc -character_name: Kettek Ollarch -item_path: /obj/item/weapon/storage/box/fluff/kettek -} - -{ -ckey: maxiefoxie -character_name: Maxie Drake -item_path: /obj/item/weapon.storage/box/fluff/maxie -} - -{ -ckey: mr_signmeup -character_name: Reshskakskakss Seekiseekis -item_path: /obj/item/clothing/suit/security/navyhos -req_access: 58 -} - -{ -ckey: mr_signmeup -character_name: Daniel Fisher -item_path: /obj/item/clothing/accessory/medal/conduct -} - -# ######## N CKEYS -# ######## O CKEYS -# ######## P CKEYS -{ -ckey: paintitred -character_name: Noel Walsh -item_path: /obj/item/weapon/storage/box/fluff/noel -} - -# ######## Q CKEYS -# ######## R CKEYS -{ -ckey: radiantflash -character_name: Vasharr Zahirn -item_path: /obj/item/weapon/storage/box/fluff/vasharr -} - -{ -ckey: randysavage205 -character_name: Alex Wolf -item_path: /obj/item/clothing/accessory/fluff/alex_wolf_1 -} - -{ -ckey: roguenoob -character_name: Basir Fahim -item_path: /obj/item/clothing/gloves/ring/fluff/basir -} - -# ######## S CKEYS -{ -ckey: shaper -character_name: Natene -item_path: /obj/item/clothing/accessory/medal/silver/valor -} - -{ -ckey: sempt -character_name: Kayla Endsley -item_path: /obj/item/clothing/under/rank/roboticist/skirt -} - -{ -ckey: SASoperative -character_name: Joseph Skinner -item_path: /obj/item/weapon/storage/box/fluff/skinner -} - -# ######## T CKEYS -# ######## U CKEYS -{ -ckey: unleashedmana -character_name: Eviriik Vin'cir -item_path: /obj/item/clothing/suit/storage/hoodie/fluff/eviriik_4 -} - -{ -ckey: unleashedmana -character_name: Ike Eio'ni -item_path: /obj/item/clothing/suit/storage/labcoat/fluff/eioni_1 -} - -{ -ckey: unleashedmana -character_name: Ike Eio'ni -item_path: /obj/item/clothing/under/fluff/eioni_2 -} - -{ -ckey: unleashedmana -character_name: R.E.D.A.X. -item_path: /obj/item/clothing/suit/storage/hoodie/fluff/redax_1 -} - -{ -ckey: unleashedmana -character_name: R.E.D.A.X. -item_path: /obj/item/clothing/under/fluff/redax_2 -} - -{ -ckey: unleashedmana -character_name: Eviriik Vin'cir -item_path: /obj/item/clothing/accessory/fluff/eviriik_1 -} - -{ -ckey: unleashedmana -character_name: Eviriik Vin'cir -item_path: /obj/item/clothing/under/fluff/eviriik_2 -} - -{ -ckey: unleashedmana -character_name: Eviriik Vin'cir -item_path: /obj/item/clothing/suit/storage/fluff/eviriik_3 -} - -{ -ckey: unleashedmana -character_name: Eravik Vessi -item_path: /obj/item/weapon/kitchenknife/tacknife/unathiknife/fluff/eravik_vessi_1 -} - -{ -ckey: unleashedmana -character_name: Eravik Vessi -item_path: /obj/item/clothing/suit/storage/fluff/eravik_vessi_2 -} - -{ -ckey: unleashedmana -character_name: Eravik Vessi -item_path: /obj/item/clothing/under/fluff/eravik_vessi_3 -} - -{ -ckey: unleashedmana -character_name: David -item_path: /obj/item/clothing/under/fluff/david_1 -} - -{ -ckey: unleashedmana -character_name: David -item_path: /obj/item/clothing/suit/storage/fluff/david_2 -} - -{ -ckey: unleashedmana -character_name: David -item_path: /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/david_3 -} - -{ -ckey: unleashedmana -character_name: Zeke Vin'cir -item_path: /obj/item/weapon/fluff/zekewatch -} - -{ -ckey: unleashedmana -character_name: Zeke Vin'cir -item_path: /obj/item/clothing/accessory/fluff/zeke_vincir_1 -} - -{ -ckey: unleashedmana -character_name: Zeke Vin'cir -item_path: /obj/item/clothing/under/fluff/zeke_vincir_2 -} - -{ -ckey: unleashedmana -character_name: Zeke Vin'cir -item_path: /obj/item/clothing/under/fluff/zeke_vincir_3 -} - -{ -ckey: unleashedmana -character_name: Lucerna -item_path: /obj/item/clothing/mask/fluff/lucerna_1 -} - -{ -ckey: unleashedmana -character_name: Ragna Carvel -item_path: /obj/item/weapon/material/kitchen/utensil/fork/fluff/ragna_1 -} - -# ######## V CKEYS -{ -ckey: valhallaviking01 -character_name: Wolf Erikson -item_path: /obj/item/clothing/accessory/fluff/wolf_erikson_1 -} - -{ -ckey: valhallaviking01 -character_name: Hans Jaeger -item_path: /obj/item/weapon/storage/box/fluff/mauser -} - -{ -ckey: vanesafancyfin -character_name: Vanesa FancyFin -item_path: /obj/item/weapon/storage/box/fluff/vanesaf -} - -{ -ckey: vitorhks -character_name: Jessica Mayer -item_path: /obj/item/weapon/storage/box/fluff/jessica -} - - - -# ######## W CKEYS -# ######## X CKEYS -# ######## Y CKEYS - -# ######## Z CKEYS +## \ No newline at end of file diff --git a/config/custom_sprites.txt b/config/custom_sprites.txt index b99307d173..db3930a4ae 100644 --- a/config/custom_sprites.txt +++ b/config/custom_sprites.txt @@ -1,3 +1 @@ -ckey|state -lunarfleet|Clea-Nor -jademanique|B.A.U-Kingside \ No newline at end of file +ckey-state \ No newline at end of file