Upgrade module (#124)

This commit is contained in:
Walter Pagani
2023-08-09 08:55:40 -03:00
committed by GitHub
parent 317c26d170
commit d2b5e8d6ea
23 changed files with 223 additions and 181 deletions

8
.editorconfig Normal file
View File

@@ -0,0 +1,8 @@
[*]
charset = utf-8
indent_style = space
indent_size = 4
tab_width = 4
insert_final_newline = true
trim_trailing_whitespace = true
max_line_length = 80

105
.gitattributes vendored Normal file
View File

@@ -0,0 +1,105 @@
## AUTO-DETECT
## Handle line endings automatically for files detected as
## text and leave all files detected as binary untouched.
## This will handle all files NOT defined below.
* text=auto eol=lf
# Text
*.conf text
*.conf.dist text
*.cmake text
## Scripts
*.sh text
*.fish text
*.lua text
## SQL
*.sql text
## C++
*.c text
*.cc text
*.cxx text
*.cpp text
*.c++ text
*.hpp text
*.h text
*.h++ text
*.hh text
## For documentation
# Documents
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
## DOCUMENTATION
*.markdown text
*.md text
*.mdwn text
*.mdown text
*.mkd text
*.mkdn text
*.mdtxt text
*.mdtext text
*.txt text
AUTHORS text
CHANGELOG text
CHANGES text
CONTRIBUTING text
COPYING text
copyright text
*COPYRIGHT* text
INSTALL text
license text
LICENSE text
NEWS text
readme text
*README* text
TODO text
## GRAPHICS
*.ai binary
*.bmp binary
*.eps binary
*.gif binary
*.ico binary
*.jng binary
*.jp2 binary
*.jpg binary
*.jpeg binary
*.jpx binary
*.jxr binary
*.pdf binary
*.png binary
*.psb binary
*.psd binary
*.svg text
*.svgz binary
*.tif binary
*.tiff binary
*.wbmp binary
*.webp binary
## ARCHIVES
*.7z binary
*.gz binary
*.jar binary
*.rar binary
*.tar binary
*.zip binary
## EXECUTABLES
*.exe binary
*.pyc binary

4
.github/README.md vendored
View File

@@ -4,7 +4,9 @@
## Anticheat Module
- Latest build status with AzerothCore: [![Build Status](https://github.com/azerothcore/mod-anticheat/workflows/core-build/badge.svg?branch=master&event=push)](https://github.com/azerothcore/mod-anticheat)
- Latest build status with AzerothCore:
[![Build Status](https://github.com/azerothcore/mod-anticheat/workflows/core-build/badge.svg?branch=master&event=push)](https://github.com/azerothcore/mod-anticheat)
This is a port of the PassiveAnticheat Script from lordpsyan's repo to [AzerothCore](http://www.azerothcore.org)

19
.github/workflows/core_codestyle.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
name: Codestyle Checks
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
check-codestyle:
strategy:
fail-fast: false
runs-on: ubuntu-latest
name: Check Codestyling
steps:
- uses: actions/checkout@v2
- name: Check Codestyling
run: source ./apps/ci/ci-codestyle.sh

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2022 AzerothCore
Copyright (c) 2023 AzerothCore
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

0
apps/.gitkeep Normal file
View File

0
apps/ci/.gitkeep Normal file
View File

40
apps/ci/ci-codestyle.sh Normal file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
set -e
echo "Codestyle check script:"
echo
declare -A singleLineRegexChecks=(
["LOG_.+GetCounter"]="Use ObjectGuid::ToString().c_str() method instead of ObjectGuid::GetCounter() when logging. Check the lines above"
["[[:blank:]]$"]="Remove whitespace at the end of the lines above"
["\t"]="Replace tabs with 4 spaces in the lines above"
)
for check in ${!singleLineRegexChecks[@]}; do
echo " Checking RegEx: '${check}'"
if grep -P -r -I -n ${check} src; then
echo
echo "${singleLineRegexChecks[$check]}"
exit 1
fi
done
declare -A multiLineRegexChecks=(
["LOG_[^;]+GetCounter"]="Use ObjectGuid::ToString().c_str() method instead of ObjectGuid::GetCounter() when logging. Check the lines above"
["\n\n\n"]="Multiple blank lines detected, keep only one. Check the files above"
)
for check in ${!multiLineRegexChecks[@]}; do
echo " Checking RegEx: '${check}'"
if grep -Pzo -r -I ${check} src; then
echo
echo
echo "${multiLineRegexChecks[$check]}"
exit 1
fi
done
echo
echo "Everything looks good"

0
conf/.gitkeep Normal file
View File

View File

@@ -1,12 +0,0 @@
#!/usr/bin/env bash
## CUSTOM SQL - Important file used by the db_assembler.sh
## Keep only the required variables (base sql files or updates, depending on the DB)
## BASE SQL
DB_CHARACTERS_CUSTOM_PATHS+=(
"$MOD_ANTICHEAT_ROOT/sql/characters/base/"
)

0
data/.gitkeep Normal file
View File

View File

@@ -0,0 +1,47 @@
DROP TABLE IF EXISTS `daily_players_reports`;
CREATE TABLE IF NOT EXISTS `daily_players_reports` (
`guid` int(10) unsigned NOT NULL DEFAULT '0',
`creation_time` int(10) unsigned NOT NULL DEFAULT '0',
`average` float NOT NULL DEFAULT '0',
`total_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`speed_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`fly_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`jump_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`waterwalk_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`teleportplane_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`climb_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`teleport_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`ignorecontrol_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`zaxis_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`antiswim_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`gravity_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`antiknockback_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`no_fall_damage_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`op_ack_hack_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`counter_measures_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`guid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `players_reports_status`;
CREATE TABLE IF NOT EXISTS `players_reports_status` (
`guid` int(10) unsigned NOT NULL DEFAULT '0',
`creation_time` int(10) unsigned NOT NULL DEFAULT '0',
`average` float NOT NULL DEFAULT '0',
`total_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`speed_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`fly_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`jump_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`waterwalk_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`teleportplane_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`climb_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`teleport_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`ignorecontrol_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`zaxis_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`antiswim_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`gravity_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`antiknockback_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`no_fall_damage_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`op_ack_hack_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
`counter_measures_reports` bigint(20) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`guid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

View File

View File

@@ -1,43 +0,0 @@
DROP TABLE IF EXISTS `daily_players_reports`;
CREATE TABLE IF NOT EXISTS `daily_players_reports` (
`guid` int unsigned NOT NULL DEFAULT 0,
`creation_time` int unsigned NOT NULL DEFAULT 0,
`average` float NOT NULL DEFAULT 0,
`total_reports` bigint unsigned NOT NULL DEFAULT 0,
`speed_reports` bigint unsigned NOT NULL DEFAULT 0,
`fly_reports` bigint unsigned NOT NULL DEFAULT 0,
`jump_reports` bigint unsigned NOT NULL DEFAULT 0,
`waterwalk_reports` bigint unsigned NOT NULL DEFAULT 0,
`teleportplane_reports` bigint unsigned NOT NULL DEFAULT 0,
`climb_reports` bigint unsigned NOT NULL DEFAULT 0,
`teleport_reports` bigint unsigned NOT NULL DEFAULT 0,
`ignorecontrol_reports` bigint unsigned NOT NULL DEFAULT 0,
`zaxis_reports` bigint unsigned NOT NULL DEFAULT 0,
`antiswim_reports` bigint unsigned NOT NULL DEFAULT 0,
`gravity_reports` bigint unsigned NOT NULL DEFAULT 0,
`antiknockback_reports` bigint unsigned NOT NULL DEFAULT 0,
`no_fall_damage_reports` bigint unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (`guid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `players_reports_status`;
CREATE TABLE IF NOT EXISTS `players_reports_status` (
`guid` int unsigned NOT NULL DEFAULT 0,
`creation_time` int unsigned NOT NULL DEFAULT 0,
`average` float NOT NULL DEFAULT 0,
`total_reports` bigint unsigned NOT NULL DEFAULT 0,
`speed_reports` bigint unsigned NOT NULL DEFAULT 0,
`fly_reports` bigint unsigned NOT NULL DEFAULT 0,
`jump_reports` bigint unsigned NOT NULL DEFAULT 0,
`waterwalk_reports` bigint unsigned NOT NULL DEFAULT 0,
`teleportplane_reports` bigint unsigned NOT NULL DEFAULT 0,
`climb_reports` bigint unsigned NOT NULL DEFAULT 0,
`teleport_reports` bigint unsigned NOT NULL DEFAULT 0,
`ignorecontrol_reports` bigint unsigned NOT NULL DEFAULT 0,
`zaxis_reports` bigint unsigned NOT NULL DEFAULT 0,
`antiswim_reports` bigint unsigned NOT NULL DEFAULT 0,
`gravity_reports` bigint unsigned NOT NULL DEFAULT 0,
`antiknockback_reports` bigint unsigned NOT NULL DEFAULT 0,
`no_fall_damage_reports` bigint unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (`guid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

View File

@@ -1,38 +0,0 @@
-- run on character db
DROP PROCEDURE IF EXISTS `updatemodanticheatdb`;
DELIMITER //
CREATE PROCEDURE updatemodanticheatdb()
proc:BEGIN
SELECT COUNT(*) INTO @COLEXISTS
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'daily_players_reports' AND COLUMN_NAME = 'no_fall_damage_reports';
IF @COLEXISTS = 1 THEN LEAVE proc; END IF;
START TRANSACTION;
ALTER TABLE `daily_players_reports`
ADD COLUMN `no_fall_damage_reports` BIGINT UNSIGNED NOT NULL DEFAULT 0 AFTER `antiknockback_reports`;
END //
DELIMITER ;
CALL updatemodanticheatdb();
DROP PROCEDURE IF EXISTS `updatemodanticheatdb`;
DELIMITER //
CREATE PROCEDURE updatemodanticheatdb()
proc:BEGIN
SELECT COUNT(*) INTO @COLEXISTS
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'players_reports_status' AND COLUMN_NAME = 'no_fall_damage_reports';
IF @COLEXISTS = 1 THEN LEAVE proc; END IF;
START TRANSACTION;
ALTER TABLE `players_reports_status`
ADD COLUMN `no_fall_damage_reports` BIGINT UNSIGNED NOT NULL DEFAULT 0 AFTER `antiknockback_reports`;
END //
DELIMITER ;
CALL updatemodanticheatdb();
DROP PROCEDURE IF EXISTS `updatemodanticheatdb`;

View File

@@ -1,38 +0,0 @@
-- run on Characters DB
DROP PROCEDURE IF EXISTS `updatemodanticheatdb`;
DELIMITER //
CREATE PROCEDURE updatemodanticheatdb()
proc:BEGIN
SELECT COUNT(*) INTO @COLEXISTS
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'daily_players_reports' AND COLUMN_NAME = 'op_ack_hack_reports';
IF @COLEXISTS = 1 THEN LEAVE proc; END IF;
START TRANSACTION;
ALTER TABLE `daily_players_reports`
ADD COLUMN `op_ack_hack_reports` BIGINT UNSIGNED NOT NULL DEFAULT 0 AFTER `no_fall_damage_reports`;
END //
DELIMITER ;
CALL updatemodanticheatdb();
DROP PROCEDURE IF EXISTS `updatemodanticheatdb`;
DELIMITER //
CREATE PROCEDURE updatemodanticheatdb()
proc:BEGIN
SELECT COUNT(*) INTO @COLEXISTS
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'players_reports_status' AND COLUMN_NAME = 'op_ack_hack_reports';
IF @COLEXISTS = 1 THEN LEAVE proc; END IF;
START TRANSACTION;
ALTER TABLE `players_reports_status`
ADD COLUMN `op_ack_hack_reports` BIGINT UNSIGNED NOT NULL DEFAULT 0 AFTER `no_fall_damage_reports`;
END //
DELIMITER ;
CALL updatemodanticheatdb();
DROP PROCEDURE IF EXISTS `updatemodanticheatdb`;

View File

@@ -1,38 +0,0 @@
-- run on Characters DB
DROP PROCEDURE IF EXISTS `updatemodanticheatdb`;
DELIMITER //
CREATE PROCEDURE updatemodanticheatdb()
proc:BEGIN
SELECT COUNT(*) INTO @COLEXISTS
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'daily_players_reports' AND COLUMN_NAME = 'counter_measures_reports';
IF @COLEXISTS = 1 THEN LEAVE proc; END IF;
START TRANSACTION;
ALTER TABLE `daily_players_reports`
ADD COLUMN `counter_measures_reports` BIGINT UNSIGNED NOT NULL DEFAULT 0 AFTER `op_ack_hack_reports`;
END //
DELIMITER ;
CALL updatemodanticheatdb();
DROP PROCEDURE IF EXISTS `updatemodanticheatdb`;
DELIMITER //
CREATE PROCEDURE updatemodanticheatdb()
proc:BEGIN
SELECT COUNT(*) INTO @COLEXISTS
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'players_reports_status' AND COLUMN_NAME = 'counter_measures_reports';
IF @COLEXISTS = 1 THEN LEAVE proc; END IF;
START TRANSACTION;
ALTER TABLE `players_reports_status`
ADD COLUMN `counter_measures_reports` BIGINT UNSIGNED NOT NULL DEFAULT 0 AFTER `op_ack_hack_reports`;
END //
DELIMITER ;
CALL updatemodanticheatdb();
DROP PROCEDURE IF EXISTS `updatemodanticheatdb`;

View File

@@ -1,10 +0,0 @@
#!/usr/bin/env bash
## GETS THE CURRENT MODULE ROOT DIRECTORY
MOD_ANTICHEAT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )"
source "$MOD_ANTICHEAT_ROOT/conf/conf.sh.dist"
if [ -f "$MOD_ANTICHEAT_ROOT/conf/conf.sh" ]; then
source "$MOD_ANTICHEAT_ROOT/conf/conf.sh"
fi