※筆者はQBCoreを使用しています、ESXについては存じ上げません。
今回は誤BAN対策と、誤BANが起きてしまったときの対応について書いていきます。
私が運営をしていて初めて起きた誤BANは、デフォルトで入っていた宝石強盗スクリプト(qb-jewelry)が原因でした。
宝石強盗を行っていた犯罪者たちが一斉にサーバーからBANされてしまいました。
qb-jewelry以外にもMODの中にはチーターやグリッチ対策用に
「とある条件が満ちた場合にプレイヤーをBANする」記述が書かれているものがあります。
当時の私は「えぇぇぇなんで!?BANなんかしてないよ!?!?」と大焦り….
スクリプトに自動BANの処理がされてるなんて思ってもいなかったですw
①怪しいリソースからbanに関する記述を探し、消す
qb-jewelryのスクリプトを見てみると、server/main.luaの中にこんな記述が↓↓
ちなみに、私はいつも怪しいと思ったリソースフォルダをVScodeで開き
左側の虫眼鏡マークで「ban」で調べて該当部分を発見しています。
※VScodeでなくても、Googleやメモ帳などでもCtrl+Fを押すと文字検索が出来ますよ!
私はプログラミングがあまり分からないので、
banって書いてあるからたぶんこれだ!!!!くらいの気持ちで発見しています。
とりあえずbanに関する記述がある部分を全てコメントアウトさせます。
luaのコメントアウトは「–(半角ハイフン2つ)」を付けるとできますよ!
※VSCodeやSublimeTextであれば「Ctrl+?」で自動的にその書式にあったコメントアウトが付きます。
BANに関する記述なんていらないじゃん!消しちゃおうよ!と思う気持ちもわかります。
でも、該当部分を完全に消してしまうと、それでプログラムが動かなくなったときに困るので
基本的に消したい部分はコメントアウトにしておくと安全です♫
コメントアウトとは?…プログラムにおいて、実行されないようメモ書きすること。
こんな感じ。
ちなみにプログラムによってコメントアウトの仕方は違うので、気になる方は調べてみてください。
例)HTML <!–コメントアウトはコレで挟む!手入力せずCtrl+?でも勝手に付くよ! –>
プログラムが勝手に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されてしまっている人の情報をいれます。
そうすることで、条件に合ったデータのみが削除可能です。
ちなみにHeidiSQLを使っている場合は、bansテーブルの中の行を右クリックで削除するだけ!!
上のINSERT文を見てみると、
bansに入っている情報は「name, license, discord, ip, reason, expire, bannedby」なので
delete from bans where license = “123456789”;
と入れれば、ライセンスが123456789の人がBANから削除されます。
ライセンスの番号は、txAdminの右側プレイヤーリストをクリックし
「IDs」を見ると書いてあります。