diff --git a/code/game/world.dm b/code/game/world.dm index 88166c4b..37c3fac2 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -33,6 +33,7 @@ GLOBAL_VAR(restart_counter) #endif load_admins() + load_patreons() LoadVerbs(/datum/verbs/menu) if(CONFIG_GET(flag/usewhitelist)) load_whitelist() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 78196e6a..c565c44e 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -206,6 +206,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/current_tab = 0 var/unlock_content = 0 + var/vip = 0 var/list/ignoring = list() @@ -244,6 +245,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) unlock_content = C.IsByondMember() if(unlock_content) max_save_slots = 16 + if(clientckey in GLOB.patreons) + vip = 1 var/loaded_preferences_successfully = load_preferences() if(loaded_preferences_successfully) if(load_character()) diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index 8a233025..c79eb418 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -56,9 +56,13 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8") mob.log_talk(raw_msg, LOG_OOC, tag="(OOC)") var/keyname = key + if(prefs.unlock_content) if(prefs.toggles & MEMBER_PUBLIC) keyname = "[icon2html('icons/member_content.dmi', world, "blag")][keyname]" + + if(prefs.vip) //patreon supporter! + keyname = "[icon2html('hyperstation/icons/chat/reward.dmi', world, "vip")] [keyname]" //The linkify span classes and linkify=TRUE below make ooc text get clickable chat href links if you pass in something resembling a url for(var/client/C in GLOB.clients) if(C.prefs.chat_toggles & CHAT_OOC) diff --git a/config/patreons.txt b/config/patreons.txt new file mode 100644 index 00000000..b9b54a59 --- /dev/null +++ b/config/patreons.txt @@ -0,0 +1,5 @@ +//Patreon Supporters go here, and get a special little icon in OOC, Keep each name to one line + +User1 +User2 +User3 \ No newline at end of file diff --git a/hyperstation/code/modules/patreon/patreon.dm b/hyperstation/code/modules/patreon/patreon.dm new file mode 100644 index 00000000..932ccd73 --- /dev/null +++ b/hyperstation/code/modules/patreon/patreon.dm @@ -0,0 +1,15 @@ +#define PATREONFILE "[global.config.directory]/patreons.txt" + +GLOBAL_LIST_EMPTY(patreons) + +/proc/load_patreons() + GLOB.patreons = list() + for(var/line in world.file2list(PATREONFILE)) + if(!line) + continue + GLOB.patreons += ckey(line) + +/proc/check_patreons(var/ckey) + if(!GLOB.patreons) + return FALSE + . = (ckey in GLOB.patreons) diff --git a/hyperstation/icons/chat/chat.dmi b/hyperstation/icons/chat/chat.dmi new file mode 100644 index 00000000..1457f7f2 Binary files /dev/null and b/hyperstation/icons/chat/chat.dmi differ diff --git a/hyperstation/icons/chat/reward.dmi b/hyperstation/icons/chat/reward.dmi new file mode 100644 index 00000000..1fe18a20 Binary files /dev/null and b/hyperstation/icons/chat/reward.dmi differ diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi index e8cecbc8..bf4b9ed4 100644 Binary files a/icons/obj/watercloset.dmi and b/icons/obj/watercloset.dmi differ diff --git a/tgstation.dme b/tgstation.dme index e80c01fc..0bcfa440 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2889,6 +2889,7 @@ #include "hyperstation\code\modules\antagonists\werewolf\werewolf.dm" #include "hyperstation\code\modules\clothing\head.dm" #include "hyperstation\code\modules\crafting\recipes.dm" +#include "hyperstation\code\modules\patreon\patreon.dm" #include "hyperstation\code\modules\resize\holder_micro.dm" #include "hyperstation\code\modules\resize\resizing.dm" #include "hyperstation\code\modules\resize\sizegun.dm"