mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-09 07:48:55 +00:00
New donator system
which uses toml files and allows integration with the previous one
This commit is contained in:
2
code/__SPLURTCODE/DEFINES/configuration.dm
Normal file
2
code/__SPLURTCODE/DEFINES/configuration.dm
Normal file
@@ -0,0 +1,2 @@
|
||||
/// like CONFIG_GET_ENTRY() but uses a full path
|
||||
#define CONFIG_GET_ENTRY_FROM_PATH(P) global.config.GetEntryDatum(P)
|
||||
@@ -51,3 +51,4 @@ $include splurt/comms.txt
|
||||
$include splurt/maps.txt
|
||||
$include splurt/server.txt
|
||||
$include splurt/connections.txt
|
||||
$include splurt/donator.txt
|
||||
|
||||
4
config/splurt/donator.toml
Normal file
4
config/splurt/donator.toml
Normal file
@@ -0,0 +1,4 @@
|
||||
[donators]
|
||||
tier_1 = []
|
||||
tier_2 = []
|
||||
tier_3 = []
|
||||
6
config/splurt/donator.txt
Normal file
6
config/splurt/donator.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
# New donator system mode
|
||||
## Mode in which donator info added in donator.toml will be handled ##
|
||||
## 0 legacy donator system ##
|
||||
## 1 add the information from both systems ##
|
||||
## 2 only use info from the new system ##
|
||||
TOML_DONATORS_MODE 0
|
||||
@@ -0,0 +1,53 @@
|
||||
#define DONATOR_TOML_FILE "config/splurt/donator.toml"
|
||||
|
||||
// New donator system
|
||||
// Reminder that you must setup autodonator and ckeytools on
|
||||
// a discord redbot on your guild for this to work
|
||||
// https://github.com/SPLURT-Station/Mal0-cogs
|
||||
|
||||
/datum/config_entry/number/toml_donators_mode
|
||||
postload_required = TRUE
|
||||
|
||||
/datum/config_entry/number/toml_donators_mode/OnPostload()
|
||||
if(config_entry_value != 1 && config_entry_value != 2)
|
||||
return ..()
|
||||
|
||||
var/list/donators = rustg_read_toml_file(DONATOR_TOML_FILE)
|
||||
if(!donators)
|
||||
CRASH("Attempted to read donator file, but none was found!")
|
||||
|
||||
for(var/tier in subtypesof(/datum/config_entry/multi_keyed_flag/donator_group))
|
||||
var/datum/config_entry/multi_keyed_flag/donator_group/group = CONFIG_GET_ENTRY_FROM_PATH(tier)
|
||||
group.load_new_donators(donators, config_entry_value)
|
||||
|
||||
regenerate_donator_grouping_list()
|
||||
|
||||
. = ..()
|
||||
|
||||
/datum/config_entry/multi_keyed_flag/donator_group
|
||||
var/toml_tier
|
||||
|
||||
/datum/config_entry/multi_keyed_flag/donator_group/proc/load_new_donators(list/donators, mode)
|
||||
if(IsAdminAdvancedProcCall() || !toml_tier)
|
||||
return
|
||||
switch(mode)
|
||||
if(1)
|
||||
LAZYADD(config_entry_value, donators["donators"][toml_tier])
|
||||
if(2)
|
||||
config_entry_value = donators["donators"][toml_tier]
|
||||
else
|
||||
return
|
||||
for(var/ckey in config_entry_value)
|
||||
if(isnull(config_entry_value[ckey]))
|
||||
config_entry_value[ckey] = TRUE
|
||||
|
||||
/datum/config_entry/multi_keyed_flag/donator_group/tier_1_donators
|
||||
toml_tier = "tier_1"
|
||||
|
||||
/datum/config_entry/multi_keyed_flag/donator_group/tier_2_donators
|
||||
toml_tier = "tier_2"
|
||||
|
||||
/datum/config_entry/multi_keyed_flag/donator_group/tier_3_donators
|
||||
toml_tier = "tier_3"
|
||||
|
||||
#undef DONATOR_TOML_FILE
|
||||
@@ -249,6 +249,7 @@
|
||||
#include "code\__SPLURTCODE\DEFINES\atmospherics.dm"
|
||||
#include "code\__SPLURTCODE\DEFINES\cit_defines.dm"
|
||||
#include "code\__SPLURTCODE\DEFINES\click.dm"
|
||||
#include "code\__SPLURTCODE\DEFINES\configuration.dm"
|
||||
#include "code\__SPLURTCODE\DEFINES\cooldowns.dm"
|
||||
#include "code\__SPLURTCODE\DEFINES\genital_defines.dm"
|
||||
#include "code\__SPLURTCODE\DEFINES\hud.dm"
|
||||
@@ -4243,6 +4244,7 @@
|
||||
#include "modular_splurt\code\controllers\configuration\entries\splurt_comms.dm"
|
||||
#include "modular_splurt\code\controllers\configuration\entries\splurt_connections.dm"
|
||||
#include "modular_splurt\code\controllers\configuration\entries\splurt_discord.dm"
|
||||
#include "modular_splurt\code\controllers\configuration\entries\splurt_donator.dm"
|
||||
#include "modular_splurt\code\controllers\configuration\entries\splurt_fetish_content.dm"
|
||||
#include "modular_splurt\code\controllers\configuration\entries\splurt_general.dm"
|
||||
#include "modular_splurt\code\controllers\configuration\entries\splurt_maps.dm"
|
||||
|
||||
Reference in New Issue
Block a user