Skip to content

Commit

Permalink
Divided ConnectionTips.java from TabList.java.
Browse files Browse the repository at this point in the history
  • Loading branch information
WDRshadow committed Dec 6, 2021
1 parent 40ec101 commit 3022bf8
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 56 deletions.
6 changes: 6 additions & 0 deletions src/main/java/com/wdrshadow/essentialinfo/EssentialInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.velocitypowered.api.plugin.annotation.DataDirectory;
import com.velocitypowered.api.proxy.ProxyServer;
import com.wdrshadow.essentialinfo.configuration.Setting;
import com.wdrshadow.essentialinfo.module.connectionTips.ConnectionTips;
import com.wdrshadow.essentialinfo.module.message.Message;
import com.wdrshadow.essentialinfo.module.pinglist.PingList;
import com.wdrshadow.essentialinfo.module.tablist.TabList;
Expand Down Expand Up @@ -61,6 +62,11 @@ public void onProxyInitialization(ProxyInitializeEvent event) {
this.proxyServer.getEventManager().register(this, new PingList(this.proxyServer));
logger.info("Loaded PingList.");
}

if (setting.isConnectionTipsEnabled()) {
this.proxyServer.getEventManager().register(this, new ConnectionTips(this.proxyServer));
logger.info("Loaded ConnectionTips.");
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public class Setting {
private final boolean tabListEnabled;
private final boolean messageEnabled;
private final boolean pingListEnabled;
private final boolean connectionTipsEnabled;

public Setting(File dataFolder, Logger logger){
this.logger = logger;
Expand All @@ -30,6 +31,7 @@ public Setting(File dataFolder, Logger logger){
this.tabListEnabled = toml.getBoolean("tabList.enabled");
this.messageEnabled = toml.getBoolean("message.enabled");
this.pingListEnabled = toml.getBoolean("pingList.enabled");
this.connectionTipsEnabled = toml.getBoolean("connectionTips.enabled");
}

private void saveDefaultConfig() {
Expand Down Expand Up @@ -67,4 +69,7 @@ public boolean isPingListEnabled(){
return pingListEnabled;
}

public boolean isConnectionTipsEnabled() {
return connectionTipsEnabled;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package com.wdrshadow.essentialinfo.module.connectionTips;

import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.DisconnectEvent;
import com.velocitypowered.api.event.player.ServerConnectedEvent;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;

public class ConnectionTips {
// class server
private final ProxyServer proxyServer;

// connect the module to the plugin and server
public ConnectionTips(ProxyServer proxyServer) {
this.proxyServer = proxyServer;
}

// listener of player login
@Subscribe
public void connect(ServerConnectedEvent event) {
connectNote(event);
}

// listener of player disconnect
@Subscribe
public void disconnect(DisconnectEvent event) {
disconnectNote(event);
}

// note of connect server
private void connectNote(ServerConnectedEvent event){
Player player = event.getPlayer();
String sendMessage;
if (event.getPreviousServer().isPresent()){
sendMessage = player.getUsername() + ": ["
+ event.getPreviousServer().get().getServerInfo().getName() + "] -> ["
+ event.getServer().getServerInfo().getName() + "]";
TextComponent textComponent = Component.text(sendMessage);
for (RegisteredServer s : this.proxyServer.getAllServers()){
s.sendMessage(textComponent);
}
} else {
sendMessage = player.getUsername() + ": Connected to ["
+ event.getServer().getServerInfo().getName() + "].";
TextComponent textComponent = Component.text(sendMessage);
for (RegisteredServer s : this.proxyServer.getAllServers()){
s.sendMessage(textComponent);
}
}
}

//note of disconnect server
private void disconnectNote(DisconnectEvent event){
Player player = event.getPlayer();
String sendMessage = player.getUsername() + ": Exited the servers.";
TextComponent textComponent = Component.text(sendMessage);
for (RegisteredServer s : this.proxyServer.getAllServers()){
s.sendMessage(textComponent);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ public PingList(ProxyServer proxyServer) {
@Subscribe
public void onPing(ProxyPingEvent event) {
ServerPing response = event.getPing();
ServerPing.SamplePlayer[] playerInfo = proxyServer.getAllPlayers().stream().map(player -> new ServerPing.SamplePlayer(player.getUsername(), player.getUniqueId())).toArray(ServerPing.SamplePlayer[]::new);
ServerPing.SamplePlayer[] playerInfo = proxyServer.getAllPlayers().stream().map(player -> new ServerPing
.SamplePlayer(player.getUsername(), player.getUniqueId())).toArray(ServerPing.SamplePlayer[]::new);
ServerPing newResponse = response.asBuilder().samplePlayers(playerInfo).build();
event.setPing(newResponse);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,8 @@
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.player.TabListEntry;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import com.wdrshadow.essentialinfo.EssentialInfo;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;

import java.util.concurrent.TimeUnit;

Expand All @@ -28,14 +26,12 @@ public TabList(ProxyServer proxyServer, EssentialInfo plugin) {
@Subscribe
public void connect(ServerConnectedEvent event) {
connectUpdate(event);
connectNote(event);
}

// listener of player disconnect
@Subscribe
public void disconnect(DisconnectEvent event) {
remove(event.getPlayer());
disconnectNote(event);
disconnectUpdate(event.getPlayer());
}

// update tab list
Expand All @@ -51,73 +47,41 @@ private void connectUpdate(ServerConnectedEvent event) {
.displayName(Component.text("[" + serverName + "] " + player1.getUsername()))
.latency((int) player1.getPing())
.profile(player1.getGameProfile())
.gameMode(0)
.tabList(player.getTabList())
.build());
}
}
}
}

private void update(){
for (Player player : this.proxyServer.getAllPlayers()) {
for (Player player1 : this.proxyServer.getAllPlayers()) {
// not the same server && not already exist
if (!player.getTabList().containsEntry(player1.getUniqueId())) {
if(player1.getCurrentServer().isPresent()){
player.getTabList().addEntry(TabListEntry.builder()
.displayName(Component.text("["
+ player1.getCurrentServer().get().getServerInfo().getName() + "] "
+ player1.getUsername()))
.latency((int) player1.getPing())
.profile(player1.getGameProfile())
.gameMode(3)
.tabList(player.getTabList())
.build());
}
}
}
}
}

// remove disconnected player from list
private void remove(Player player) {
private void disconnectUpdate(Player player) {
for (Player p : this.proxyServer.getAllPlayers()) {
if (p.getTabList().containsEntry(player.getUniqueId())) {
p.getTabList().removeEntry(player.getUniqueId());
}
}
}

// note of connect server
private void connectNote(ServerConnectedEvent event){
Player player = event.getPlayer();
String sendMessage;
if (event.getPreviousServer().isPresent()){
sendMessage = player.getUsername() + ": ["
+ event.getPreviousServer().get().getServerInfo().getName() + "] -> ["
+ event.getServer().getServerInfo().getName() + "]";
TextComponent textComponent = Component.text(sendMessage);
for (RegisteredServer s : this.proxyServer.getAllServers()){
s.sendMessage(textComponent);
}
} else {
sendMessage = player.getUsername() + ": Connect to ["
+ event.getServer().getServerInfo().getName() + "].";
TextComponent textComponent = Component.text(sendMessage);
for (RegisteredServer s : this.proxyServer.getAllServers()){
s.sendMessage(textComponent);
// normal update
private void update(){
for (Player player : this.proxyServer.getAllPlayers()) {
for (Player player1 : this.proxyServer.getAllPlayers()) {
if (!player.getTabList().containsEntry(player1.getUniqueId())) {
if(player1.getCurrentServer().isPresent()){
player.getTabList().addEntry(TabListEntry.builder()
.displayName(Component.text("["
+ player1.getCurrentServer().get().getServerInfo().getName() + "] "
+ player1.getUsername()))
.latency((int) player1.getPing())
.profile(player1.getGameProfile())
.gameMode(3)
.tabList(player.getTabList())
.build());
}
}
}
}
}

//note of disconnect server
private void disconnectNote(DisconnectEvent event){
Player player = event.getPlayer();
String sendMessage = player.getUsername() + ": Exit the servers.";
TextComponent textComponent = Component.text(sendMessage);
for (RegisteredServer s : this.proxyServer.getAllServers()){
s.sendMessage(textComponent);
}
}
}
4 changes: 4 additions & 0 deletions src/main/resources/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,7 @@
[pingList]
enabled=true

# Connection Tips
[connectionTips]
enabled=true

0 comments on commit 3022bf8

Please sign in to comment.