1313import net .minecraft .server .PlayerManager ;
1414import net .minecraft .server .network .ServerPlayerEntity ;
1515import net .minecraft .text .Text ;
16+ import net .minecraft .util .Formatting ;
1617
1718import java .util .HashMap ;
1819import 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
0 commit comments