mirror of
https://github.com/Aust1n46/VentureChat.git
synced 2025-05-23 02:19:05 +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 com.google.inject.AbstractModule;
|
||||||
|
|
||||||
import venture.Aust1n46.chat.proxy.VentureChatBungee;
|
import venture.Aust1n46.chat.initiators.application.VentureChatBungee;
|
||||||
|
|
||||||
public class VentureChatBungeePluginModule extends AbstractModule {
|
public class VentureChatBungeePluginModule extends AbstractModule {
|
||||||
private final VentureChatBungee plugin;
|
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.ByteArrayOutputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
@ -28,6 +28,9 @@ import net.md_5.bungee.config.YamlConfiguration;
|
|||||||
import net.md_5.bungee.event.EventHandler;
|
import net.md_5.bungee.event.EventHandler;
|
||||||
import venture.Aust1n46.chat.VentureChatBungeePluginModule;
|
import venture.Aust1n46.chat.VentureChatBungeePluginModule;
|
||||||
import venture.Aust1n46.chat.controllers.VentureChatProxyFlatFileController;
|
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.service.proxy.ProxyUuidService;
|
||||||
import venture.Aust1n46.chat.utilities.FormatUtils;
|
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.ByteArrayOutputStream;
|
||||||
import java.io.DataOutputStream;
|
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.ConfigurationProvider;
|
||||||
import net.md_5.bungee.config.YamlConfiguration;
|
import net.md_5.bungee.config.YamlConfiguration;
|
||||||
import venture.Aust1n46.chat.controllers.VentureChatProxyFlatFileController;
|
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;
|
import venture.Aust1n46.chat.utilities.FormatUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,104 +45,101 @@ import venture.Aust1n46.chat.utilities.FormatUtils;
|
|||||||
*/
|
*/
|
||||||
public class VentureChatVelocity implements VentureChatProxySource {
|
public class VentureChatVelocity implements VentureChatProxySource {
|
||||||
private final ProxyServer proxyServer;
|
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;
|
private final Logger logger;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private VentureChatProxyFlatFileController proxyFlatFileController;
|
private VentureChatProxyFlatFileController proxyFlatFileController;
|
||||||
@Inject
|
@Inject
|
||||||
private VentureChatProxy proxy;
|
private VentureChatProxy proxy;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@DataDirectory
|
@DataDirectory
|
||||||
private Path dataPath;
|
private Path dataPath;
|
||||||
private File velocityPlayerDataDirectory;
|
private File velocityPlayerDataDirectory;
|
||||||
|
|
||||||
private static Configuration velocityConfig;
|
private static Configuration velocityConfig;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public VentureChatVelocity(ProxyServer server, Logger logger) {
|
public VentureChatVelocity(ProxyServer server, Logger logger) {
|
||||||
this.proxyServer = server;
|
this.proxyServer = server;
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Configuration getVelocityConfig() {
|
public static Configuration getVelocityConfig() {
|
||||||
return velocityConfig;
|
return velocityConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onInitialize(ProxyInitializeEvent event) {
|
public void onInitialize(ProxyInitializeEvent event) {
|
||||||
proxyServer.getChannelRegistrar().register(channelIdentifier);
|
proxyServer.getChannelRegistrar().register(channelIdentifier);
|
||||||
|
|
||||||
File dataFolder = dataPath.toFile();
|
File dataFolder = dataPath.toFile();
|
||||||
if(!dataFolder.exists()) {
|
if (!dataFolder.exists()) {
|
||||||
dataFolder.mkdir();
|
dataFolder.mkdir();
|
||||||
}
|
}
|
||||||
File config = new File(dataFolder, "velocityconfig.yml");
|
File config = new File(dataFolder, "velocityconfig.yml");
|
||||||
try {
|
try {
|
||||||
if(!config.exists()) {
|
if (!config.exists()) {
|
||||||
Files.copy(getClass().getClassLoader().getResourceAsStream("velocityconfig.yml"), config.toPath());
|
Files.copy(getClass().getClassLoader().getResourceAsStream("velocityconfig.yml"), config.toPath());
|
||||||
}
|
}
|
||||||
velocityConfig = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(dataFolder, "velocityconfig.yml"));
|
velocityConfig = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(dataFolder, "velocityconfig.yml"));
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch(Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
velocityPlayerDataDirectory = new File(dataPath.toAbsolutePath().toString() + "/PlayerData");
|
velocityPlayerDataDirectory = new File(dataPath.toAbsolutePath().toString() + "/PlayerData");
|
||||||
proxyFlatFileController.loadProxyPlayerData(velocityPlayerDataDirectory, this);
|
proxyFlatFileController.loadProxyPlayerData(velocityPlayerDataDirectory, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onShutdown(ProxyShutdownEvent event) {
|
public void onShutdown(ProxyShutdownEvent event) {
|
||||||
proxyFlatFileController.saveProxyPlayerData(velocityPlayerDataDirectory, this);
|
proxyFlatFileController.saveProxyPlayerData(velocityPlayerDataDirectory, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onPlayerJoin(ServerPostConnectEvent event) {
|
public void onPlayerJoin(ServerPostConnectEvent event) {
|
||||||
updatePlayerNames();
|
updatePlayerNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onPlayerQuit(DisconnectEvent event) {
|
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, () -> {
|
proxyServer.getScheduler().buildTask(this, () -> {
|
||||||
updatePlayerNames();
|
updatePlayerNames();
|
||||||
})
|
}).delay(1, TimeUnit.SECONDS).schedule();
|
||||||
.delay(1, TimeUnit.SECONDS)
|
|
||||||
.schedule();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePlayerNames() {
|
private void updatePlayerNames() {
|
||||||
try {
|
try {
|
||||||
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
|
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
|
||||||
DataOutputStream out = new DataOutputStream(outstream);
|
DataOutputStream out = new DataOutputStream(outstream);
|
||||||
out.writeUTF("PlayerNames");
|
out.writeUTF("PlayerNames");
|
||||||
out.writeInt(proxyServer.getPlayerCount());
|
out.writeInt(proxyServer.getPlayerCount());
|
||||||
for(Player player : proxyServer.getAllPlayers()) {
|
for (Player player : proxyServer.getAllPlayers()) {
|
||||||
out.writeUTF(player.getUsername());
|
out.writeUTF(player.getUsername());
|
||||||
}
|
}
|
||||||
getServers().forEach(send -> {
|
getServers().forEach(send -> {
|
||||||
if(!send.isEmpty()) {
|
if (!send.isEmpty()) {
|
||||||
sendPluginMessage(send.getName(), outstream.toByteArray());
|
sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} catch (IllegalStateException e) {
|
||||||
catch(IllegalStateException e) {
|
|
||||||
sendConsoleMessage("Velocity being finicky with DisconnectEvent.");
|
sendConsoleMessage("Velocity being finicky with DisconnectEvent.");
|
||||||
}
|
} catch (IOException e) {
|
||||||
catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onPluginMessage(PluginMessageEvent event) {
|
public void onPluginMessage(PluginMessageEvent event) {
|
||||||
String channelIdentifierId = event.getIdentifier().getId();
|
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;
|
return;
|
||||||
}
|
}
|
||||||
if(!(event.getSource() instanceof ServerConnection)) {
|
if (!(event.getSource() instanceof ServerConnection)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String serverName = ((ServerConnection) event.getSource()).getServerInfo().getName();
|
String serverName = ((ServerConnection) event.getSource()).getServerInfo().getName();
|
||||||
@ -150,14 +150,16 @@ public class VentureChatVelocity implements VentureChatProxySource {
|
|||||||
@Override
|
@Override
|
||||||
public void sendPluginMessage(String serverName, byte[] data) {
|
public void sendPluginMessage(String serverName, byte[] data) {
|
||||||
Optional<RegisteredServer> server = proxyServer.getServer(serverName);
|
Optional<RegisteredServer> server = proxyServer.getServer(serverName);
|
||||||
if(server.isPresent()) {
|
if (server.isPresent()) {
|
||||||
server.get().sendPluginMessage(channelIdentifier, data);
|
server.get().sendPluginMessage(channelIdentifier, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<VentureChatProxyServer> getServers() {
|
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
|
@Override
|
@ -1,4 +1,4 @@
|
|||||||
name: VentureChat
|
name: VentureChat
|
||||||
main: venture.Aust1n46.chat.proxy.VentureChatBungee
|
main: venture.Aust1n46.chat.initiators.application.VentureChatBungee
|
||||||
version: ${project.version}
|
version: ${project.version}
|
||||||
author: Aust1n46
|
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