1- package fr .customentity .advancedbungeequeue ;
2-
3- import fr .customentity .advancedbungeequeue .command .QueueCommand ;
4- import fr .customentity .advancedbungeequeue .i18n .I18n ;
5- import fr .customentity .advancedbungeequeue .i18n .YamlResourceBundle ;
6- import fr .customentity .advancedbungeequeue .manager .QueueManager ;
7- import net .md_5 .bungee .api .ChatColor ;
8- import net .md_5 .bungee .api .ChatMessageType ;
9- import net .md_5 .bungee .api .ProxyServer ;
10- import net .md_5 .bungee .api .Title ;
1+ package fr .customentity .advancedbungeequeue .bungee ;
2+
3+ import fr .customentity .advancedbungeequeue .bungee .command .QueueCommand ;
4+ import fr .customentity .advancedbungeequeue .bungee .i18n .I18n ;
5+ import fr .customentity .advancedbungeequeue .bungee .i18n .YamlResourceBundle ;
6+ import fr .customentity .advancedbungeequeue .bungee .listener .QueueListener ;
7+ import fr .customentity .advancedbungeequeue .bungee .manager .QueueManager ;
8+ import fr .customentity .advancedbungeequeue .bungee .socket .SocketManager ;
9+ import net .md_5 .bungee .api .*;
1110import net .md_5 .bungee .api .chat .TextComponent ;
1211import net .md_5 .bungee .api .connection .ProxiedPlayer ;
1312import net .md_5 .bungee .api .plugin .Plugin ;
1413import net .md_5 .bungee .config .Configuration ;
1514import net .md_5 .bungee .config .ConfigurationProvider ;
1615import net .md_5 .bungee .config .YamlConfiguration ;
1716
18- import javax .xml .soap .Text ;
1917import java .io .File ;
2018import java .io .IOException ;
2119import java .nio .file .Files ;
2220import java .util .*;
21+ import java .util .concurrent .TimeUnit ;
2322
2423public class AdvancedBungeeQueue extends Plugin {
2524
2625 private QueueManager queueManager ;
2726
2827 private File file ;
2928 private Configuration configFile ;
29+ private SocketManager socketManager ;
3030
3131 private I18n i18n ;
3232
@@ -37,6 +37,16 @@ public void onEnable() {
3737
3838 this .queueManager = new QueueManager (this );
3939 this .getProxy ().getPluginManager ().registerCommand (this , new QueueCommand (this ));
40+ this .getProxy ().getPluginManager ().registerListener (this , new QueueListener (this ));
41+
42+ this .getProxy ().getScheduler ().schedule (this , () -> queueManager .getQueues ().forEach ((serverInfo , queuedPlayers ) -> queuedPlayers .forEach (queuedPlayer -> this .sendConfigMessage (queuedPlayer .getProxiedPlayer (), "general.repeating-position-message" ,
43+ "%all%" , queuedPlayers .size () + "" ,
44+ "%position%" , queuedPlayers .indexOf (queuedPlayer ) + 1 + "" ,
45+ "%priority%" , queuedPlayer .getPriority ().getName ()
46+ ))), 1 , 1 , TimeUnit .SECONDS );
47+
48+ this .socketManager = new SocketManager (this );
49+ this .socketManager .initListener ();
4050 }
4151
4252 public I18n getI18n () {
@@ -49,7 +59,6 @@ private void saveDefaultConfig() {
4959 this .getDataFolder ().mkdirs ();
5060
5161 file = new File (this .getDataFolder (), "config.yml" );
52-
5362 if (!file .exists ()) {
5463 Files .copy (getResourceAsStream ("config.yml" ), file .toPath ());
5564 }
@@ -72,8 +81,7 @@ public QueueManager getQueueManager() {
7281 return queueManager ;
7382 }
7483
75- public void sendConfigMessage (ProxiedPlayer player , String path , String ... replace ) {
76- AdvancedBungeeQueue advancedBungeeQueue = (AdvancedBungeeQueue ) ProxyServer .getInstance ().getPluginManager ().getPlugin ("AdvancedBungeeQueue" );
84+ public void sendConfigMessage (CommandSender sender , String path , String ... replace ) {
7785 HashMap <String , String > replaced = new HashMap <>();
7886 List <String > replaceList = Arrays .asList (replace );
7987 int index = 0 ;
@@ -83,22 +91,24 @@ public void sendConfigMessage(ProxiedPlayer player, String path, String... repla
8391 replaced .put (str , replaceList .get (index ));
8492 }
8593 Optional <YamlResourceBundle > yamlResourceBundleOptional = i18n .getYamlResourceBundleByLang (getConfigFile ().getString ("locale" ));
86- if (yamlResourceBundleOptional .isPresent ()) {
94+ if (yamlResourceBundleOptional .isPresent ()) {
8795 YamlResourceBundle yamlResourceBundle = yamlResourceBundleOptional .get ();
8896 List <String > messages = yamlResourceBundle .getYamlConfig ().get (path ) instanceof List ? yamlResourceBundle .getStringList (path ) : Collections .singletonList (yamlResourceBundle .getString (path ));
8997
90- messages .forEach (s -> sendConfigMessage (player , s , replaced ));
98+ messages .forEach (s -> sendConfigMessage (sender , s , replaced ));
9199 }
92100 }
93101
94- private void sendConfigMessage (ProxiedPlayer player , String configMessage , HashMap <String , String > replaced ) {
95- String message = ChatColor .translateAlternateColorCodes ('&' , configMessage .replace ("%name%" , player .getName ()).replace ("%prefix%" , i18n .getString ("prefix" )));
102+ private void sendConfigMessage (CommandSender sender , String configMessage , HashMap <String , String > replaced ) {
103+ String message = ChatColor .translateAlternateColorCodes ('&' , configMessage .replace ("%name%" , sender .getName ()).replace ("%prefix%" , i18n .getString ("prefix" )));
96104 if (message .isEmpty ()) return ;
97105
98106 for (Map .Entry <String , String > stringEntry : replaced .entrySet ()) {
99107 message = message .replace (stringEntry .getKey (), stringEntry .getValue ());
100108 }
101109 if (message .toLowerCase ().startsWith ("%title%" )) {
110+ if (!(sender instanceof ProxiedPlayer ))return ;
111+ ProxiedPlayer player = (ProxiedPlayer )sender ;
102112 Title title = ProxyServer .getInstance ().createTitle ();
103113
104114 title .fadeIn (0 );
@@ -109,11 +119,14 @@ private void sendConfigMessage(ProxiedPlayer player, String configMessage, HashM
109119 String [] splitted = message .split ("%subtitle%" );
110120 title .title (new TextComponent (splitted [0 ].replaceAll ("(?i)%subtitle%" , "" ).replaceAll ("(?i)%title%" , "" )));
111121 title .subTitle (new TextComponent (splitted [1 ].replaceAll ("(?i)%subtitle%" , "" ).replaceAll ("(?i)%title%" , "" )));
112- title .send (player );
113122 } else {
114123 title .title (new TextComponent (message .replaceAll ("(?i)%title%" , "" )));
124+ title .subTitle (new TextComponent ("" ));
115125 }
126+ title .send (player );
116127 } else if (message .toLowerCase ().startsWith ("%subtitle%" )) {
128+ if (!(sender instanceof ProxiedPlayer ))return ;
129+ ProxiedPlayer player = (ProxiedPlayer )sender ;
117130 Title title = ProxyServer .getInstance ().createTitle ();
118131
119132 title .fadeIn (0 );
@@ -125,11 +138,15 @@ private void sendConfigMessage(ProxiedPlayer player, String configMessage, HashM
125138 title .subTitle (new TextComponent (splitted [0 ].replaceAll ("(?i)%subtitle%" , "" ).replaceAll ("(?i)%title%" , "" )));
126139 } else {
127140 title .subTitle (new TextComponent (message .replaceAll ("(?i)%subtitle%" , "" )));
141+ title .title (new TextComponent ("" ));
128142 }
143+ title .send (player );
129144 } else if (message .toLowerCase ().startsWith ("%actionbar%" )) {
145+ if (!(sender instanceof ProxiedPlayer ))return ;
146+ ProxiedPlayer player = (ProxiedPlayer )sender ;
130147 player .sendMessage (ChatMessageType .ACTION_BAR , new TextComponent (message .replaceAll ("(?i)%actionbar%" , "" )));
131148 } else {
132- player .sendMessage (new TextComponent (message ));
149+ sender .sendMessage (new TextComponent (message ));
133150 }
134151 }
135152}
0 commit comments