誤BANについて
※筆者はQBCoreを使用しています、ESXについては存じ上げません。
今回は誤BAN対策と、誤BANが起きてしまったときの
対応について書いていきます。
私が運営をしていて初めて起きた誤BANは、QBの宝石強盗スクリプト(qb-jewelry)が原因でした。
宝石強盗を行っていた犯罪者たちが一斉にサーバーからBANされてしまいました。
qb-jewelry以外にもMODの中にはチーターやグリッチ対策用に
「とある条件が満ちた場合にプレイヤーをBANする」記述が書かれているものがあります。
①怪しいリソースからbanに関する記述を探し、消す
qb-jewelryのスクリプトを見てみると、server/main.luaの中にこんな記述が↓↓
ちなみに、私はいつも怪しいと思ったリソースフォルダをVScodeで開き
左側の虫眼鏡マークで「ban」で調べて該当部分を発見しています。
プログラミングがあまり分からないので、
banって書いてあるからたぶんこれだ!!!!くらいの気持ちで発見しています。
とりあえずbanに関する記述がある部分を全てコメントアウトさせます。
luaのコメントアウトは「–(半角ハイフン2つ)」を付けるとできますよ!
該当部分を消してしまうと、それでプログラムが動かなくなったときに困るので
基本的に消したい部分はコメントアウトにしておくと安全です。
コメントアウトとは?…プログラムにおいて、実行されないようメモ書きすること。
こんな感じ。
ちなみにプログラムによってコメントアウトの仕方は違うので、調べてみてください。
プログラムが勝手にBANしてしまう記述が消せたらリソースを再起動します。
これで今後そのリソースによって誤BANされることはないでしょう。
②BANの解除方法
さて、次はすでに誤BANされてしまった方のBAN解除方法です。
上のプログラムを見ると、
MySQL.insert(’INSERT INTO bans(name,license,discord,ip,reason,expire,bannedby)とありますね。
つまり、データベースのbansテーブルにBANされた方の情報が入ってしまっているということです。
そのためデータベースのbansテーブルの中から該当人物の記述を消せば、完了です。
ちなみに、bansテーブルの中身を消すためのSQLは
delete from bans where [条件];
です。
[条件]には、BANされてしまっている人の情報をいれます。
そうすることで、条件に合ったデータのみが削除可能です。
上のINSERT文を見てみると、
bansに入っている情報は「name, license, discord, ip, reason, expire, bannedby」なので
delete from bans where license = “123456789”;
と入れれば、ライセンスが123456789の人がBANから削除されます。
ライセンスの番号は、txAdminの右側プレイヤーリストをクリックし
「IDs」を見ると書いてあります。