Skip to content

Commit 398b3b5

Browse files
committed
temp commit
1 parent ca1cb19 commit 398b3b5

File tree

13 files changed

+179
-10
lines changed

13 files changed

+179
-10
lines changed

core/build.gradle.kts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
plugins {
2+
id("java")
3+
}
4+
5+
group = "be4rjp.sclat"
6+
version = "1.0-SNAPSHOT"
7+
8+
repositories {
9+
mavenCentral()
10+
}
11+
12+
dependencies {
13+
testImplementation(platform("org.junit:junit-bom:5.10.0"))
14+
testImplementation("org.junit.jupiter:junit-jupiter")
15+
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
16+
}
17+
18+
tasks.test {
19+
useJUnitPlatform()
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package be4rjp.sclat;
2+
3+
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
4+
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
5+
public class Main {
6+
public static void main(String[] args) {
7+
// TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the
8+
// highlighted text
9+
// to see how IntelliJ IDEA suggests fixing it.
10+
System.out.printf("Hello and welcome!");
11+
12+
for (int i = 1; i <= 5; i++) {
13+
// TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have
14+
// set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
15+
// for you, but you can always add more by pressing <shortcut
16+
// actionId="ToggleLineBreakpoint"/>.
17+
System.out.println("i = " + i);
18+
}
19+
}
20+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package be4rjp.sclat.match;
2+
3+
import org.bukkit.entity.Player;
4+
import org.jspecify.annotations.NullMarked;
5+
import org.slf4j.Logger;
6+
import org.slf4j.LoggerFactory;
7+
8+
import java.util.HashSet;
9+
import java.util.Set;
10+
import java.util.UUID;
11+
12+
/**
13+
* CAUTION: This class requires re-generate at start of every-match
14+
*/
15+
@NullMarked
16+
public class Match {
17+
protected final Logger logger;
18+
protected final HashSet<UUID> joinedPlayers = new HashSet<>();
19+
public Match() {
20+
logger = LoggerFactory.getLogger("SclatMatch");
21+
}
22+
23+
public void start() {
24+
logger.info("試合を開始します。");
25+
}
26+
27+
// There is no end function. Because game should be ended automatically.
28+
29+
/**
30+
* Get current match status
31+
*
32+
* @return current status
33+
*/
34+
public MatchStatus status() {
35+
return MatchStatus.WAITING;
36+
}
37+
38+
/**
39+
* On join handler
40+
*
41+
* @param player
42+
* target player
43+
*/
44+
public void onJoinPlayer(Player player) {
45+
// Todo: add join confirm menu for admin to check some abuse
46+
UUID playerUuid = player.getUniqueId();
47+
if (joinedPlayers.contains(playerUuid)) {
48+
logger.warn("プレイヤー {} は正常な退出処理を受けていません。", player.getName());
49+
return;
50+
}
51+
// Todo: do something
52+
53+
joinedPlayers.add(player.getUniqueId());
54+
}
55+
56+
/**
57+
* On leave handler
58+
*
59+
* @param player
60+
* target player
61+
*/
62+
public void onLeavePlayer(Player player) {
63+
UUID playerUuid = player.getUniqueId();
64+
if (!joinedPlayers.contains(playerUuid)) {
65+
// Todo: sometimes require change logger level to debug
66+
logger.info("プレイヤー {} は試合に参加していないため、退出処理がスキップされました。", player.getName());
67+
return;
68+
}
69+
// Todo: do something
70+
joinedPlayers.remove(playerUuid);
71+
}
72+
73+
public Set<UUID> joinedPlayers() {
74+
return (Set<UUID>) joinedPlayers.clone();
75+
}
76+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package be4rjp.sclat.match;
2+
3+
public enum MatchStatus {
4+
WAITING, RUNNING, PAUSING, ENDED
5+
}

settings.gradle.kts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,6 @@ rootProject.name = "Sclat"
22

33
include("plugin")
44

5-
include("nmswrap")
5+
include("nmswrap")
6+
include("core")
7+
include("api")

src/main/java/be4rjp/sclat/api/SclatUtil.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public static void restartServer() {
8484
sc.startClient();
8585

8686
for (Player player : Sclat.getPlugin().getServer().getOnlinePlayers()) {
87-
BungeeCordAPI.PlayerSendServer(player, "be4rjp/sclat");
87+
BungeeCordAPI.PlayerSendServer(player, "sclat");
8888
DataMgr.getPlayerData(player).setServerName("Sclat");
8989
}
9090
BukkitRunnable task = new BukkitRunnable() {
@@ -178,7 +178,7 @@ public static void sendSclatLobby(Player player) {
178178
@Override
179179
public void run() {
180180
try {
181-
BungeeCordAPI.PlayerSendServer(player, "be4rjp/sclat");
181+
BungeeCordAPI.PlayerSendServer(player, "sclat");
182182
DataMgr.getPlayerData(player).setServerName("Sclat");
183183
} catch (Exception e) {
184184
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package be4rjp.sclat.api.share;
2+
3+
import java.util.function.Consumer;
4+
5+
public interface CommandTransceiver {
6+
void send(String... args);
7+
void setOnReceive(Consumer<String[]> listener);
8+
9+
// 接続開始・終了
10+
void start();
11+
void stop();
12+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package be4rjp.sclat.api.share;
2+
3+
import java.io.PrintWriter;
4+
import java.util.function.Consumer;
5+
6+
public class SocketTransceiver implements CommandTransceiver {
7+
private final Thread receiveThread;
8+
private PrintWriter writer;
9+
private Consumer<String[]> messageListener;
10+
public SocketTransceiver() {
11+
receiveThread = new Thread(() -> {
12+
// try(BufferedReader reader = new BufferedReader())
13+
});
14+
}
15+
@Override
16+
public void send(String... args) {
17+
writer.println(String.join(" ", args));
18+
}
19+
20+
@Override
21+
public void setOnReceive(Consumer<String[]> listener) {
22+
this.messageListener = listener;
23+
}
24+
25+
@Override
26+
public void start() {
27+
receiveThread.start();
28+
}
29+
30+
@Override
31+
public void stop() {
32+
writer.close();
33+
}
34+
}

src/main/java/be4rjp/sclat/commands/SclatCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
import static be4rjp.sclat.Sclat.conf;
3333

34-
@CommandAlias("be4rjp/sclat")
34+
@CommandAlias("sclat")
3535
@CommandPermission("sclat.admin")
3636
public class SclatCommand extends BaseCommand {
3737
private final Sclat plugin;

src/main/java/be4rjp/sclat/gui/ClickListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public void onGUIClick(InventoryClickEvent event) {
154154
break;
155155
case "ロビーへ戻る / RETURN TO LOBBY" :
156156
if (Sclat.type != ServerType.LOBBY) {
157-
BungeeCordAPI.PlayerSendServer(player, "be4rjp/sclat");
157+
BungeeCordAPI.PlayerSendServer(player, "sclat");
158158
DataMgr.getPlayerData(player).setServerName("Sclat");
159159
} else {
160160
BungeeCordAPI.PlayerSendServer(player, "lobby");
@@ -660,7 +660,7 @@ public void onOpenMainMenu(PlayerInteractEvent event) {
660660
OpenGUI.SuperJumpGUI(player);
661661
break;
662662
case "§c§n右クリックで退出" :
663-
BungeeCordAPI.PlayerSendServer(player, "be4rjp/sclat");
663+
BungeeCordAPI.PlayerSendServer(player, "sclat");
664664
DataMgr.getPlayerData(player).setServerName("Sclat");
665665
break;
666666
case "§a§n右クリックで参加" :

0 commit comments

Comments
 (0)