1
1
package io .izzel .arclight .common .mixin .bukkit ;
2
2
3
+ import com .google .common .collect .Lists ;
3
4
import io .izzel .arclight .common .bridge .bukkit .CraftServerBridge ;
4
- import io .izzel .arclight .common .mod . server . ArclightServer ;
5
+ import io .izzel .arclight .common .bridge . core . entity . player . ServerPlayerEntityBridge ;
5
6
import jline .console .ConsoleReader ;
6
7
import net .minecraft .server .dedicated .DedicatedPlayerList ;
7
8
import net .minecraft .server .dedicated .DedicatedServer ;
12
13
import org .bukkit .configuration .file .YamlConfiguration ;
13
14
import org .bukkit .craftbukkit .v .CraftServer ;
14
15
import org .bukkit .craftbukkit .v .command .CraftCommandMap ;
16
+ import org .bukkit .craftbukkit .v .entity .CraftPlayer ;
15
17
import org .bukkit .craftbukkit .v .help .SimpleHelpMap ;
16
18
import org .bukkit .craftbukkit .v .scheduler .CraftScheduler ;
17
19
import org .bukkit .event .server .ServerLoadEvent ;
36
38
37
39
import java .io .File ;
38
40
import java .io .IOException ;
39
- import java .util .HashMap ;
40
- import java .util .List ;
41
- import java .util .Locale ;
42
- import java .util .Map ;
41
+ import java .util .*;
43
42
import java .util .logging .Level ;
44
43
import java .util .logging .Logger ;
45
44
@@ -55,6 +54,7 @@ public abstract class CraftServerMixin implements CraftServerBridge {
55
54
@ Shadow @ Final protected DedicatedServer console ;
56
55
@ Shadow @ Final @ Mutable private String serverName ;
57
56
@ Shadow @ Final @ Mutable protected DedicatedPlayerList playerList ;
57
+ @ Shadow @ Final @ Mutable private List <CraftPlayer > playerView ;
58
58
@ Shadow @ Final private Map <String , World > worlds ;
59
59
@ Shadow public int reloadCount ;
60
60
@ Shadow private YamlConfiguration configuration ;
@@ -101,7 +101,13 @@ public String getVersion() {
101
101
102
102
@ Override
103
103
public void bridge$setPlayerList (PlayerList playerList ) {
104
+ // Though I'm not sure why we need this player list setter
105
+ // Player list view should be changed along with player list
106
+ // Or unexpected problem may happen
104
107
this .playerList = (DedicatedPlayerList ) playerList ;
108
+ this .playerView = Collections .unmodifiableList (Lists .transform (playerList .players , player ->
109
+ ((ServerPlayerEntityBridge )player ).bridge$getBukkitEntity ()
110
+ ));
105
111
}
106
112
107
113
/**
0 commit comments