diff --git a/core/command/CommandBanPlayer.java b/core/command/CommandBanPlayer.java index 5721fdde..c61b2f2c 100644 --- a/core/command/CommandBanPlayer.java +++ b/core/command/CommandBanPlayer.java @@ -1,6 +1,7 @@ package com.coloryr.allmusic.server.core.command; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.sql.Cache; import com.coloryr.allmusic.server.core.sql.DataSql; import java.util.ArrayList; @@ -24,7 +25,7 @@ public class CommandBanPlayer implements ICommand { List list = new ArrayList<>(); for (Object item : AllMusic.side.getPlayers()) { String name1 = AllMusic.side.getPlayerName(item); - if (name1 != null) { + if (name1 != null && !Cache.haveBan(name1)) { list.add(name1); } } diff --git a/core/command/CommandUnban.java b/core/command/CommandUnban.java index 743a6c78..a98219b4 100644 --- a/core/command/CommandUnban.java +++ b/core/command/CommandUnban.java @@ -1,13 +1,13 @@ package com.coloryr.allmusic.server.core.command; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.sql.Cache; import com.coloryr.allmusic.server.core.sql.DataSql; import com.coloryr.allmusic.server.core.utils.Function; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; public class CommandUnban extends ACommand { @Override @@ -27,7 +27,7 @@ public class CommandUnban extends ACommand { @Override public List tab(Object player, String name, String[] args, int index) { if (args.length == index || (args.length == index + 1 )) { - return new ArrayList<>(DataSql.Cache.banMusic); + return new ArrayList<>(Cache.banMusic); } return Collections.emptyList(); diff --git a/core/command/CommandUnbanPlayer.java b/core/command/CommandUnbanPlayer.java index 2c7812e1..d0a01bfb 100644 --- a/core/command/CommandUnbanPlayer.java +++ b/core/command/CommandUnbanPlayer.java @@ -1,6 +1,7 @@ package com.coloryr.allmusic.server.core.command; import com.coloryr.allmusic.server.core.AllMusic; +import com.coloryr.allmusic.server.core.sql.Cache; import com.coloryr.allmusic.server.core.sql.DataSql; import java.util.ArrayList; @@ -21,7 +22,7 @@ public class CommandUnbanPlayer implements ICommand { @Override public List tab(Object player, String name, String[] args, int index) { if (args.length == index || (args.length == index + 1 )) { - return new ArrayList<>(DataSql.Cache.banPlayers); + return new ArrayList<>(Cache.banPlayers); } return Collections.emptyList(); diff --git a/core/sql/Cache.java b/core/sql/Cache.java new file mode 100644 index 00000000..81bd314f --- /dev/null +++ b/core/sql/Cache.java @@ -0,0 +1,28 @@ +package com.coloryr.allmusic.server.core.sql; + +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; + +public class Cache { + public static Set banPlayers = new CopyOnWriteArraySet<>(); + public static Set banMusic = new CopyOnWriteArraySet<>(); + + public static boolean haveBan(String player) { + return banPlayers.contains(player); + } + + public static void updateData() { + updatePlayer(); + updateMusic(); + } + + private static void updatePlayer() { + banPlayers.clear(); + banPlayers.addAll(DataSql.getBanPlayerList()); + } + + private static void updateMusic() { + banMusic.clear(); + banMusic.addAll(DataSql.getBanMusicList()); + } +} diff --git a/core/sql/DataSql.java b/core/sql/DataSql.java index 35827afd..f2a71a7b 100644 --- a/core/sql/DataSql.java +++ b/core/sql/DataSql.java @@ -11,8 +11,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.LinkedBlockingDeque; import java.util.concurrent.Semaphore; @@ -76,12 +74,6 @@ public class DataSql { " \"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n" + " \"sid\" TEXT(60)\n" + ");"; - - /** - * 缓存器 - */ - public static Cache cache = new Cache(); - /** * 数据库文件 */ @@ -111,7 +103,7 @@ public class DataSql { stat.execute(table5); stat.close(); - cache.updateData(); + Cache.updateData(); } catch (Exception e) { e.printStackTrace(); } @@ -430,10 +422,9 @@ public class DataSql { pstmt.setString(1, music); // 设置参数 pstmt.execute(); pstmt.close(); + Cache.banMusic.add(music); } catch (Exception e) { e.printStackTrace(); - } finally { - cache.updateMusic(); } }); } @@ -448,10 +439,9 @@ public class DataSql { pstmt.setString(1, music); // 设置参数 pstmt.execute(); pstmt.close(); + Cache.banMusic.remove(music); } catch (Exception e) { e.printStackTrace(); - } finally { - cache.updateMusic(); } }); } @@ -503,10 +493,9 @@ public class DataSql { Statement stat = connection.createStatement(); stat.execute("DELETE FROM allmusic_banlist"); stat.close(); + Cache.banMusic.clear(); } catch (Exception e) { e.printStackTrace(); - } finally { - cache.updateMusic(); } }); } @@ -522,10 +511,9 @@ public class DataSql { pstmt.setString(1, player1); // 设置参数 pstmt.execute(); pstmt.close(); + Cache.banPlayers.add(player); } catch (Exception e) { e.printStackTrace(); - } finally { - cache.updatePlayer(); } }); } @@ -541,10 +529,9 @@ public class DataSql { pstmt.setString(1, player1); // 设置参数 pstmt.execute(); pstmt.close(); + Cache.banPlayers.remove(player); } catch (Exception e) { e.printStackTrace(); - } finally { - cache.updatePlayer(); } }); } @@ -594,10 +581,9 @@ public class DataSql { Statement stat = connection.createStatement(); stat.execute("DELETE FROM allmusic_banlist"); stat.close(); + Cache.banPlayers.clear(); } catch (Exception e) { e.printStackTrace(); - } finally { - cache.updatePlayer(); } }); } @@ -766,25 +752,4 @@ public class DataSql { } } } - - public static class Cache{ - public static CopyOnWriteArraySet banPlayers = new CopyOnWriteArraySet<>(); - public static CopyOnWriteArraySet banMusic = new CopyOnWriteArraySet<>(); - - - public void updateData(){ - updatePlayer(); - updateMusic(); - } - - public void updatePlayer(){ - banPlayers.clear(); - banPlayers.addAll(getBanPlayerList()); - } - - public void updateMusic(){ - banMusic.clear(); - banMusic.addAll(getBanMusicList()); - } - } }