RuneHive-Game
Loading...
Searching...
No Matches
BannedPlayers.java
Go to the documentation of this file.
1package com.runehive.game.world.entity.mob.player;
2
3import com.runehive.game.task.Task;
4import com.runehive.game.world.World;
5
6import java.io.IOException;
7import java.nio.charset.Charset;
8import java.nio.file.Files;
9import java.nio.file.Paths;
10import java.util.ArrayList;
11import java.util.List;
12
13public class BannedPlayers {
14
15 private static final String BAN_LIST_PATH = "./data/bans.txt";
16
17 public static final List<String> bans = new ArrayList<>();
18
19 public static void load() {
20 if (!bans.isEmpty()) {
21 bans.clear();
22 }
23 try {
24 bans.addAll(Files.readAllLines(Paths.get(BAN_LIST_PATH)));
25 } catch (IOException e) {
26 e.printStackTrace();
27 }
28 }
29
30 public static void ban(String player) {
31 player = player.toLowerCase();
32 if (bans.contains(player)) {
33 return;
34 }
35 bans.add(player);
36 writeBans();
37 }
38
39 public static boolean unban(String player) {
40 player = player.toLowerCase();
41 if (!bans.remove(player)) {
42 return false;
43 }
44 writeBans();
45 return true;
46 }
47
48 private static void writeBans() {
49 World.schedule(new Task(1) {
50 @Override
51 public void execute() {
52 try {
53 Files.write(Paths.get(BAN_LIST_PATH), bans, Charset.defaultCharset());
54 cancel();
55 } catch (IOException e) {
56 e.printStackTrace();
57 }
58 }
59 });
60 }
61}
A game representing a cyclic unit of work.
Definition Task.java:11
Represents the game world.
Definition World.java:46
static void schedule(Task task)
Submits a new event.
Definition World.java:247