reload, join fix
This commit is contained in:
parent
6608ac8efa
commit
89181972c2
@ -8,14 +8,15 @@ import java.nio.file.Path;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public final class Configuration {
|
public final class Configuration {
|
||||||
private final String messageFormat;
|
private String messageFormat;
|
||||||
private final String joinFormat;
|
private String joinFormat;
|
||||||
private final String leaveFormat;
|
private String leaveFormat;
|
||||||
private final String changeFormat;
|
private String changeFormat;
|
||||||
private final boolean messageEnabled;
|
private boolean messageEnabled;
|
||||||
private final boolean joinEnabled;
|
private boolean joinEnabled;
|
||||||
private final boolean leaveEnabled;
|
private boolean leaveEnabled;
|
||||||
private final boolean changeEnabled;
|
private boolean changeEnabled;
|
||||||
|
private final Toml config;
|
||||||
|
|
||||||
Configuration(Toml config) {
|
Configuration(Toml config) {
|
||||||
messageFormat = config.getString("Message.format", "");
|
messageFormat = config.getString("Message.format", "");
|
||||||
@ -27,6 +28,8 @@ public final class Configuration {
|
|||||||
joinEnabled = config.getBoolean("Join.enabled", false);
|
joinEnabled = config.getBoolean("Join.enabled", false);
|
||||||
leaveEnabled = config.getBoolean("Leave.enabled", false);
|
leaveEnabled = config.getBoolean("Leave.enabled", false);
|
||||||
changeEnabled = config.getBoolean("Server-change.enabled", false);
|
changeEnabled = config.getBoolean("Server-change.enabled", false);
|
||||||
|
this.config = config;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Configuration load(Path dataDirectory) {
|
static Configuration load(Path dataDirectory) {
|
||||||
@ -87,4 +90,15 @@ public final class Configuration {
|
|||||||
public boolean isChangeEnabled() {
|
public boolean isChangeEnabled() {
|
||||||
return this.changeEnabled;
|
return this.changeEnabled;
|
||||||
}
|
}
|
||||||
|
void reload(){
|
||||||
|
messageFormat = config.getString("Message.format", "");
|
||||||
|
joinFormat = config.getString("Join.format", "");
|
||||||
|
leaveFormat = config.getString("Leave.format", "");
|
||||||
|
changeFormat = config.getString("Server-change.format", "");
|
||||||
|
|
||||||
|
messageEnabled = config.getBoolean("Message.enabled", false);
|
||||||
|
joinEnabled = config.getBoolean("Join.enabled", false);
|
||||||
|
leaveEnabled = config.getBoolean("Leave.enabled", false);
|
||||||
|
changeEnabled = config.getBoolean("Server-change.enabled", false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,10 @@ package me.feusalamander.vmessage;
|
|||||||
import com.velocitypowered.api.event.Subscribe;
|
import com.velocitypowered.api.event.Subscribe;
|
||||||
import com.velocitypowered.api.event.connection.DisconnectEvent;
|
import com.velocitypowered.api.event.connection.DisconnectEvent;
|
||||||
import com.velocitypowered.api.event.connection.PostLoginEvent;
|
import com.velocitypowered.api.event.connection.PostLoginEvent;
|
||||||
|
import com.velocitypowered.api.event.connection.PreLoginEvent;
|
||||||
import com.velocitypowered.api.event.player.PlayerChatEvent;
|
import com.velocitypowered.api.event.player.PlayerChatEvent;
|
||||||
import com.velocitypowered.api.event.player.ServerConnectedEvent;
|
import com.velocitypowered.api.event.player.ServerConnectedEvent;
|
||||||
|
import com.velocitypowered.api.proxy.LoginPhaseConnection;
|
||||||
import com.velocitypowered.api.proxy.Player;
|
import com.velocitypowered.api.proxy.Player;
|
||||||
import com.velocitypowered.api.proxy.ProxyServer;
|
import com.velocitypowered.api.proxy.ProxyServer;
|
||||||
import com.velocitypowered.api.proxy.ServerConnection;
|
import com.velocitypowered.api.proxy.ServerConnection;
|
||||||
@ -15,6 +17,7 @@ import net.luckperms.api.LuckPermsProvider;
|
|||||||
import net.luckperms.api.model.user.User;
|
import net.luckperms.api.model.user.User;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public final class Listeners {
|
public final class Listeners {
|
||||||
private static final LegacyComponentSerializer SERIALIZER = LegacyComponentSerializer.builder()
|
private static final LegacyComponentSerializer SERIALIZER = LegacyComponentSerializer.builder()
|
||||||
@ -55,21 +58,6 @@ public final class Listeners {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
|
||||||
private void onJoin(PostLoginEvent e){
|
|
||||||
if (!configuration.isJoinEnabled()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Player p = e.getPlayer();
|
|
||||||
String message = configuration.getJoinFormat().replace("#player#", p.getUsername());
|
|
||||||
if (luckPermsAPI != null){
|
|
||||||
User user = luckPermsAPI.getPlayerAdapter(Player.class).getUser(p);
|
|
||||||
message = message.replace("#prefix#", Objects.requireNonNull(user.getCachedData().getMetaData().getPrefix()));
|
|
||||||
}
|
|
||||||
proxyServer.sendMessage(SERIALIZER.deserialize(message));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
private void onLeave(DisconnectEvent e){
|
private void onLeave(DisconnectEvent e){
|
||||||
if (!configuration.isLeaveEnabled()) {
|
if (!configuration.isLeaveEnabled()) {
|
||||||
@ -87,21 +75,36 @@ public final class Listeners {
|
|||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
private void onChange(ServerConnectedEvent e){
|
private void onChange(ServerConnectedEvent e){
|
||||||
|
if (!configuration.isChangeEnabled()&&!configuration.isJoinEnabled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Optional<RegisteredServer> server = e.getPreviousServer();
|
||||||
|
Player p = e.getPlayer();
|
||||||
|
RegisteredServer actual = e.getServer();
|
||||||
|
if(server.isPresent()){
|
||||||
if (!configuration.isChangeEnabled()) {
|
if (!configuration.isChangeEnabled()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
e.getPreviousServer().ifPresent(server -> {
|
RegisteredServer pre = server.get();
|
||||||
RegisteredServer actual = e.getServer();
|
|
||||||
Player p = e.getPlayer();
|
|
||||||
String message = configuration.getChangeFormat()
|
String message = configuration.getChangeFormat()
|
||||||
.replace("#player#", p.getUsername())
|
.replace("#player#", p.getUsername())
|
||||||
.replace("#oldserver#", server.getServerInfo().getName())
|
.replace("#oldserver#", pre.getServerInfo().getName())
|
||||||
.replace("#server#", actual.getServerInfo().getName());
|
.replace("#server#", actual.getServerInfo().getName());
|
||||||
if (luckPermsAPI != null){
|
if (luckPermsAPI != null){
|
||||||
User user = luckPermsAPI.getPlayerAdapter(Player.class).getUser(p);
|
User user = luckPermsAPI.getPlayerAdapter(Player.class).getUser(p);
|
||||||
message = message.replace("#prefix#", Objects.requireNonNull(user.getCachedData().getMetaData().getPrefix()));
|
message = message.replace("#prefix#", Objects.requireNonNull(user.getCachedData().getMetaData().getPrefix()));
|
||||||
}
|
}
|
||||||
proxyServer.sendMessage(SERIALIZER.deserialize(message));
|
proxyServer.sendMessage(SERIALIZER.deserialize(message));
|
||||||
});
|
}else{
|
||||||
|
if (!configuration.isJoinEnabled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String message = configuration.getJoinFormat().replace("#player#", p.getUsername());
|
||||||
|
if (luckPermsAPI != null){
|
||||||
|
User user = luckPermsAPI.getPlayerAdapter(Player.class).getUser(p);
|
||||||
|
message = message.replace("#prefix#", Objects.requireNonNull(user.getCachedData().getMetaData().getPrefix()));
|
||||||
|
}
|
||||||
|
proxyServer.sendMessage(SERIALIZER.deserialize(message));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
45
src/main/java/me/feusalamander/vmessage/ReloadCommand.java
Normal file
45
src/main/java/me/feusalamander/vmessage/ReloadCommand.java
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package me.feusalamander.vmessage;
|
||||||
|
import com.velocitypowered.api.command.CommandSource;
|
||||||
|
import com.velocitypowered.api.command.SimpleCommand;
|
||||||
|
import com.velocitypowered.api.plugin.annotation.DataDirectory;
|
||||||
|
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public final class ReloadCommand implements SimpleCommand {
|
||||||
|
final Path dataDirectory;
|
||||||
|
final Configuration config;
|
||||||
|
ReloadCommand(Path dataDirectory, Configuration config){
|
||||||
|
this.dataDirectory = dataDirectory;
|
||||||
|
this.config = config;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(final Invocation invocation) {
|
||||||
|
CommandSource source = invocation.source();
|
||||||
|
String[] args = invocation.arguments();
|
||||||
|
if(args.length == 1){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String s = args[0];
|
||||||
|
if(s.equalsIgnoreCase("reload")){
|
||||||
|
config.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasPermission(final Invocation invocation) {
|
||||||
|
return invocation.source().hasPermission("*");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> suggest(final Invocation invocation) {
|
||||||
|
return List.of("reload");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CompletableFuture<List<String>> suggestAsync(final Invocation invocation) {
|
||||||
|
return CompletableFuture.completedFuture(List.of("reload"));
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,9 @@
|
|||||||
package me.feusalamander.vmessage;
|
package me.feusalamander.vmessage;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
import com.velocitypowered.api.command.CommandManager;
|
||||||
|
import com.velocitypowered.api.command.CommandMeta;
|
||||||
|
import com.velocitypowered.api.command.SimpleCommand;
|
||||||
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
|
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
|
||||||
import com.velocitypowered.api.event.Subscribe;
|
import com.velocitypowered.api.event.Subscribe;
|
||||||
import com.velocitypowered.api.plugin.Dependency;
|
import com.velocitypowered.api.plugin.Dependency;
|
||||||
@ -35,13 +38,17 @@ public class VMessage {
|
|||||||
@Subscribe
|
@Subscribe
|
||||||
private void onProxyInitialization(ProxyInitializeEvent event) {
|
private void onProxyInitialization(ProxyInitializeEvent event) {
|
||||||
Configuration configuration = Configuration.load(dataDirectory);
|
Configuration configuration = Configuration.load(dataDirectory);
|
||||||
|
|
||||||
if (configuration == null) {
|
if (configuration == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
metricsFactory.make(this, 16527);
|
metricsFactory.make(this, 16527);
|
||||||
proxy.getEventManager().register(this, new Listeners(proxy, configuration));
|
proxy.getEventManager().register(this, new Listeners(proxy, configuration));
|
||||||
logger.info("Vmessage by FeuSalamander is working !");
|
logger.info("Vmessage by FeuSalamander is working !");
|
||||||
|
CommandManager commandManager = proxy.getCommandManager();
|
||||||
|
CommandMeta commandMeta = commandManager.metaBuilder("Vmessage")
|
||||||
|
.plugin(this)
|
||||||
|
.build();
|
||||||
|
SimpleCommand command = new ReloadCommand(dataDirectory, configuration);
|
||||||
|
commandManager.register(commandMeta, command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user