CoreProtect の変更点


#author("2021-08-21T15:19:43+09:00","default:gorogoro","gorogoro")
#author("2021-08-21T16:35:17+09:00","default:gorogoro","gorogoro")
*一般解放コマンド [#s14cbd4f]
&br;
調査モードを有効/無効にする。
 /co inspect
 /co i
-パンチしたブロックや空間の操作ログを確認できます。~
-右クリック:対象ブロックのログを確認する。
-左クリック:対象空間のログを確認する。
-調査モード中は、ブロックの設置や破壊は行えません。~
&br;
&br;
*運営用コマンド [#u696c41f]
&br;
&size(20){&color(black,yellow){''釈放やunbanの可能性もあるため、基本的には明らかな荒らしにのみ適用して下さい。 ''};};~
&size(20){&color(black,yellow){'' もしくは、適用範囲を限定して実行して下さい。''};};~
&br;
&br;
自身から半径5ブロックの操作ログを検索する。
 /co near
&br;
&br;
指定した[[パラメータ>#hc6dcd2c]]に該当する操作ログを検索する。
 /co lookup [パラメータ]
 /co l
&br;
&br;
指定した[[パラメータ>#hc6dcd2c]]に該当する操作ログの変更をロールバックする。
 /co rollback [パラメータ]
 /co rb
&br;
&br;
指定した[[パラメータ>#hc6dcd2c]]に該当する操作ログにロールバックを取り消す。
 /co restore [パラメータ]
 /co rs
&br;
&br;
直前のロールバック/リストアを取り消す。
 /co undo
&br;
&br;
*パラメータ [#hc6dcd2c]
&br;
|CENTER:~パラメータ|CENTER:~意味|CENTER:~説明|CENTER:~例|
|u|user|ユーザー名|u:kubotan、u:#enderman、u:#creeper、u:#lava、u:#TNT...など|
|r|radius|半径、ワールド等|r:10(半径10ブロック)、r:#world、r:#WE(ワールドエディット選択範囲)...など|
|t|time|時間|t:1s(1秒)、t:1m(1分)、t:1h(1時間)、t:1d(1日)、t:1w(1週間)...など|
|a|action|検索する行動の種類|a:[[行動リスト>#j908a29d]]|
|b|blocks|検索するブロックID|b:[[IDリスト>https://minecraft-ids.grahamedgecombe.com/]]|
|e|exclude|除外するブロックID|e:[[IDリスト>https://minecraft-ids.grahamedgecombe.com/]]|
&br;
-#:ハッシュタグ~
#count   検索に該当するログの数を表示
#preview  ロールバック/リストアをプレビュー
#verbose  ロールバック/リストア中の追加情報を表示
#silent   ロールバック/リストア中の追加情報を非表示
&br;
&br;
*行動 [#j908a29d]
&br;
|CENTER:~行動|CENTER:~説明|
|a:block|ブロックの設置/破壊|
|a:+block|ブロックの設置|
|a:-block|ブロックの破壊|
|a:chat|チャット|
|a:click|クリック(ドアの開閉やレバーなど)|
|a:command|コマンド|
|a:container|チェストなどからのアイテムの取り出しや収納|
|a:+container|チェストなどからのアイテムの収納|
|a:-container|チェストなどからのアイテムの取り出し|
|a:inventory|items dropped or picked up by players|
|a:+inventory|items picked up by players|
|a:-inventory|items dropped by players|
|a:item|items dropped, picked up, taken from, or put in chests|
|a:+item|items picked up or put in chests|
|a:-item|items dropped or taken from chests|
|a:kill|mob/動物の殺害|
|a:session|プレイヤーのログイン/ログアウト|
|a:+session|プレイヤーのログイン|
|a:-session|プレイヤーのログアウト|
|a:sign|messages written on signs|
|a:username|ユーザーネームの変更|
&br;
*使用例 [#z43060fd]
&br;
指定した範囲をロールバックします。
 /co rollback u:[playername] t:[timerange] r:[placerange]
&br;
&br;
ワールド全体に対して、プレイヤー「xX_orewa_arasi_da_Xx」の所業を1日前に戻します。
 /co rollback u:xX_orewa_arasi_da_Xx t:1d r:#global
&br;
&br;
半径10ブロックに対して、プレイヤー「xX_orewa_arasi_da_Xx」の所業を1分前に戻します。
 /co rollback u:xX_orewa_arasi_da_Xx t:1m r:10
&br;
&br;
ロールバックの取消し
 /co restore u:xX_orewa_arasi_da_Xx t:1m r:10
&br;
&br;
kubotanの100日前までのworldでのかぼちゃの収穫ログを表示
 /co lookup u:kubotan t:100d r:#world a:-block b:pumpkin
&br;
- sqlite3で直接見る

 SELECT
   DATETIME(time, 'unixepoch')
   DATETIME(co_command.time, 'unixepoch', '+9 hours')
   , * 
 FROM
   co_command 
 WHERE
   user = (SELECT id FROM co_user WHERE user = 'kubotan');
   co_command.user = (SELECT co_user.id FROM co_user WHERE co_user.user = 'kubotan');

 SELECT
   DATETIME(co_block.time, 'unixepoch')
   DATETIME(co_block.time, 'unixepoch', '+9 hours')
   , co_world.world
   , x
   , y
   , z
   , co_block.x
   , co_block.y
   , co_block.z
   , CASE
     WHEN action = 1
     WHEN co_block.action = 1
       THEN 'placed'
     WHEN action = 0
     WHEN co_block.action = 0
       THEN 'broke'
     ELSE action
     ELSE co_block.action
     END
 FROM
   co_block
   , co_world
   , co_material_map
 WHERE
   co_block.user = (
     SELECT
       co_user.id
     FROM
       co_user
     WHERE
       co_user.user = 'kubotan'
   )
   AND co_block.type = co_material_map.id
   AND co_block.wid = co_world.id
   AND STRFTIME('%s', '2021-08-17 00:00:00') <= co_container.time 
   AND co_container.time <= STRFTIME('%s', '2021-08-17 23:59:59')
   AND STRFTIME('%s', '2021-08-17 00:00:00', 'utc') <= co_container.time 
   AND co_container.time <= STRFTIME('%s', '2021-08-17 23:59:59', 'utc')
 ORDER BY
   time DESC;
   co_block.time DESC;

 SELECT
   DATETIME(co_block.time, 'unixepoch')
   DATETIME(co_block.time, 'unixepoch', '+9 hours')
   , co_world.world
   , x
   , y
   , z
   , co_block.x
   , co_block.y
   , co_block.z
   , CASE
     WHEN action = 1
     WHEN co_block.action = 1
       THEN 'placed'
     WHEN action = 0
     WHEN co_block.action = 0
       THEN 'broke'
     ELSE action
     ELSE co_block.action
     END
 FROM
   co_block
   , co_world
 WHERE
   co_block.user = (
     SELECT
       co_user.id
     FROM
       co_user
     WHERE
       co_user.user = 'kubotan'
   )
   AND co_block.type = (
     SELECT
       co_material_map.id
     FROM
       co_material_map
     WHERE
       co_material_map.material = 'minecraft:item_frame'
   )
   AND co_block.wid = co_world.id
 ORDER BY
   time DESC;
   co_block.time DESC;

 SELECT
   DATETIME(co_container.time, 'unixepoch')
   DATETIME(co_container.time, 'unixepoch', '+9 hours')
   , co_world.world
   , x
   , y
   , z
   , co_container.x
   , co_container.y
   , co_container.z
   , CASE
     WHEN action = 1
     WHEN co_container.action = 1
       THEN 'added'
     WHEN action = 0
     WHEN co_container.action = 0
       THEN 'removed'
     ELSE action
     ELSE co_container.action
     END
   , co_material_map.material
   , co_container.amount
 FROM
   co_container
   , co_world
   , co_material_map
 WHERE
   co_container.user = (
     SELECT
       co_user.id
     FROM
       co_user
     WHERE
       co_user.user = 'kubotan'
   )
   AND co_container.type = co_material_map.id
   AND co_container.wid = co_world.id
   AND STRFTIME('%s', '2021-08-17 00:00:00') <= co_container.time 
   AND co_container.time <= STRFTIME('%s', '2021-08-17 23:59:59')
   AND STRFTIME('%s', '2021-08-17 00:00:00', 'utc') <= co_container.time 
   AND co_container.time <= STRFTIME('%s', '2021-08-17 23:59:59', 'utc')
 ORDER BY
   time DESC;
   co_container.time DESC;

 SELECT
   DATETIME(co_item.time, 'unixepoch', '+9 hours')
   , co_world.world
   , co_item.x
   , co_item.y
   , co_item.z
   , co_user.user
   , CASE
     WHEN co_item.action = 3
       THEN 'picked'
     WHEN co_item.action = 2
       THEN 'dropped'
     ELSE co_item.action
     END
   , co_material_map.material
   , co_item.amount
 FROM
   co_user
   , co_item
   , co_world
   , co_material_map
 WHERE
   co_item.user IN (
     SELECT
       co_user.id
     FROM
       co_user
     WHERE
       co_user.user = 'kubotan'
     OR
       co_user.user = 'hogehoge'
   )
   AND co_item.type = co_material_map.id
   AND co_material_map.material = 'minecraft:rose_bush'
   AND co_item.wid = co_world.id
   AND STRFTIME('%s', '2021-08-17 15:00:00', 'utc') <= co_item.time
   AND co_item.time <= STRFTIME('%s', '2021-08-17 17:00:00', 'utc')
   AND co_item.user = co_user.id
 ORDER BY
   co_item.time DESC;