Skip to content

Commit 02b91d4

Browse files
Merge regex code into shared
1 parent 9bfc34b commit 02b91d4

8 files changed

Lines changed: 75 additions & 86 deletions

File tree

src/main/java/net/pistonmaster/pistonqueue/bungee/PistonQueueBungee.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import net.md_5.bungee.api.plugin.PluginManager;
2828
import net.pistonmaster.pistonqueue.bungee.commands.MainCommand;
2929
import net.pistonmaster.pistonqueue.bungee.listeners.QueueListenerBungee;
30-
import net.pistonmaster.pistonqueue.bungee.listeners.RegexListener;
3130
import net.pistonmaster.pistonqueue.bungee.utils.ChatUtils;
3231
import net.pistonmaster.pistonqueue.hooks.PistonMOTDPlaceholder;
3332
import net.pistonmaster.pistonqueue.shared.PistonQueuePlugin;
@@ -75,7 +74,6 @@ public void onEnable() {
7574

7675
info(ChatColor.BLUE + "Registering listeners");
7776
manager.registerListener(this, queueListenerBungee);
78-
manager.registerListener(this, new RegexListener());
7977

8078
info(ChatColor.BLUE + "Loading Metrics");
8179
new Metrics(this, 8755);

src/main/java/net/pistonmaster/pistonqueue/bungee/listeners/QueueListenerBungee.java

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,15 @@
2121

2222
import net.md_5.bungee.api.chat.TextComponent;
2323
import net.md_5.bungee.api.config.ServerInfo;
24-
import net.md_5.bungee.api.event.PostLoginEvent;
25-
import net.md_5.bungee.api.event.ServerConnectEvent;
26-
import net.md_5.bungee.api.event.ServerKickEvent;
27-
import net.md_5.bungee.api.event.ServerSwitchEvent;
24+
import net.md_5.bungee.api.event.*;
2825
import net.md_5.bungee.api.plugin.Listener;
2926
import net.md_5.bungee.event.EventHandler;
3027
import net.pistonmaster.pistonqueue.bungee.PistonQueueBungee;
3128
import net.pistonmaster.pistonqueue.bungee.utils.ChatUtils;
3229
import net.pistonmaster.pistonqueue.shared.PlayerWrapper;
3330
import net.pistonmaster.pistonqueue.shared.QueueListenerShared;
3431
import net.pistonmaster.pistonqueue.shared.events.PQKickedFromServerEvent;
32+
import net.pistonmaster.pistonqueue.shared.events.PQPreLoginEvent;
3533
import net.pistonmaster.pistonqueue.shared.events.PQServerConnectedEvent;
3634
import net.pistonmaster.pistonqueue.shared.events.PQServerPreConnectEvent;
3735

@@ -45,6 +43,11 @@ public QueueListenerBungee(PistonQueueBungee plugin) {
4543
this.plugin = plugin;
4644
}
4745

46+
@EventHandler
47+
public void onPreLogin(PreLoginEvent event) {
48+
onPreLogin(wrap(event));
49+
}
50+
4851
@EventHandler
4952
public void onPostLogin(PostLoginEvent event) {
5053
onPostLogin(plugin.wrapPlayer(event.getPlayer()));
@@ -132,4 +135,24 @@ public Optional<String> getKickReason() {
132135
}
133136
};
134137
}
138+
139+
private PQPreLoginEvent wrap(PreLoginEvent event) {
140+
return new PQPreLoginEvent() {
141+
@Override
142+
public boolean isCancelled() {
143+
return event.isCancelled();
144+
}
145+
146+
@Override
147+
public void setCancelled(String reason) {
148+
event.setCancelReason(ChatUtils.parseToComponent(reason));
149+
event.setCancelled(true);
150+
}
151+
152+
@Override
153+
public String getUsername() {
154+
return event.getConnection().getName();
155+
}
156+
};
157+
}
135158
}

src/main/java/net/pistonmaster/pistonqueue/bungee/listeners/RegexListener.java

Lines changed: 0 additions & 39 deletions
This file was deleted.

src/main/java/net/pistonmaster/pistonqueue/shared/QueueListenerShared.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import lombok.RequiredArgsConstructor;
2626
import lombok.Setter;
2727
import net.pistonmaster.pistonqueue.shared.events.PQKickedFromServerEvent;
28+
import net.pistonmaster.pistonqueue.shared.events.PQPreLoginEvent;
2829
import net.pistonmaster.pistonqueue.shared.events.PQServerConnectedEvent;
2930
import net.pistonmaster.pistonqueue.shared.events.PQServerPreConnectEvent;
3031
import net.pistonmaster.pistonqueue.shared.utils.BanType;
@@ -48,6 +49,15 @@ public abstract class QueueListenerShared {
4849
@Setter
4950
protected Instant onlineSince = null;
5051

52+
protected void onPreLogin(PQPreLoginEvent event) {
53+
if (event.isCancelled())
54+
return;
55+
56+
if (Config.ENABLE_USERNAME_REGEX && !event.getUsername().matches(Config.USERNAME_REGEX)) {
57+
event.setCancelled(Config.USERNAME_REGEX_MESSAGE.replace("%regex%", Config.USERNAME_REGEX));
58+
}
59+
}
60+
5161
protected void onPostLogin(PlayerWrapper player) {
5262
if (StorageTool.isShadowBanned(player.getUniqueId()) && Config.SHADOW_BAN_TYPE == BanType.KICK) {
5363
player.disconnect(Config.SERVER_DOWN_KICK_MESSAGE);
@@ -269,7 +279,7 @@ private void connectPlayer(QueueType type) {
269279

270280
type.getQueueMap().put(entry.getKey(), entry.getValue());
271281

272-
return;
282+
continue;
273283
}
274284

275285
indexPositionTime();
@@ -283,8 +293,9 @@ private void connectPlayer(QueueType type) {
283293
player.connect(entry.getValue());
284294
}
285295

286-
if (Config.SEND_XP_SOUND)
296+
if (Config.SEND_XP_SOUND) {
287297
sendXPSoundToQueueType(type);
298+
}
288299
}
289300

290301
private void sendXPSoundToQueueType(QueueType type) {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package net.pistonmaster.pistonqueue.shared.events;
2+
3+
public interface PQPreLoginEvent {
4+
boolean isCancelled();
5+
6+
void setCancelled(String reason);
7+
8+
String getUsername();
9+
}

src/main/java/net/pistonmaster/pistonqueue/velocity/PistonQueueVelocity.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
import net.pistonmaster.pistonqueue.shared.utils.UpdateChecker;
4242
import net.pistonmaster.pistonqueue.velocity.commands.MainCommand;
4343
import net.pistonmaster.pistonqueue.velocity.listeners.QueueListenerVelocity;
44-
import net.pistonmaster.pistonqueue.velocity.listeners.RegexListener;
4544
import net.pistonmaster.pistonqueue.velocity.utils.ChatUtils;
4645
import org.bstats.velocity.Metrics;
4746
import org.slf4j.Logger;
@@ -100,7 +99,6 @@ public void onProxyInitialization(ProxyInitializeEvent event) {
10099
proxyServer.getCommandManager().register("pistonqueue", new MainCommand(this), "pq");
101100

102101
info("Registering listeners");
103-
proxyServer.getEventManager().register(this, new RegexListener());
104102
proxyServer.getEventManager().register(this, queueListenerVelocity);
105103

106104
info("Loading Metrics");

src/main/java/net/pistonmaster/pistonqueue/velocity/listeners/QueueListenerVelocity.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import com.velocitypowered.api.event.Subscribe;
2323
import com.velocitypowered.api.event.connection.PostLoginEvent;
24+
import com.velocitypowered.api.event.connection.PreLoginEvent;
2425
import com.velocitypowered.api.event.player.KickedFromServerEvent;
2526
import com.velocitypowered.api.event.player.ServerConnectedEvent;
2627
import com.velocitypowered.api.event.player.ServerPreConnectEvent;
@@ -30,6 +31,7 @@
3031
import net.pistonmaster.pistonqueue.shared.PlayerWrapper;
3132
import net.pistonmaster.pistonqueue.shared.QueueListenerShared;
3233
import net.pistonmaster.pistonqueue.shared.events.PQKickedFromServerEvent;
34+
import net.pistonmaster.pistonqueue.shared.events.PQPreLoginEvent;
3335
import net.pistonmaster.pistonqueue.shared.events.PQServerConnectedEvent;
3436
import net.pistonmaster.pistonqueue.shared.events.PQServerPreConnectEvent;
3537
import net.pistonmaster.pistonqueue.velocity.PistonQueueVelocity;
@@ -45,6 +47,11 @@ public QueueListenerVelocity(PistonQueueVelocity plugin) {
4547
this.plugin = plugin;
4648
}
4749

50+
@Subscribe
51+
public void onPreLogin(PreLoginEvent event) {
52+
onPreLogin(wrap(event));
53+
}
54+
4855
@Subscribe
4956
public void onPostLogin(PostLoginEvent event) {
5057
onPostLogin(plugin.wrapPlayer(event.getPlayer()));
@@ -134,4 +141,23 @@ public Optional<String> getKickReason() {
134141
}
135142
};
136143
}
144+
145+
private PQPreLoginEvent wrap(PreLoginEvent event) {
146+
return new PQPreLoginEvent() {
147+
@Override
148+
public boolean isCancelled() {
149+
return event.getResult() != PreLoginEvent.PreLoginComponentResult.allowed();
150+
}
151+
152+
@Override
153+
public void setCancelled(String reason) {
154+
event.setResult(PreLoginEvent.PreLoginComponentResult.denied(ChatUtils.parseToComponent(reason)));
155+
}
156+
157+
@Override
158+
public String getUsername() {
159+
return event.getUsername();
160+
}
161+
};
162+
}
137163
}

src/main/java/net/pistonmaster/pistonqueue/velocity/listeners/RegexListener.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

0 commit comments

Comments
 (0)