Skip to content

Commit 64ee468

Browse files
authored
Gag fixes (#68)
* ๐Ÿก add default gag reasons templates * ๐Ÿงƒ fix gag reasons length from config * โ˜• load configs before gag plugin init * ๐ŸŽถ FIX error on config loading (#49) * ๐Ÿ–ฅ๏ธ add new publish script * ๐Ÿ‚ Get reason flags from template (#42) * ๐Ÿฆ  FIX non block /chat cmds for other plugins (#41)
1 parent c046109 commit 64ee468

File tree

6 files changed

+104
-74
lines changed

6 files changed

+104
-74
lines changed

โ€Ž.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
*.amxx
22
.vscode/*
3-
publish/
3+
*publish/
4+
/.temp
5+
/.compiler
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
ca_gag_add_reason "Reason #1" "bc" "30"
2-
ca_gag_add_reason "Reason #2" "bc" "30"
3-
ca_gag_add_reason "Reason #3" "bc" "30"
4-
ca_gag_add_reason "Reason #4" "bc" "30"
1+
ca_gag_add_reason "ะœะฐั‚ั‹ / ะพัะบะพั€ะฑะปะตะฝะธั" "abc" "5"
2+
ca_gag_add_reason "ะคะปัƒะด" "abc" "10"
3+
ca_gag_add_reason "ะœะพะฝะธั‚ะพั€ะธะฝะณ" "abc" "30"
4+
ca_gag_add_reason "ะ ะตะบะปะฐะผะฐ" "abc" "60"
5+
ca_gag_add_reason "ะะตะฐะดะตะบะฒะฐั‚ะฝะพะต ะฟะพะฒะตะดะตะฝะธะต" "abc" "1440"
56

67
ca_gag_times "1, 5, 30, 60, 1440, 10080"

โ€Žcstrike/addons/amxmodx/scripting/CA_Gag.sma

+17-16
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ public plugin_precache() {
4646
register_dictionary("common.txt");
4747
register_dictionary("time.txt");
4848

49+
g_aReasons = ArrayCreate(gag_s);
50+
g_aGagTimes = ArrayCreate();
51+
4952
bind_pcvar_num(get_cvar_pointer("ca_log_type"), ca_log_type);
5053
hook_cvar_change(get_cvar_pointer("ca_log_level"), "Hook_CVar_LogLevel");
5154
GetLogsFilePath(g_sLogsFile, .sDir = LOG_DIR_NAME);
@@ -57,9 +60,6 @@ public plugin_precache() {
5760

5861
bind_pcvar_num(create_cvar("ca_gag_menu_type", "1"), ca_gag_menu_type);
5962

60-
g_aReasons = ArrayCreate(gag_s);
61-
g_aGagTimes = ArrayCreate();
62-
6363
register_srvcmd("ca_gag_add_reason", "SrvCmd_AddReason");
6464
register_srvcmd("ca_gag_show_templates", "SrvCmd_ShowTemplates"); // debug
6565
register_srvcmd("ca_gag_reload_config", "SrvCmd_ReloadConfig");
@@ -83,6 +83,9 @@ public plugin_init() {
8383
new sLogLevel[MAX_LOGLEVEL_LEN];
8484
get_cvar_string("ca_log_level", sLogLevel, charsmax(sLogLevel));
8585
ca_log_level = ParseLogLevel(sLogLevel);
86+
87+
_LoadConfig();
88+
_ParseTimes();
8689

8790
CA_Log(_Info, "[CA]: Gag initialized!")
8891
}
@@ -91,11 +94,6 @@ public Hook_CVar_LogLevel(pcvar, const old_value[], const new_value[]) {
9194
ca_log_level = ParseLogLevel(new_value);
9295
}
9396

94-
public OnConfigsExecuted() {
95-
_LoadConfig();
96-
_ParseTimes();
97-
}
98-
9997
public plugin_natives() {
10098
register_library("ChatAdditions_GAG_API");
10199
set_native_filter("native_filter");
@@ -520,13 +518,11 @@ public Menu_Handler_SelectReason(id, menu, item) {
520518
new aReason[gag_s];
521519
ArrayGetArray(g_aReasons, iReason, aReason);
522520

521+
// Get predefined reason params
523522
copy(g_aGags_AdminEditor[id][_Reason], charsmax(g_aGags_AdminEditor[][_Reason]), aReason[_Reason]);
524-
525-
// IF NEED OFC
523+
g_aGags_AdminEditor[id][_bitFlags] = aReason[_bitFlags];
526524
g_aGags_AdminEditor[id][_Time] = aReason[_Time];
527525

528-
// CA_Log("aReason[_Time]=%i, aReason[_Reason]=%s", aReason[_Time], aReason[_Reason])
529-
530526
if(ca_gag_menu_type == _MenuType_Custom) {
531527
Menu_Show_GagProperties(id);
532528
} else if(ca_gag_menu_type == _MenuType_Sequential) {
@@ -701,7 +697,7 @@ Get_GagStringReason(const id, const target) {
701697
public SrvCmd_AddReason() {
702698
enum any: args_s { arg0, arg1, arg2, arg3 };
703699

704-
new szArgs[args_s][32];
700+
new szArgs[args_s][256];
705701
for(new iArg = arg0; iArg < sizeof szArgs; iArg++)
706702
read_argv(iArg, szArgs[iArg], charsmax(szArgs[]));
707703

@@ -721,7 +717,7 @@ public SrvCmd_AddReason() {
721717
ArrayPushArray(g_aReasons, aReason);
722718
g_iArraySize_Reasons = ArraySize(g_aReasons);
723719

724-
CA_Log(_Warnings, "ADD: Reason[#%i]: '%s' (Flags:'%s', Time:'%i s.')",\
720+
CA_Log(_Debug, "ADD: Reason[#%i]: '%s' (Flags:'%s', Time:'%i s.')",\
725721
g_iArraySize_Reasons, aReason[_Reason], bits_to_flags(aReason[_bitFlags]), aReason[_Time]\
726722
)
727723
}
@@ -735,7 +731,7 @@ public SrvCmd_ShowTemplates() {
735731
new aReason[gag_s];
736732
ArrayGetArray(g_aReasons, i, aReason);
737733

738-
CA_Log(_Warnings, "Reason[#%i]: '%s' (Flags:'%s', Time:'%i')",\
734+
CA_Log(_Info, "Reason[#%i]: '%s' (Flags:'%s', Time:'%i')",\
739735
i, aReason[_Reason], bits_to_flags(aReason[_bitFlags]), aReason[_Time]\
740736
)
741737
}
@@ -761,7 +757,12 @@ public Hook_CVar_Times(pcvar, const old_value[], const new_value[]) {
761757
}
762758

763759
static _LoadConfig() {
764-
ArrayClear(g_aReasons);
760+
if(!g_aReasons) {
761+
ArrayCreate(g_aReasons);
762+
} else if(ArraySize(g_aReasons) > 0) {
763+
ArrayClear(g_aReasons);
764+
}
765+
765766
new sConfigsDir[PLATFORM_MAX_PATH];
766767
get_configsdir(sConfigsDir, charsmax(sConfigsDir));
767768
server_cmd("exec %s/ChatAdditions/gag_reasons.cfg", sConfigsDir);

โ€Žcstrike/addons/amxmodx/scripting/ChatAdditions_Core.sma

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,14 @@ public ClCmd_Hook_Say(id) {
5858
static retVal;
5959
ExecuteForward(g_pFwd_Client_Say, retVal, id);
6060

61-
return (retVal == CA_SUPERCEDE) ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
61+
return (retVal == CA_SUPERCEDE) ? PLUGIN_HANDLED_MAIN : PLUGIN_CONTINUE;
6262
}
6363

6464
public ClCmd_Hook_SayTeam(id) {
6565
static retVal;
6666
ExecuteForward(g_pFwd_Client_SayTeam, retVal, id);
6767

68-
return (retVal == CA_SUPERCEDE) ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
68+
return (retVal == CA_SUPERCEDE) ? PLUGIN_HANDLED_MAIN : PLUGIN_CONTINUE;
6969
}
7070

7171
public CSGameRules_CanPlayerHearPlayer(const listener, const sender) {

โ€Žpublish.sh

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#!/bin/bash
2+
3+
########################
4+
AMXX_SCRIPTING_PATH=""
5+
OUTPUT_DIR="_PUBLISH"
6+
RELEASE_NAME="ChatAdditions_publish"
7+
AMXMODX="1.9"
8+
########################
9+
COMPILER_PATH=".compiler"
10+
11+
if [ ! -d ${COMPILER_PATH} ]; then
12+
TEMPDIR="./.temp"
13+
14+
mkdir ${TEMPDIR}
15+
AMXX_FILENAME=$(curl https://www.amxmodx.org/amxxdrop/${AMXMODX}/amxmodx-latest-base-linux)
16+
curl -s https://www.amxmodx.org/amxxdrop/${AMXMODX}/${AMXX_FILENAME} | tar -xz -C ${TEMPDIR}
17+
18+
AMXX_FILENAME=$(curl https://www.amxmodx.org/amxxdrop/${AMXMODX}/amxmodx-latest-base-windows)
19+
curl https://www.amxmodx.org/amxxdrop/${AMXMODX}/${AMXX_FILENAME} -o amxmodx.zip
20+
unzip -o amxmodx.zip -d ${TEMPDIR}
21+
rm amxmodx.zip
22+
23+
curl -OL https://github.com/s1lentq/reapi/releases/download/5.19.0.211/reapi_5.19.0.211-dev.zip
24+
unzip -o reapi_*-dev.zip -d ${TEMPDIR}
25+
rm reapi_*-dev.zip
26+
27+
rm -rf ${TEMPDIR}/addons/amxmodx/scripting/testsuite/
28+
rm -rf ${TEMPDIR}/addons/amxmodx/scripting/*.sma
29+
rm -rf ${TEMPDIR}/addons/amxmodx/plugins/*.amxx
30+
31+
mkdir -p ${COMPILER_PATH}
32+
mv -f ${TEMPDIR}/addons/amxmodx/scripting/* ${COMPILER_PATH}
33+
34+
rm -rf ${TEMPDIR}
35+
36+
echo -e "\n=========================\n > Compiler ${AMXX_FILENAME} and ReAPI succefully downloaded!"
37+
else
38+
echo -e "\n=========================\n > Compiler found at: ${COMPILER_PATH} path"
39+
fi
40+
41+
AMXX_SCRIPTING_PATH=${COMPILER_PATH}
42+
amxxpc="${AMXX_SCRIPTING_PATH}/amxxpc"
43+
44+
case "$OSTYPE" in
45+
msys*) amxxpc="${amxxpc}.exe" ;;
46+
*) echo "unknown: $OSTYPE" ;;
47+
esac
48+
49+
function realpath {
50+
echo $(cd $(dirname $1); pwd)/$(basename $1);
51+
}
52+
amxxpc=$(realpath ${amxxpc})
53+
54+
# Create dir
55+
rm -rf ${OUTPUT_DIR} && mkdir ${OUTPUT_DIR}
56+
mkdir -p ${OUTPUT_DIR}/addons/amxmodx/plugins/
57+
58+
scripting_dir=${OUTPUT_DIR}/addons/amxmodx/scripting
59+
cp -rp cstrike/addons/amxmodx/* ${OUTPUT_DIR}/addons/amxmodx/
60+
cp -rp cstrike/addons/amxmodx/scripting/ ${scripting_dir}
61+
# cp -rp extra/* ${OUTPUT_DIR}
62+
63+
# Compile
64+
cd ${scripting_dir}
65+
echo " > Current dir=${scripting_dir}"
66+
echo " > amxxpc path=${amxxpc}"
67+
68+
find * -name "*.sma" \
69+
-exec echo -e "\n\n> Compile {} <" \;\
70+
-exec ${amxxpc} {} \
71+
-iinclude \
72+
-o../plugins/{} \
73+
\;
74+
75+
# Pack to release
76+
cd ../../../
77+
tar -czpf ${RELEASE_NAME}.tar.gz *

โ€Žpublish_prepare.sh

-51
This file was deleted.

0 commit comments

Comments
ย (0)