mirror of
https://github.com/Aust1n46/VentureChat.git
synced 2025-05-22 18:09:06 +00:00
Move main classes for proxies.
This commit is contained in:
parent
d7a55622be
commit
096da4db4d
@ -2,7 +2,7 @@ package venture.Aust1n46.chat;
|
||||
|
||||
import com.google.inject.AbstractModule;
|
||||
|
||||
import venture.Aust1n46.chat.proxy.VentureChatBungee;
|
||||
import venture.Aust1n46.chat.initiators.application.VentureChatBungee;
|
||||
|
||||
public class VentureChatBungeePluginModule extends AbstractModule {
|
||||
private final VentureChatBungee plugin;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package venture.Aust1n46.chat.proxy;
|
||||
package venture.Aust1n46.chat.initiators.application;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
@ -28,6 +28,9 @@ import net.md_5.bungee.config.YamlConfiguration;
|
||||
import net.md_5.bungee.event.EventHandler;
|
||||
import venture.Aust1n46.chat.VentureChatBungeePluginModule;
|
||||
import venture.Aust1n46.chat.controllers.VentureChatProxyFlatFileController;
|
||||
import venture.Aust1n46.chat.proxy.VentureChatProxy;
|
||||
import venture.Aust1n46.chat.proxy.VentureChatProxyServer;
|
||||
import venture.Aust1n46.chat.proxy.VentureChatProxySource;
|
||||
import venture.Aust1n46.chat.service.proxy.ProxyUuidService;
|
||||
import venture.Aust1n46.chat.utilities.FormatUtils;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package venture.Aust1n46.chat.proxy;
|
||||
package venture.Aust1n46.chat.initiators.application;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
@ -33,6 +33,9 @@ import net.md_5.bungee.config.Configuration;
|
||||
import net.md_5.bungee.config.ConfigurationProvider;
|
||||
import net.md_5.bungee.config.YamlConfiguration;
|
||||
import venture.Aust1n46.chat.controllers.VentureChatProxyFlatFileController;
|
||||
import venture.Aust1n46.chat.proxy.VentureChatProxy;
|
||||
import venture.Aust1n46.chat.proxy.VentureChatProxyServer;
|
||||
import venture.Aust1n46.chat.proxy.VentureChatProxySource;
|
||||
import venture.Aust1n46.chat.utilities.FormatUtils;
|
||||
|
||||
/**
|
||||
@ -42,104 +45,101 @@ import venture.Aust1n46.chat.utilities.FormatUtils;
|
||||
*/
|
||||
public class VentureChatVelocity implements VentureChatProxySource {
|
||||
private final ProxyServer proxyServer;
|
||||
private final ChannelIdentifier channelIdentifier = MinecraftChannelIdentifier.create(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_NAMESPACE, VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_NAME);
|
||||
private final ChannelIdentifier channelIdentifier = MinecraftChannelIdentifier.create(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_NAMESPACE,
|
||||
VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_NAME);
|
||||
private final Logger logger;
|
||||
|
||||
@Inject
|
||||
|
||||
@Inject
|
||||
private VentureChatProxyFlatFileController proxyFlatFileController;
|
||||
@Inject
|
||||
private VentureChatProxy proxy;
|
||||
|
||||
|
||||
@Inject
|
||||
@DataDirectory
|
||||
private Path dataPath;
|
||||
private File velocityPlayerDataDirectory;
|
||||
|
||||
|
||||
private static Configuration velocityConfig;
|
||||
|
||||
|
||||
@Inject
|
||||
public VentureChatVelocity(ProxyServer server, Logger logger) {
|
||||
this.proxyServer = server;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
|
||||
public static Configuration getVelocityConfig() {
|
||||
return velocityConfig;
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onInitialize(ProxyInitializeEvent event) {
|
||||
proxyServer.getChannelRegistrar().register(channelIdentifier);
|
||||
|
||||
|
||||
File dataFolder = dataPath.toFile();
|
||||
if(!dataFolder.exists()) {
|
||||
if (!dataFolder.exists()) {
|
||||
dataFolder.mkdir();
|
||||
}
|
||||
File config = new File(dataFolder, "velocityconfig.yml");
|
||||
try {
|
||||
if(!config.exists()) {
|
||||
if (!config.exists()) {
|
||||
Files.copy(getClass().getClassLoader().getResourceAsStream("velocityconfig.yml"), config.toPath());
|
||||
}
|
||||
velocityConfig = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(dataFolder, "velocityconfig.yml"));
|
||||
}
|
||||
catch(Exception e) {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
velocityPlayerDataDirectory = new File(dataPath.toAbsolutePath().toString() + "/PlayerData");
|
||||
proxyFlatFileController.loadProxyPlayerData(velocityPlayerDataDirectory, this);
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onShutdown(ProxyShutdownEvent event) {
|
||||
proxyFlatFileController.saveProxyPlayerData(velocityPlayerDataDirectory, this);
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onPlayerJoin(ServerPostConnectEvent event) {
|
||||
updatePlayerNames();
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onPlayerQuit(DisconnectEvent event) {
|
||||
// Delay sending plugin message to make sure disconnecting player is truly disconnected.
|
||||
// Delay sending plugin message to make sure disconnecting player is truly
|
||||
// disconnected.
|
||||
proxyServer.getScheduler().buildTask(this, () -> {
|
||||
updatePlayerNames();
|
||||
})
|
||||
.delay(1, TimeUnit.SECONDS)
|
||||
.schedule();
|
||||
}).delay(1, TimeUnit.SECONDS).schedule();
|
||||
}
|
||||
|
||||
|
||||
private void updatePlayerNames() {
|
||||
try {
|
||||
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(outstream);
|
||||
out.writeUTF("PlayerNames");
|
||||
out.writeInt(proxyServer.getPlayerCount());
|
||||
for(Player player : proxyServer.getAllPlayers()) {
|
||||
for (Player player : proxyServer.getAllPlayers()) {
|
||||
out.writeUTF(player.getUsername());
|
||||
}
|
||||
getServers().forEach(send -> {
|
||||
if(!send.isEmpty()) {
|
||||
if (!send.isEmpty()) {
|
||||
sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||
}
|
||||
});
|
||||
}
|
||||
catch(IllegalStateException e) {
|
||||
});
|
||||
} catch (IllegalStateException e) {
|
||||
sendConsoleMessage("Velocity being finicky with DisconnectEvent.");
|
||||
}
|
||||
catch (IOException e) {
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onPluginMessage(PluginMessageEvent event) {
|
||||
String channelIdentifierId = event.getIdentifier().getId();
|
||||
if(!channelIdentifierId.equals(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_STRING) && !channelIdentifierId.contains("viaversion:")) {
|
||||
if (!channelIdentifierId.equals(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_STRING) && !channelIdentifierId.contains("viaversion:")) {
|
||||
return;
|
||||
}
|
||||
if(!(event.getSource() instanceof ServerConnection)) {
|
||||
if (!(event.getSource() instanceof ServerConnection)) {
|
||||
return;
|
||||
}
|
||||
String serverName = ((ServerConnection) event.getSource()).getServerInfo().getName();
|
||||
@ -150,14 +150,16 @@ public class VentureChatVelocity implements VentureChatProxySource {
|
||||
@Override
|
||||
public void sendPluginMessage(String serverName, byte[] data) {
|
||||
Optional<RegisteredServer> server = proxyServer.getServer(serverName);
|
||||
if(server.isPresent()) {
|
||||
if (server.isPresent()) {
|
||||
server.get().sendPluginMessage(channelIdentifier, data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VentureChatProxyServer> getServers() {
|
||||
return proxyServer.getAllServers().stream().map(velocityServer -> new VentureChatProxyServer(velocityServer.getServerInfo().getName(), velocityServer.getPlayersConnected().isEmpty())).collect(Collectors.toList());
|
||||
return proxyServer.getAllServers().stream()
|
||||
.map(velocityServer -> new VentureChatProxyServer(velocityServer.getServerInfo().getName(), velocityServer.getPlayersConnected().isEmpty()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
@ -1,4 +1,4 @@
|
||||
name: VentureChat
|
||||
main: venture.Aust1n46.chat.proxy.VentureChatBungee
|
||||
main: venture.Aust1n46.chat.initiators.application.VentureChatBungee
|
||||
version: ${project.version}
|
||||
author: Aust1n46
|
||||
|
@ -1 +1 @@
|
||||
{"id":"venturechat","name":"VentureChat","version":"${project.version}","description":"#1 Channels Chat plugin! Spigot + Bungee. Supports PlaceholderAPI + JSON formatting. Moderation GUI!","authors":["Aust1n46"],"dependencies":[],"main":"mineverse.Aust1n46.chat.proxy.VentureChatVelocity"}
|
||||
{"id":"venturechat","name":"VentureChat","version":"${project.version}","description":"#1 Channels Chat plugin! Spigot + Bungee. Supports PlaceholderAPI + JSON formatting. Moderation GUI!","authors":["Aust1n46"],"dependencies":[],"main":"venture.Aust1n46.chat.initiators.application.VentureChatVelocity"}
|
Loading…
x
Reference in New Issue
Block a user