Skip to content

Commit 47cd724

Browse files
authored
Merge pull request #28 from 4drian3d/improved-usage
Improved plugin usage
2 parents 3b34be4 + 1808845 commit 47cd724

File tree

7 files changed

+167
-185
lines changed

7 files changed

+167
-185
lines changed

pom.xml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<name>VelocityBlockVersion</name>
3030

3131
<properties>
32-
<java.version>1.8</java.version>
32+
<java.version>11</java.version>
3333
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3434
</properties>
3535

@@ -115,13 +115,7 @@
115115
<dependency>
116116
<groupId>com.velocitypowered</groupId>
117117
<artifactId>velocity-api</artifactId>
118-
<version>3.1.1</version>
119-
<scope>provided</scope>
120-
</dependency>
121-
<dependency>
122-
<groupId>net.kyori</groupId>
123-
<artifactId>adventure-text-minimessage</artifactId>
124-
<version>4.12.0</version>
118+
<version>3.1.2-SNAPSHOT</version>
125119
<scope>provided</scope>
126120
</dependency>
127121
<dependency>

src/main/java/lol/hyper/velocityblockversion/VelocityBlockVersion.java

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,19 @@
1818
package lol.hyper.velocityblockversion;
1919

2020
import com.google.inject.Inject;
21+
import com.google.inject.Injector;
2122
import com.velocitypowered.api.command.CommandManager;
2223
import com.velocitypowered.api.command.CommandMeta;
23-
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
24+
import com.velocitypowered.api.event.EventManager;
2425
import com.velocitypowered.api.event.Subscribe;
26+
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
2527
import com.velocitypowered.api.plugin.Plugin;
2628
import com.velocitypowered.api.proxy.ProxyServer;
2729
import lol.hyper.githubreleaseapi.GitHubRelease;
2830
import lol.hyper.githubreleaseapi.GitHubReleaseAPI;
2931
import lol.hyper.velocityblockversion.commands.CommandReload;
3032
import lol.hyper.velocityblockversion.events.JoinEvent;
3133
import lol.hyper.velocityblockversion.tools.ConfigHandler;
32-
import net.kyori.adventure.text.minimessage.MiniMessage;
3334
import org.bstats.velocity.Metrics;
3435
import org.slf4j.Logger;
3536

@@ -44,37 +45,37 @@
4445
url = "https://github.com/hyperdefined/VelocityBlockVersion"
4546
)
4647
public class VelocityBlockVersion {
47-
48-
public ConfigHandler configHandler;
49-
public JoinEvent joinEvent;
50-
public CommandReload commandReload;
51-
public final String VERSION = "1.0.7";
52-
53-
public final Logger logger;
54-
private final Metrics.Factory metricsFactory;
55-
private final ProxyServer server;
56-
private final CommandManager commandManager;
57-
public final MiniMessage miniMessage = MiniMessage.miniMessage();
48+
public static final String VERSION = "1.0.7";
5849

5950
@Inject
60-
public VelocityBlockVersion(ProxyServer server, Logger logger, Metrics.Factory metricsFactory, CommandManager commandManager) {
61-
this.server = server;
62-
this.logger = logger;
63-
this.metricsFactory = metricsFactory;
64-
this.commandManager = commandManager;
65-
}
51+
private Logger logger;
52+
@Inject
53+
private Metrics.Factory metricsFactory;
54+
@Inject
55+
private ProxyServer server;
56+
@Inject
57+
private CommandManager commandManager;
58+
@Inject
59+
private EventManager eventManager;
60+
@Inject
61+
private Injector injector;
6662

6763
@Subscribe
68-
public void onProxyInitialization(ProxyInitializeEvent event) {
69-
configHandler = new ConfigHandler(this);
70-
joinEvent = new JoinEvent(this);
71-
commandReload = new CommandReload(this);
72-
configHandler.loadConfig();
64+
public void onProxyInitialization(final ProxyInitializeEvent event) {
65+
final ConfigHandler configHandler = injector.getInstance(ConfigHandler.class);
66+
if (!configHandler.loadConfig()) {
67+
return;
68+
}
69+
7370
metricsFactory.make(this, 13308);
71+
7472
server.getScheduler().buildTask(this, this::checkForUpdates).schedule();
75-
server.getEventManager().register(this, joinEvent);
7673

77-
CommandMeta meta = commandManager.metaBuilder("vbvreload").build();
74+
final JoinEvent joinEvent = injector.getInstance(JoinEvent.class);
75+
eventManager.register(this, joinEvent);
76+
77+
final CommandReload commandReload = injector.getInstance(CommandReload.class);
78+
final CommandMeta meta = commandManager.metaBuilder("vbvreload").plugin(this).build();
7879
commandManager.register(meta, commandReload);
7980
}
8081

@@ -83,12 +84,11 @@ public void checkForUpdates() {
8384
try {
8485
api = new GitHubReleaseAPI("velocityblockversion", "hyperdefined");
8586
} catch (IOException e) {
86-
logger.warn("Unable to check updates!");
87-
e.printStackTrace();
87+
logger.warn("Unable to check updates!", e);
8888
return;
8989
}
90-
GitHubRelease current = api.getReleaseByTag(VERSION);
91-
GitHubRelease latest = api.getLatestVersion();
90+
final GitHubRelease current = api.getReleaseByTag(VERSION);
91+
final GitHubRelease latest = api.getLatestVersion();
9292
if (current == null) {
9393
logger.warn("You are running a version that does not exist on GitHub. If you are in a dev environment, you can ignore this. Otherwise, this is a bug!");
9494
return;
@@ -97,7 +97,7 @@ public void checkForUpdates() {
9797
if (buildsBehind == 0) {
9898
logger.info("You are running the latest version.");
9999
} else {
100-
logger.warn("A new version is available (" + latest.getTagVersion() + ")! You are running version " + current.getTagVersion() + ". You are " + buildsBehind + " version(s) behind.");
100+
logger.warn("A new version is available ({})! You are running version {}. You are " + buildsBehind + " version(s) behind.", latest.getTagVersion(), current.getTagVersion());
101101
}
102102
}
103103
}

src/main/java/lol/hyper/velocityblockversion/commands/CommandReload.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,27 @@
1717

1818
package lol.hyper.velocityblockversion.commands;
1919

20+
import com.google.inject.Inject;
2021
import com.velocitypowered.api.command.CommandSource;
2122
import com.velocitypowered.api.command.SimpleCommand;
22-
import lol.hyper.velocityblockversion.VelocityBlockVersion;
23+
import lol.hyper.velocityblockversion.tools.ConfigHandler;
2324
import net.kyori.adventure.text.Component;
2425
import net.kyori.adventure.text.format.NamedTextColor;
2526

26-
public class CommandReload implements SimpleCommand{
27+
public final class CommandReload implements SimpleCommand {
28+
@Inject
29+
private ConfigHandler configHandler;
2730

28-
private final VelocityBlockVersion velocityBlockVersion;
29-
30-
public CommandReload(VelocityBlockVersion velocityBlockVersion) {
31-
this.velocityBlockVersion = velocityBlockVersion;
31+
@Override
32+
public void execute(final Invocation invocation) {
33+
final CommandSource source = invocation.source();
34+
if (configHandler.loadConfig()) {
35+
source.sendMessage(Component.text("Config reloaded!", NamedTextColor.GREEN));
36+
}
3237
}
3338

3439
@Override
35-
public void execute(SimpleCommand.Invocation invocation) {
36-
CommandSource source = invocation.source();
37-
if (source.hasPermission("velocityBlockVersion.reload")) {
38-
velocityBlockVersion.configHandler.loadConfig();
39-
source.sendMessage(Component.text("Config reloaded!").color(NamedTextColor.GREEN));
40-
} else {
41-
source.sendMessage(Component.text("You do not have permission for this command.").color(NamedTextColor.RED));
42-
}
40+
public boolean hasPermission(final Invocation invocation) {
41+
return invocation.source().hasPermission("velocityBlockVersion.reload");
4342
}
4443
}

src/main/java/lol/hyper/velocityblockversion/events/JoinEvent.java

Lines changed: 36 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,43 +17,53 @@
1717

1818
package lol.hyper.velocityblockversion.events;
1919

20+
import com.google.inject.Inject;
2021
import com.velocitypowered.api.event.PostOrder;
2122
import com.velocitypowered.api.event.Subscribe;
2223
import com.velocitypowered.api.event.connection.PreLoginEvent;
23-
import lol.hyper.velocityblockversion.VelocityBlockVersion;
24+
import com.velocitypowered.api.network.ProtocolVersion;
2425
import lol.hyper.velocityblockversion.tools.ConfigHandler;
2526
import lol.hyper.velocityblockversion.tools.VersionToStrings;
2627
import net.kyori.adventure.text.Component;
28+
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
29+
import org.slf4j.Logger;
2730

28-
public class JoinEvent {
31+
import static net.kyori.adventure.text.minimessage.MiniMessage.miniMessage;
2932

30-
private final VelocityBlockVersion velocityBlockVersion;
31-
private final ConfigHandler configHandler;
32-
33-
public JoinEvent(VelocityBlockVersion velocityBlockVersion) {
34-
this.velocityBlockVersion = velocityBlockVersion;
35-
this.configHandler = velocityBlockVersion.configHandler;
36-
}
33+
public final class JoinEvent {
34+
@Inject
35+
private Logger logger;
36+
@Inject
37+
private ConfigHandler configHandler;
3738

3839
@Subscribe(order = PostOrder.FIRST)
39-
public void onPlayerLogin(PreLoginEvent event) {
40-
int version = event.getConnection().getProtocolVersion().getProtocol();
41-
if (configHandler.config.getBoolean("log_connection_versions")) {
42-
velocityBlockVersion.logger.info("Player is connecting with protocol version: " + version);
40+
public void onPlayerLogin(final PreLoginEvent event) {
41+
final int version = event.getConnection().getProtocolVersion().getProtocol();
42+
if (configHandler.getConfig().getBoolean("log_connection_versions", false)) {
43+
logger.info("Player is connecting with protocol version: {}", version);
4344
}
44-
if (configHandler.blockVersions.contains(version)) {
45-
String allowedVersions = VersionToStrings.allowedVersions(configHandler.blockVersions);
46-
String blockedMessage = configHandler.config.getString("disconnect_message");
47-
if (allowedVersions == null) {
48-
blockedMessage = "<red>All versions are currently blocked from playing.</red>";
49-
}
50-
if (blockedMessage.contains("{VERSIONS}")) {
51-
blockedMessage = blockedMessage.replace("{VERSIONS}", allowedVersions);
52-
}
53-
Component message = velocityBlockVersion.miniMessage.deserialize(blockedMessage);
54-
event.setResult(PreLoginEvent.PreLoginComponentResult.denied(message));
55-
velocityBlockVersion.logger.info("Blocking player " + event.getUsername() + " because they are playing on version "
56-
+ VersionToStrings.versionStrings.get(version) + " which is blocked!");
45+
46+
if (!configHandler.getBlockVersions().contains(version)) {
47+
return;
5748
}
49+
50+
String allowedVersions = VersionToStrings.allowedVersions(configHandler.getBlockVersions());
51+
String blockedMessage = configHandler.getConfig().getString("disconnect_message");
52+
53+
if (allowedVersions == null) {
54+
blockedMessage = "<red>All versions are currently blocked from playing.";
55+
allowedVersions = "";
56+
}
57+
58+
final Component message = miniMessage().deserialize(
59+
blockedMessage,
60+
Placeholder.unparsed("versions", allowedVersions)
61+
);
62+
event.setResult(PreLoginEvent.PreLoginComponentResult.denied(message));
63+
logger.info(
64+
"Blocking player {} because they are playing on version {} which is blocked!",
65+
event.getUsername(),
66+
ProtocolVersion.getProtocolVersion(version).getMostRecentSupportedVersion()
67+
);
5868
}
5969
}

0 commit comments

Comments
 (0)