summaryrefslogtreecommitdiff
path: root/src/map/tmw.c
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2009-08-16 11:07:10 -0600
committerJared Adams <jaxad0127@gmail.com>2009-08-16 11:07:10 -0600
commitd54b91582b6f8ba1a2c26411dd122d80930f3b02 (patch)
treecc0a05ac68576900492611274b0ea77ad39718e8 /src/map/tmw.c
parent4fcb38d69d1b61cc79b6b9af06918e5c228b242b (diff)
downloadtmwa-d54b91582b6f8ba1a2c26411dd122d80930f3b02.tar.gz
tmwa-d54b91582b6f8ba1a2c26411dd122d80930f3b02.tar.bz2
tmwa-d54b91582b6f8ba1a2c26411dd122d80930f3b02.tar.xz
tmwa-d54b91582b6f8ba1a2c26411dd122d80930f3b02.zip
Adjust auto ban code and add sit spam handling
All three ban types can now either ban or just ingore new packets. Trade and sit spam default to ignore. Chat spam defaults to 1hr ban.
Diffstat (limited to 'src/map/tmw.c')
-rw-r--r--src/map/tmw.c43
1 files changed, 41 insertions, 2 deletions
diff --git a/src/map/tmw.c b/src/map/tmw.c
index 5d4c991..2331a23 100644
--- a/src/map/tmw.c
+++ b/src/map/tmw.c
@@ -64,15 +64,17 @@ int tmw_CheckChatSpam(struct map_session_data *sd, char* message) {
if (sd->chat_lines_in >= battle_config.chat_spam_flood) {
sd->chat_lines_in = 0;
- tmw_GmHackMsg("Spam detected from character '%s' (account: %d)", sd->status.name, sd->status.account_id);
if (battle_config.chat_spam_ban > 0) {
+ tmw_GmHackMsg("Spam detected from character '%s' (account: %d)", sd->status.name, sd->status.account_id);
clif_displaymessage(sd->fd, "You have been banned for spamming. Please do not spam.");
tmw_GmHackMsg("This player has been banned for %d hour(s).", battle_config.chat_spam_ban);
chrif_char_ask_name(-1, sd->status.name, 2, 0, 0, 0, battle_config.chat_spam_ban, 0, 0); // type: 2 - ban (year, month, day, hour, minute, second)
clif_setwaitclose(sd->fd);
}
+
+ return 1;
}
if (battle_config.chat_spam_ban && sd->chat_lines_in >= battle_config.chat_spam_warn) {
@@ -132,15 +134,17 @@ int tmw_CheckTradeSpam(struct map_session_data *sd) {
if (sd->trades_in >= battle_config.trade_spam_flood) {
sd->trades_in = 0;
- tmw_GmHackMsg("Trade spam detected from character '%s' (account: %d)", sd->status.name, sd->status.account_id);
if (battle_config.trade_spam_ban > 0) {
+ tmw_GmHackMsg("Trade spam detected from character '%s' (account: %d)", sd->status.name, sd->status.account_id);
clif_displaymessage(sd->fd, "You have been banned for trade spamming. Please do not trade spam.");
tmw_GmHackMsg("This player has been banned for %d hour(s).", battle_config.trade_spam_ban);
chrif_char_ask_name(-1, sd->status.name, 2, 0, 0, 0, battle_config.trade_spam_ban, 0, 0); // type: 2 - ban (year, month, day, hour, minute, second)
clif_setwaitclose(sd->fd);
}
+
+ return 1;
}
if (battle_config.trade_spam_ban && sd->trades_in >= battle_config.trade_spam_warn) {
@@ -149,3 +153,38 @@ int tmw_CheckTradeSpam(struct map_session_data *sd) {
return 0;
}
+
+int tmw_CheckSitSpam(struct map_session_data *sd) {
+ nullpo_retr(1, sd);
+ time_t now = time(NULL);
+
+ if (pc_isGM(sd)) return 0;
+
+ if (now > sd->sit_reset_due) {
+ sd->sit_reset_due = now + battle_config.sit_spam_threshold;
+ sd->sits_in = 0;
+ }
+
+ sd->sits_in++;
+
+ if (sd->sits_in >= battle_config.sit_spam_flood) {
+ sd->sits_in = 0;
+
+ if (battle_config.sit_spam_ban > 0) {
+ tmw_GmHackMsg("Sit spam detected from character '%s' (account: %d)", sd->status.name, sd->status.account_id);
+ clif_displaymessage(sd->fd, "You have been banned for sit spamming. Please do not sit spam.");
+ tmw_GmHackMsg("This player has been banned for %d hour(s).", battle_config.sit_spam_ban);
+
+ chrif_char_ask_name(-1, sd->status.name, 2, 0, 0, 0, battle_config.sit_spam_ban, 0, 0); // type: 2 - ban (year, month, day, hour, minute, second)
+ clif_setwaitclose(sd->fd);
+ }
+
+ return 1;
+ }
+
+ if (battle_config.sit_spam_ban && sd->sits_in >= battle_config.sit_spam_warn) {
+ clif_displaymessage(sd->fd, "WARNING : You are about to be automaticly banned for sit spam!");
+ }
+
+ return 0;
+}