Skip to content

Commit

Permalink
tweak: whitelist auto update (#1190)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

## Что этот PR делает
Теперь не нужно нажимать на update_whitelist.
<!-- Вкратце опишите изменения, которые вносите. -->
<!-- Опишите **все** изменения, так как противное может сказаться на
рассмотрении этого PR'а! -->
<!-- Если вы исправляете Issue, добавьте "Fixes #xxxx" (где xxxx - номер
Issue) где-нибудь в описании PR'а. Это автоматически закроет Issue после
принятия PR'а. -->

## Почему это хорошо для игры

<!-- Опишите, почему, по вашему, следует добавить эти изменения в игру.
-->

## Изображения изменений

<!-- Если вы не меняли карту или спрайты, можете опустить эту секцию.
Если хотите, можете вставить видео. -->

## Тестирование

<!-- Как вы тестировали свой PR, если делали это вовсе? -->

## Changelog

:cl:
tweak: Теперь не нужно нажимать на update_whitelist для игроков которых
добавили в вайтлист во время раунда
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->
  • Loading branch information
Legendaxe authored Apr 20, 2024
2 parents 5ac0f86 + 2db15b3 commit 0fde9e4
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 27 deletions.
1 change: 0 additions & 1 deletion modular_ss220/whitelist/_whitelist.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,3 @@

/datum/modpack/whitelist/initialize()
load_whitelist()
GLOB.admin_verbs_server |= /client/proc/update_whitelist
38 changes: 12 additions & 26 deletions modular_ss220/whitelist/code/whitelist.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,42 +21,28 @@

qdel(whitelist_query)

/client/proc/update_whitelist()
set name = "Update whitelist"
set category = "Server"

if(!check_rights(R_SERVER))
return
/world/IsBanned(key, address, computer_id, type, check_ipintel, check_2fa, check_guest, log_info, check_tos)
var/ckey = ckey(key)

load_whitelist()
if(GLOB.configuration.overflow.reroute_cap != 0.5 || !ckey || (ckey in GLOB.configuration.overflow.overflow_whitelist))
return ..()

/mob/new_player/proc/check_whitelist()
if(!GLOB.configuration.overflow.reroute_cap || !SSdbcore.IsConnected())
return
var/list/denied_entry = list("reason"="no-whitelist", "desc"="\nПричина: Вас ([key]) нет в вайтлисте этого сервера. Приобрести доступ возможно у одного из стримеров Банды за баллы канала или записаться самостоятельно с помощью команды в дискорде, доступной сабам бусти, начиная со второго тира.")
var/datum/db_query/whitelist_query = SSdbcore.NewQuery({"
SELECT ckey FROM ckey_whitelist WHERE ckey=:ckey AND
is_valid=1 AND port=:port AND date_start<=NOW() AND
(NOW()<date_end OR date_end IS NULL)
"}, list("ckey" = ckey, "port" = "[world.port]"))

if(!whitelist_query.warn_execute())
qdel(whitelist_query)
return
return denied_entry

while(whitelist_query.NextRow())
var/ckey = whitelist_query.item[1]
GLOB.configuration.overflow.overflow_whitelist |= ckey
var/ckey_from_db = whitelist_query.item[1]
GLOB.configuration.overflow.overflow_whitelist |= ckey_from_db
qdel(whitelist_query)
return ..()

qdel(whitelist_query)


/mob/new_player/Login()
if(!(ckey in GLOB.configuration.overflow.overflow_whitelist))
check_whitelist()
. = ..()

/world/IsBanned(key, address, computer_id, type, check_ipintel, check_2fa, check_guest, log_info, check_tos)
var/ckey = ckey(key)
if(GLOB.configuration.overflow.reroute_cap == 0.5 && ckey && !(ckey in GLOB.configuration.overflow.overflow_whitelist))
return list("reason"="no-whitelist", "desc"="\nПричина: Вас ([key]) нет в вайтлисте этого сервера. Приобрести доступ возможно у одного из стримеров Банды за баллы канала или записаться самостоятельно с помощью команды в дискорде, доступной сабам бусти, начиная со второго тира.")

. = ..()
return denied_entry

0 comments on commit 0fde9e4

Please sign in to comment.