Skip to content
This repository was archived by the owner on Apr 30, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package world.arainu.core.metaverseplugin.listener;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import world.arainu.core.metaverseplugin.utils.ChatUtil;
import world.arainu.core.metaverseplugin.utils.sqlUtil;

import java.util.List;
import java.util.UUID;


/**
* Bukkitに元々あるホワリスのコマンドが実行されたらデータベース側でも処理を行うリスナ=
*
* @author JolTheGreat
*/

public class WhitelistCommandListener implements Listener {

/**
* コマンドをサーバー側が検知したときに初めて実行される関数
* /whitelist remove, /whitelist add と /whitelist list をデータベースから引っ張ってきて実現する
*
* @param event イベント
*/

@EventHandler
public void onCommandExecute(PlayerCommandPreprocessEvent event) {
String[] args = event.getMessage().split(" ");
String command = args[0];
Player caller = event.getPlayer();

if (command.equals("/whitelist") && args.length == 3) {
String operator = args[1];
UUID target = Bukkit.getOfflinePlayer(args[2]).getUniqueId();

if (!Bukkit.hasWhitelist()) {
ChatUtil.warning(caller, "ホワイトリストはオフになっていますが、データベースに情報を追加します。");
}

switch (operator) {
case "add" -> {
sqlUtil.addWhitelist(target);
ChatUtil.success(caller, "データベースにプレイヤーを追加しました。");
}

case "remove" -> {
sqlUtil.removeWhitelist(target);
ChatUtil.success(caller, "データベースからプレイヤーを取り除きました。");
}

case "list" -> {
ChatUtil.success(caller, "データベース上のホワリスにいるプレイヤーです:");
List<UUID> whitelist = sqlUtil.getWhitelist();

assert whitelist != null;
for (UUID uuid : whitelist) {
//プレイヤーを表示する際にうるさくならないようにplaysoundをfalseに
ChatUtil.success(caller, uuid.toString() + ", ", false);
}
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ public class WhitelistPlayerJoinListener implements Listener {

/**
* プレイヤーの参加を待つリスナー
*
* @param e イベント
*/

Expand All @@ -32,4 +31,4 @@ public void onPlayerJoin(PlayerJoinEvent e) {
}
}
}
}
}
28 changes: 28 additions & 0 deletions src/main/java/world/arainu/core/metaverseplugin/utils/sqlUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,34 @@ public static Integer getkickcount(UUID uuid){
}
}

/**
* データベース上のホワリスにプレイヤーを追加する関数
*
* @param uuid 文字通りUUID
*/

public static void addWhitelist(UUID uuid) {
try {
create_whitelist_table();
PreparedStatement ps = conn.prepareStatement("INSERT INTO whitelist (`uuid`) VALUES('" + uuid + "')");
ps.executeUpdate();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void removeWhitelist(UUID uuid) {
try {
create_whitelist_table();
PreparedStatement ps = conn.prepareStatement("DELETE FROM whitelist WHERE uuid LIKE '" + uuid + "'");
ps.executeUpdate();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

/**
* ホワリスを取得する関数
*
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ traptower:
y: 5
z: -36
discord:
warn_channel: 875995533821505567
warn_channel: 875995533821505567