Skip to content

Commit 81b5029

Browse files
committed
增加一些反馈
1 parent 9d6b073 commit 81b5029

3 files changed

Lines changed: 23 additions & 3 deletions

File tree

src/main/java/com/github/squi2rel/vp/DataHolder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import net.minecraft.server.MinecraftServer;
1010
import net.minecraft.server.PlayerManager;
1111
import net.minecraft.server.network.ServerPlayerEntity;
12+
import net.minecraft.text.Text;
13+
import net.minecraft.util.Formatting;
1214

1315
import java.io.IOException;
1416
import java.nio.file.Files;
@@ -50,11 +52,13 @@ public static void update() {
5052
ServerPacketHandler.sendTo(player, ServerPacketHandler.createScreen(area.screens));
5153
ServerPacketHandler.sendTo(player, ServerPacketHandler.loadArea(area));
5254
ServerPacketHandler.sendTo(player, ServerPacketHandler.updatePlaylist(area.screens));
55+
player.sendMessage(Text.literal("进入观影区 " + area.name).formatted(Formatting.DARK_AQUA));
5356
}
5457
} else {
5558
if (area.removePlayer(player.getUuid())) {
5659
ServerPacketHandler.sendTo(player, ServerPacketHandler.unloadArea(area));
5760
ServerPacketHandler.sendTo(player, ServerPacketHandler.removeArea(area));
61+
player.sendMessage(Text.literal("离开观影区 " + area.name).formatted(Formatting.DARK_AQUA));
5862
}
5963
}
6064
}

src/main/java/com/github/squi2rel/vp/network/ServerPacketHandler.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import net.minecraft.server.PlayerManager;
1414
import net.minecraft.server.network.ServerPlayerEntity;
1515
import net.minecraft.text.Text;
16+
import net.minecraft.util.Formatting;
1617

1718
import java.util.HashMap;
1819
import java.util.List;
@@ -59,6 +60,7 @@ public static void handle(ServerPlayerEntity player, ByteBuf buf) {
5960
DataHolder.lock();
6061
DataHolder.areas.computeIfAbsent(area.dim, k -> new HashMap<>()).put(area.name, area);
6162
DataHolder.unlock();
63+
player.sendMessage(Text.literal("已成功在世界 " + player.getWorld().getRegistryKey().getValue() + " 创建名为 " + area.name + " 的观影区!").formatted(Formatting.GREEN));
6264
}
6365
case REMOVE_AREA -> {
6466
// TODO check permission
@@ -72,6 +74,7 @@ public static void handle(ServerPlayerEntity player, ByteBuf buf) {
7274
area.forEachPlayer(p -> sendTo(pm.getPlayer(p), data));
7375
}
7476
DataHolder.unlock();
77+
player.sendMessage(Text.literal("已成功在世界 " + player.getWorld().getRegistryKey().getValue() + " 移除名为 " + area.name + " 的观影区!").formatted(Formatting.GREEN));
7578
}
7679
case CREATE_SCREEN -> {
7780
// TODO check permission
@@ -87,17 +90,19 @@ public static void handle(ServerPlayerEntity player, ByteBuf buf) {
8790
area.forEachPlayer(p -> sendTo(pm.getPlayer(p), data));
8891
}
8992
DataHolder.unlock();
93+
player.sendMessage(Text.literal("已成功在观影区 " + area.name + " 创建名为 " + screen.name + " 的屏幕!").formatted(Formatting.GREEN));
9094
}
9195
case REMOVE_SCREEN -> {
9296
// TODO check permission
9397
VideoArea area = getArea(player, readName(buf));
9498
if (area == null) return;
9599
DataHolder.lock();
96-
VideoScreen removed = area.removeScreen(readName(buf));
97-
if (removed != null && area.hasPlayer()) {
98-
byte[] data = removeScreen(removed);
100+
VideoScreen screen = area.removeScreen(readName(buf));
101+
if (screen != null && area.hasPlayer()) {
102+
byte[] data = removeScreen(screen);
99103
PlayerManager pm = Objects.requireNonNull(player.getServer()).getPlayerManager();
100104
area.forEachPlayer(p -> sendTo(pm.getPlayer(p), data));
105+
player.sendMessage(Text.literal("已成功在观影区 " + area.name + " 移除名为 " + screen.name + " 的屏幕!").formatted(Formatting.GREEN));
101106
}
102107
DataHolder.unlock();
103108
}
@@ -113,6 +118,12 @@ public static void handle(ServerPlayerEntity player, ByteBuf buf) {
113118
return;
114119
}
115120
screen.voteSkip(player.getUuid());
121+
Text s = Text.literal("玩家 %s 已投票跳过 %s 上的视频 还需 %d 个玩家".formatted(
122+
player.getName(), screen.name, screen.skipped() == 0 ? 0 : (int) (area.players() * screen.skipPercent - screen.skipped() + 1)
123+
));
124+
player.sendMessage(Text.literal("已投票跳过此视频").formatted(Formatting.GOLD));
125+
PlayerManager pm = Objects.requireNonNull(player.getServer()).getPlayerManager();
126+
area.forEachPlayer(p -> Objects.requireNonNull(pm.getPlayer(p)).sendMessage(s));
116127
}
117128
case SKIP_PERCENT -> {
118129
// TODO check permission
@@ -121,6 +132,7 @@ public static void handle(ServerPlayerEntity player, ByteBuf buf) {
121132
VideoScreen screen = area.getScreen(readName(buf));
122133
if (screen == null) return;
123134
screen.setSkipPercent(buf.readFloat());
135+
player.sendMessage(Text.literal("屏幕 " + screen.name + " 的投票跳过比例已设置为 " + screen.skipPercent).formatted(Formatting.GREEN));
124136
}
125137
case IDLE_PLAY -> {
126138
// TODO

src/main/java/com/github/squi2rel/vp/video/VideoScreen.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ public void initServer() {
7979
playNext();
8080
}
8181

82+
public int skipped() {
83+
return skipped.size();
84+
}
85+
8286
public synchronized void addInfo(VideoInfo info) {
8387
LOGGER.info("added info: {} {} {}", info.playerName(), info.name(), info.path());
8488
lock();

0 commit comments

Comments
 (0)