Refactor file structure

Implement DI framework and reduce static abuse
Improve testability
Remove deprecated features
This commit is contained in:
Aust1n46 2021-12-02 18:07:08 -06:00
parent 30531eb752
commit fb7fb52ce5
91 changed files with 4917 additions and 5960 deletions

View File

@ -1,3 +0,0 @@
/org.eclipse.jdt.core.prefs
/org.eclipse.core.resources.prefs
/org.eclipse.m2e.core.prefs

View File

@ -0,0 +1,5 @@
#Sun Nov 28 17:16:27 CST 2021
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.source=1.8
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.compliance=1.8

29
pom.xml
View File

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>mineverse.Aust1n46.chat</groupId>
<artifactId>VentureChat</artifactId>
<version>3.2.2</version>
<version>4.0.0</version>
<url>https://bitbucket.org/Aust1n46/venturechat/src/master</url>
<scm>
<url>https://bitbucket.org/Aust1n46/venturechat/src/master</url>
@ -67,11 +67,21 @@
<pattern>net.md_5.bungee.config</pattern>
<shadedPattern>shaded.net.md_5.bungee.config</shadedPattern>
</relocation>
<relocation>
<pattern>com.google.inject</pattern>
<shadedPattern>shaded.com.google.inject</shadedPattern>
</relocation>
<relocation>
<pattern>org.aopalliance</pattern>
<shadedPattern>shaded.org.aopalliance</shadedPattern>
</relocation>
</relocations>
<artifactSet>
<includes>
<include>com.zaxxer:HikariCP</include>
<include>net.md-5:bungeecord-config</include>
<include>com.google.inject:guice</include>
<include>aopalliance:aopalliance</include>
</includes>
</artifactSet>
</configuration>
@ -119,6 +129,10 @@
<id>papermc</id>
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
<repository>
<id>google-guice</id>
<url>https://mvnrepository.com/artifact/com.google.inject/guice</url>
</repository>
</repositories>
<dependencies>
<dependency>
@ -195,6 +209,13 @@
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.inject/guice -->
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<scope>compile</scope>
<version>5.0.1</version>
</dependency>
<dependency>
<groupId>com.velocitypowered</groupId>
<artifactId>velocity-api</artifactId>
@ -221,6 +242,12 @@
<version>1.13-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>

View File

@ -1,178 +0,0 @@
package mineverse.Aust1n46.chat.api;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat;
/**
* API class for looking up wrapped {@link MineverseChatPlayer} objects from
* {@link Player}, {@link UUID}, or {@link String} user names.
*
* @author Aust1n46
*/
public final class MineverseChatAPI {
private static HashMap<UUID, MineverseChatPlayer> playerMap = new HashMap<UUID, MineverseChatPlayer>();
private static HashMap<String, UUID> namesMap = new HashMap<String, UUID>();
private static HashMap<UUID, MineverseChatPlayer> onlinePlayerMap = new HashMap<UUID, MineverseChatPlayer>();
private static List<String> networkPlayerNames = new ArrayList<String>();
private static HashMap<UUID, SynchronizedMineverseChatPlayer> proxyPlayerMap = new HashMap<UUID, SynchronizedMineverseChatPlayer>();
public static List<String> getNetworkPlayerNames() {
return networkPlayerNames;
}
public static void clearNetworkPlayerNames() {
networkPlayerNames.clear();
}
public static void addNetworkPlayerName(String name) {
networkPlayerNames.add(name);
}
public static void addSynchronizedMineverseChatPlayerToMap(SynchronizedMineverseChatPlayer smcp) {
proxyPlayerMap.put(smcp.getUUID(), smcp);
}
// @Deprecated
// public static void clearBungeePlayerMap() {
// clearProxyPlayerMap();
// }
public static void clearProxyPlayerMap() {
proxyPlayerMap.clear();
}
public static Collection<SynchronizedMineverseChatPlayer> getSynchronizedMineverseChatPlayers() {
return proxyPlayerMap.values();
}
public static void addNameToMap(MineverseChatPlayer mcp) {
namesMap.put(mcp.getName(), mcp.getUUID());
}
public static void removeNameFromMap(String name) {
namesMap.remove(name);
}
public static void clearNameMap() {
namesMap.clear();
}
@SuppressWarnings("deprecation")
public static void addMineverseChatPlayerToMap(MineverseChatPlayer mcp) {
playerMap.put(mcp.getUUID(), mcp);
MineverseChat.players.add(mcp);
}
@SuppressWarnings("deprecation")
public static void clearMineverseChatPlayerMap() {
playerMap.clear();
MineverseChat.players.clear();
}
public static Collection<MineverseChatPlayer> getMineverseChatPlayers() {
return playerMap.values();
}
@SuppressWarnings("deprecation")
public static void addMineverseChatOnlinePlayerToMap(MineverseChatPlayer mcp) {
onlinePlayerMap.put(mcp.getUUID(), mcp);
MineverseChat.onlinePlayers.add(mcp);
}
@SuppressWarnings("deprecation")
public static void removeMineverseChatOnlinePlayerToMap(MineverseChatPlayer mcp) {
onlinePlayerMap.remove(mcp.getUUID());
MineverseChat.onlinePlayers.remove(mcp);
}
@SuppressWarnings("deprecation")
public static void clearOnlineMineverseChatPlayerMap() {
onlinePlayerMap.clear();
MineverseChat.onlinePlayers.clear();
}
public static Collection<MineverseChatPlayer> getOnlineMineverseChatPlayers() {
return onlinePlayerMap.values();
}
/**
* Get a MineverseChatPlayer wrapper from a Bukkit Player instance.
*
* @param player {@link Player} object.
* @return {@link MineverseChatPlayer}
*/
public static MineverseChatPlayer getMineverseChatPlayer(Player player) {
return getMineverseChatPlayer(player.getUniqueId());
}
/**
* Get a MineverseChatPlayer wrapper from a UUID.
*
* @param uuid {@link UUID}.
* @return {@link MineverseChatPlayer}
*/
public static MineverseChatPlayer getMineverseChatPlayer(UUID uuid) {
return playerMap.get(uuid);
}
/**
* Get a MineverseChatPlayer wrapper from a user name.
*
* @param name {@link String}.
* @return {@link MineverseChatPlayer}
*/
public static MineverseChatPlayer getMineverseChatPlayer(String name) {
return getMineverseChatPlayer(namesMap.get(name));
}
/**
* Get a MineverseChatPlayer wrapper from a Bukkit Player instance. Only checks
* current online players. Much more efficient!
*
* @param player {@link Player} object.
* @return {@link MineverseChatPlayer}
*/
public static MineverseChatPlayer getOnlineMineverseChatPlayer(Player player) {
return getOnlineMineverseChatPlayer(player.getUniqueId());
}
/**
* Get a MineverseChatPlayer wrapper from a UUID. Only checks current online
* players. Much more efficient!
*
* @param uuid {@link UUID}.
* @return {@link MineverseChatPlayer}
*/
public static MineverseChatPlayer getOnlineMineverseChatPlayer(UUID uuid) {
return onlinePlayerMap.get(uuid);
}
/**
* Get a MineverseChatPlayer wrapper from a user name. Only checks current
* online players. Much more efficient!
*
* @param name {@link String}.
* @return {@link MineverseChatPlayer}
*/
public static MineverseChatPlayer getOnlineMineverseChatPlayer(String name) {
return getOnlineMineverseChatPlayer(namesMap.get(name));
}
/**
* Get a SynchronizedMineverseChatPlayer from a UUID.
*
* @param uuid {@link UUID}
* @return {@link SynchronizedMineverseChatPlayer}
*/
public static SynchronizedMineverseChatPlayer getSynchronizedMineverseChatPlayer(UUID uuid) {
return proxyPlayerMap.get(uuid);
}
}

View File

@ -1,12 +1,12 @@
package mineverse.Aust1n46.chat.api.events;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import venture.Aust1n46.chat.model.ChatChannel;
/**
* Event called when a player attempts to join a valid channel
*/

View File

@ -1,12 +1,12 @@
package mineverse.Aust1n46.chat.api.events;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import venture.Aust1n46.chat.model.ChatChannel;
//This class is a custom event that is part of the plugins API. It is called when a player executes the mute command.
public class MutePlayerEvent extends Event implements Cancellable { //unimplemented
private static final HandlerList handlers = new HandlerList();

View File

@ -6,9 +6,9 @@ import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
/**
* Event called when a message has been sent to a channel.
@ -18,9 +18,8 @@ import mineverse.Aust1n46.chat.channel.ChatChannel;
*/
public class VentureChatEvent extends Event {
private static final HandlerList handlers = new HandlerList();
private final MineverseChatPlayer mcp;
private final VentureChatPlayer mcp;
private final String username;
private final String nickname;
private final String playerPrimaryGroup;
private final ChatChannel channel;
private final Set<Player> recipients;
@ -31,11 +30,10 @@ public class VentureChatEvent extends Event {
private final int hash;
private final boolean bungee;
public VentureChatEvent(MineverseChatPlayer mcp, String username, String nickname, String playerPrimaryGroup, ChatChannel channel, Set<Player> recipients, int recipientCount, String format, String chat, String globalJSON, int hash, boolean bungee) {
super(MineverseChat.ASYNC);
public VentureChatEvent(VentureChatPlayer mcp, String username, String playerPrimaryGroup, ChatChannel channel, Set<Player> recipients, int recipientCount, String format, String chat, String globalJSON, int hash, boolean bungee) {
super(VentureChat.ASYNC);
this.mcp = mcp;
this.username = username;
this.nickname = nickname;
this.playerPrimaryGroup = playerPrimaryGroup;
this.channel = channel;
this.recipients = recipients;
@ -47,7 +45,7 @@ public class VentureChatEvent extends Event {
this.bungee = bungee;
}
public MineverseChatPlayer getMineverseChatPlayer() {
public VentureChatPlayer getMineverseChatPlayer() {
return this.mcp;
}
@ -55,10 +53,6 @@ public class VentureChatEvent extends Event {
return this.username;
}
public String getNickname() {
return this.nickname;
}
public String getPlayerPrimaryGroup() {
return this.playerPrimaryGroup;
}

View File

@ -1,17 +0,0 @@
package mineverse.Aust1n46.chat.channel;
import mineverse.Aust1n46.chat.utilities.Format;
public class ChatChannelInfo {
// DiscordSRV backwards compatibility
@Deprecated
public String FilterChat(String msg) {
return Format.FilterChat(msg);
}
// DiscordSRV backwards compatibility
@Deprecated
public ChatChannel getChannelInfo(String channel) {
return ChatChannel.getChannel(channel);
}
}

View File

@ -1,140 +0,0 @@
package mineverse.Aust1n46.chat.command;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.command.chat.Broadcast;
import mineverse.Aust1n46.chat.command.chat.BungeeToggle;
import mineverse.Aust1n46.chat.command.chat.Channel;
import mineverse.Aust1n46.chat.command.chat.Channelinfo;
import mineverse.Aust1n46.chat.command.chat.Chatinfo;
import mineverse.Aust1n46.chat.command.chat.Chatreload;
import mineverse.Aust1n46.chat.command.chat.Chlist;
import mineverse.Aust1n46.chat.command.chat.Chwho;
import mineverse.Aust1n46.chat.command.chat.Clearchat;
import mineverse.Aust1n46.chat.command.chat.Commandblock;
import mineverse.Aust1n46.chat.command.chat.Commandspy;
import mineverse.Aust1n46.chat.command.chat.Config;
import mineverse.Aust1n46.chat.command.chat.Edit;
import mineverse.Aust1n46.chat.command.chat.Filter;
import mineverse.Aust1n46.chat.command.chat.Force;
import mineverse.Aust1n46.chat.command.chat.Forceall;
import mineverse.Aust1n46.chat.command.chat.Kickchannel;
import mineverse.Aust1n46.chat.command.chat.Kickchannelall;
import mineverse.Aust1n46.chat.command.chat.Leave;
import mineverse.Aust1n46.chat.command.chat.Listen;
import mineverse.Aust1n46.chat.command.chat.Me;
import mineverse.Aust1n46.chat.command.chat.Party;
import mineverse.Aust1n46.chat.command.chat.RangedSpy;
import mineverse.Aust1n46.chat.command.chat.Removemessage;
import mineverse.Aust1n46.chat.command.chat.Setchannel;
import mineverse.Aust1n46.chat.command.chat.Setchannelall;
import mineverse.Aust1n46.chat.command.chat.VentureChatGui;
import mineverse.Aust1n46.chat.command.chat.Venturechat;
import mineverse.Aust1n46.chat.command.message.IgnoreCommandExecutor;
import mineverse.Aust1n46.chat.command.message.MessageCommandExecutor;
import mineverse.Aust1n46.chat.command.message.MessageToggle;
import mineverse.Aust1n46.chat.command.message.Notifications;
import mineverse.Aust1n46.chat.command.message.Reply;
import mineverse.Aust1n46.chat.command.message.Spy;
import mineverse.Aust1n46.chat.command.mute.Mute;
import mineverse.Aust1n46.chat.command.mute.Muteall;
import mineverse.Aust1n46.chat.command.mute.Unmute;
import mineverse.Aust1n46.chat.command.mute.Unmuteall;
/**
* Class that initializes and executes the plugin's commands.
*/
public class VentureCommandExecutor implements TabExecutor {
private static Map<String, VentureCommand> commands = new HashMap<String, VentureCommand>();
private static MineverseChat plugin = MineverseChat.getInstance();
private static VentureCommandExecutor commandExecutor;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) {
commands.get(command.getName()).execute(sender, command.getName(), parameters);
return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
return commands.get(command.getName()).onTabComplete(sender, command, label, args);
}
public static void initialize() {
commandExecutor = new VentureCommandExecutor();
commands.put("broadcast", new Broadcast());
commands.put("channel", new Channel());
commands.put("join", new Channel());
commands.put("channelinfo", new Channelinfo());
commands.put("chatinfo", new Chatinfo());
commands.put("chatreload", new Chatreload());
commands.put("chlist", new Chlist());
commands.put("chwho", new Chwho());
commands.put("clearchat", new Clearchat());
commands.put("commandblock", new Commandblock());
commands.put("commandspy", new Commandspy());
commands.put("config", new Config());
commands.put("edit", new Edit());
commands.put("filter", new Filter());
commands.put("force", new Force());
commands.put("forceall", new Forceall());
commands.put("kickchannel", new Kickchannel());
commands.put("kickchannelall", new Kickchannelall());
commands.put("leave", new Leave());
commands.put("listen", new Listen());
commands.put("me", new Me());
commands.put("venturechat", new Venturechat());
commands.put("notifications", new Notifications());
commands.put("party", new Party());
commands.put("rangedspy", new RangedSpy());
commands.put("removemessage", new Removemessage());
commands.put("setchannel", new Setchannel());
commands.put("setchannelall", new Setchannelall());
commands.put("spy", new Spy());
commands.put("venturechatgui", new VentureChatGui());
commands.put("messagetoggle", new MessageToggle());
commands.put("bungeetoggle", new BungeeToggle());
for(String command : commands.keySet()) {
registerCommand(command, commandExecutor);
}
plugin.getServer().getScheduler().runTaskLater(plugin, () -> {
VentureCommand reply = new Reply();
commands.put("reply", reply);
commands.put("r", reply);
registerCommand("reply", commandExecutor);
registerCommand("r", commandExecutor);
commands.put("mute", new Mute());
commands.put("muteall", new Muteall());
commands.put("unmute", new Unmute());
commands.put("unmuteall", new Unmuteall());
registerCommand("mute", commandExecutor);
registerCommand("muteall", commandExecutor);
registerCommand("unmute", commandExecutor);
registerCommand("unmuteall", commandExecutor);
MessageCommandExecutor messageCommandExecutor = new MessageCommandExecutor();
registerCommand("message", messageCommandExecutor);
registerCommand("msg", messageCommandExecutor);
registerCommand("tell", messageCommandExecutor);
registerCommand("whisper", messageCommandExecutor);
registerCommand("ignore", new IgnoreCommandExecutor());
}, 0);
}
private static void registerCommand(String command, CommandExecutor commandExecutor) {
if(plugin.getCommand(command) != null) {
plugin.getCommand(command).setExecutor(commandExecutor);
}
}
}

View File

@ -1,78 +0,0 @@
package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.api.events.ChannelJoinEvent;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class Channel implements VentureCommand, Listener {
@Override
public void execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
if (args.length > 0) {
if (!ChatChannel.isChannel(args[0])) {
mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString()
.replace("{args}", args[0]));
return;
}
ChatChannel channel = ChatChannel.getChannel(args[0]);
Bukkit.getServer().getPluginManager().callEvent(new ChannelJoinEvent(mcp.getPlayer(), channel, LocalizedMessage.SET_CHANNEL.toString()
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName())));
return;
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/channel")
.replace("{args}", "[channel]"));
return;
}
@EventHandler(priority = EventPriority.MONITOR)
public void onChannelJoin(ChannelJoinEvent event) {
if (event.isCancelled())
return;
ChatChannel channel = event.getChannel();
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer());
if (channel.hasPermission()) {
if (!mcp.getPlayer().hasPermission(channel.getPermission())) {
mcp.removeListening(channel.getName());
mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION.toString());
return;
}
}
if (mcp.hasConversation()) {
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if (p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()));
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString()
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()));
mcp.setConversation(null);
}
mcp.addListening(channel.getName());
mcp.setCurrentChannel(channel);
mcp.getPlayer().sendMessage(event.getMessage());
if (channel.getBungee()) {
MineverseChat.synchronize(mcp, true);
}
return;
}
}

View File

@ -1,60 +0,0 @@
package mineverse.Aust1n46.chat.command.chat;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.database.PlayerData;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
public class Chatreload implements VentureCommand {
private MineverseChat plugin = MineverseChat.getInstance();
@Override
public void execute(CommandSender sender, String command, String[] args) {
if(sender.hasPermission("venturechat.reload")) {
PlayerData.savePlayerData();
MineverseChatAPI.clearMineverseChatPlayerMap();
MineverseChatAPI.clearNameMap();
MineverseChatAPI.clearOnlineMineverseChatPlayerMap();
plugin.reloadConfig();
MineverseChat.initializeConfigReaders();
PlayerData.loadLegacyPlayerData();
PlayerData.loadPlayerData();
for(Player p : plugin.getServer().getOnlinePlayers()) {
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(p);
if(mcp == null) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName()));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - There could be an issue with your player data saving."));
String name = p.getName();
UUID uuid = p.getUniqueId();
mcp = new MineverseChatPlayer(uuid, name);
}
mcp.setOnline(true);
mcp.setHasPlayed(false);
mcp.setJsonFormat();
MineverseChatAPI.addMineverseChatOnlinePlayerToMap(mcp);
MineverseChatAPI.addNameToMap(mcp);
}
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded"));
for(MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(player.getPlayer().hasPermission("venturechat.reload")) {
player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString());
}
}
return;
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,91 +0,0 @@
package mineverse.Aust1n46.chat.listeners;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.database.PlayerData;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.UUIDFetcher;
/**
* Manages player login and logout events.
*
* @author Aust1n46
*/
public class LoginListener implements Listener {
private MineverseChat plugin = MineverseChat.getInstance();
@EventHandler(priority = EventPriority.LOW)
public void onPlayerQuit(PlayerQuitEvent playerQuitEvent) {
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(playerQuitEvent.getPlayer());
PlayerData.savePlayerData(mcp);
mcp.clearMessages();
mcp.setOnline(false);
MineverseChatAPI.removeMineverseChatOnlinePlayerToMap(mcp);
}
void handleNameChange(MineverseChatPlayer mcp, Player eventPlayerInstance) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Detected Name Change. Old Name:&c " + mcp.getName() + " &eNew Name:&c " + eventPlayerInstance.getName()));
MineverseChatAPI.removeNameFromMap(mcp.getName());
mcp.setName(eventPlayerInstance.getName());
MineverseChatAPI.addNameToMap(mcp);
}
@EventHandler(priority = EventPriority.LOW)
public void onPlayerJoin(PlayerJoinEvent event) throws Exception {
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(event.getPlayer());
Player player = event.getPlayer();
String name = player.getName();
if(mcp == null) {
UUID uuid = player.getUniqueId();
mcp = new MineverseChatPlayer(uuid, name);
MineverseChatAPI.addMineverseChatPlayerToMap(mcp);
MineverseChatAPI.addNameToMap(mcp);
}
UUIDFetcher.checkOfflineUUIDWarning(mcp.getUUID());
//check for name change
if(!mcp.getName().equals(name)) {
handleNameChange(mcp, event.getPlayer());
}
mcp.setOnline(true);
mcp.setHasPlayed(false);
MineverseChatAPI.addMineverseChatOnlinePlayerToMap(mcp);
mcp.setJsonFormat();
for(ChatChannel ch : ChatChannel.getAutojoinList()) {
if(ch.hasPermission()) {
if(mcp.getPlayer().hasPermission(ch.getPermission())) {
mcp.addListening(ch.getName());
}
}
else {
mcp.addListening(ch.getName());
}
}
try {
if(plugin.getServer().spigot().getConfig().getBoolean("settings.bungeecord") || plugin.getServer().spigot().getPaperConfig().getBoolean("settings.velocity-support.enabled")) {
long delayInTicks = 20L;
final MineverseChatPlayer sync = mcp;
plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
public void run() {
MineverseChat.synchronize(sync, false);
}
}, delayInTicks);
}
}
catch(NoSuchMethodError exception) { // Thrown if server isn't Paper.
// Do nothing
}
}
}

View File

@ -1,6 +1,6 @@
package mineverse.Aust1n46.chat.localization;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
/**
* Messages internal to the plugin
@ -18,6 +18,6 @@ public enum InternalMessage {
@Override
public String toString() {
return Format.FormatStringAll(this.message);
return FormatUtils.FormatStringAll(this.message);
}
}
}

View File

@ -2,21 +2,19 @@ package mineverse.Aust1n46.chat.localization;
import java.io.File;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.utilities.Format;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
//This class is used to create objects of localization for different languages.
public class Localization {
private static MineverseChat plugin = MineverseChat.getInstance();
public class Localization {
private static final String VERSION = "2.22.4";
private static FileConfiguration localization;
private static final String VERSION = "2.22.4";
public static void initialize() {
public static void initialize(final VentureChat plugin) {
File localizationFile = new File(plugin.getDataFolder().getAbsolutePath(), "Messages.yml");
if(!localizationFile.isFile()) {
plugin.saveResource("Messages.yml", true);
@ -27,7 +25,7 @@ public class Localization {
String fileVersion = localization.getString("Version", "null");
if(!fileVersion.equals(VERSION)) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Version Change Detected! Saving Old Messages.yml and Generating Latest File"));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Version Change Detected! Saving Old Messages.yml and Generating Latest File"));
localizationFile.renameTo(new File(plugin.getDataFolder().getAbsolutePath(), "Messages_Old_" + fileVersion + ".yml"));
plugin.saveResource("Messages.yml", true);
localization = YamlConfiguration.loadConfiguration(localizationFile);
@ -37,4 +35,4 @@ public class Localization {
public static FileConfiguration getLocalization() {
return localization;
}
}
}

View File

@ -1,6 +1,6 @@
package mineverse.Aust1n46.chat.localization;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
/**
* Messages configurable in Messages.yml file.
@ -115,6 +115,6 @@ public enum LocalizedMessage {
@Override
public String toString() {
return Format.FormatStringAll(Localization.getLocalization().getString(this.message));
return FormatUtils.FormatStringAll(Localization.getLocalization().getString(this.message));
}
}

View File

@ -7,9 +7,9 @@ import java.nio.file.Files;
import java.util.List;
import java.util.stream.Collectors;
import mineverse.Aust1n46.chat.database.ProxyPlayerData;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.UUIDFetcher;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.config.ServerInfo;
@ -25,6 +25,8 @@ import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
import net.md_5.bungee.event.EventHandler;
import venture.Aust1n46.chat.controllers.VentureChatProxyFlatFileController;
import venture.Aust1n46.chat.service.UUIDService;
/**
* VentureChat Minecraft plugin for BungeeCord.
@ -34,6 +36,13 @@ import net.md_5.bungee.event.EventHandler;
public class VentureChatBungee extends Plugin implements Listener, VentureChatProxySource {
private static Configuration bungeeConfig;
private File bungeePlayerDataDirectory;
@Inject
private UUIDService uuidService;
@Inject
private VentureChatProxyFlatFileController proxyFlatFileController;
@Inject
private VentureChatProxy proxy;
@Override
public void onEnable() {
@ -52,8 +61,8 @@ public class VentureChatBungee extends Plugin implements Listener, VentureChatPr
}
bungeePlayerDataDirectory = new File(getDataFolder().getAbsolutePath() + "/PlayerData");
ProxyPlayerData.loadLegacyBungeePlayerData(bungeePlayerDataDirectory, this);
ProxyPlayerData.loadProxyPlayerData(bungeePlayerDataDirectory, this);
proxyFlatFileController.loadLegacyBungeePlayerData(bungeePlayerDataDirectory, this);
proxyFlatFileController.loadProxyPlayerData(bungeePlayerDataDirectory, this);
this.getProxy().registerChannel(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_STRING);
this.getProxy().getPluginManager().registerListener(this, this);
@ -61,7 +70,7 @@ public class VentureChatBungee extends Plugin implements Listener, VentureChatPr
@Override
public void onDisable() {
ProxyPlayerData.saveProxyPlayerData(bungeePlayerDataDirectory, this);
proxyFlatFileController.saveProxyPlayerData(bungeePlayerDataDirectory, this);
}
@EventHandler
@ -76,7 +85,7 @@ public class VentureChatBungee extends Plugin implements Listener, VentureChatPr
@EventHandler
public void onPlayerJoinNetwork(PostLoginEvent event) {
UUIDFetcher.checkOfflineUUIDWarningProxy(event.getPlayer().getUniqueId(), this);
uuidService.checkOfflineUUIDWarningProxy(event.getPlayer().getUniqueId(), this);
}
private void updatePlayerNames() {
@ -109,7 +118,7 @@ public class VentureChatBungee extends Plugin implements Listener, VentureChatPr
return;
}
String serverName = ((Server) event.getSender()).getInfo().getName();
VentureChatProxy.onPluginMessage(event.getData(), serverName, this);
proxy.onPluginMessage(event.getData(), serverName, this);
}
@Override
@ -130,7 +139,7 @@ public class VentureChatBungee extends Plugin implements Listener, VentureChatPr
@Override
public void sendConsoleMessage(String message) {
ProxyServer.getInstance().getConsole().sendMessage(TextComponent.fromLegacyText(Format.FormatStringAll(message)));
ProxyServer.getInstance().getConsole().sendMessage(TextComponent.fromLegacyText(FormatUtils.FormatStringAll(message)));
}
@Override

View File

@ -7,17 +7,22 @@ import java.io.DataOutputStream;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.SynchronizedMineverseChatPlayer;
import mineverse.Aust1n46.chat.command.mute.MuteContainer;
import mineverse.Aust1n46.chat.database.TemporaryDataInstance;
import com.google.inject.Inject;
import venture.Aust1n46.chat.controllers.commands.MuteContainer;
import venture.Aust1n46.chat.model.SynchronizedVentureChatPlayer;
import venture.Aust1n46.chat.model.TemporaryDataInstance;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class VentureChatProxy {
public static String PLUGIN_MESSAGING_CHANNEL_NAMESPACE = "venturechat";
public static String PLUGIN_MESSAGING_CHANNEL_NAME = "data";
public static String PLUGIN_MESSAGING_CHANNEL_STRING = "venturechat:data";
public static void onPluginMessage(byte[] data, String serverName, VentureChatProxySource source) {
@Inject
private VentureChatPlayerApiService playerApiService;
public void onPluginMessage(byte[] data, String serverName, VentureChatProxySource source) {
ByteArrayInputStream instream = new ByteArrayInputStream(data);
DataInputStream in = new DataInputStream(instream);
try {
@ -74,7 +79,7 @@ public class VentureChatProxy {
String server = serverName;
String sender = in.readUTF();
String channel = in.readUTF();
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
SynchronizedVentureChatPlayer smcp = playerApiService.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
if(smcp == null) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c Synchronized player instance is null! This shouldn't be!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c You probably have an issue with your player data saving and/or your login data sync!");
@ -97,7 +102,7 @@ public class VentureChatProxy {
String server = in.readUTF();
String sender = in.readUTF();
String channel = in.readUTF();
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
SynchronizedVentureChatPlayer smcp = playerApiService.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
if(smcp == null) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c Synchronized player instance is null! This shouldn't be!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c You probably have an issue with your player data saving and/or your login data sync!");
@ -145,7 +150,7 @@ public class VentureChatProxy {
String server = serverName;
String player = in.readUTF();
String sender = in.readUTF();
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
SynchronizedVentureChatPlayer smcp = playerApiService.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
if(smcp == null) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c Synchronized player instance is null! This shouldn't be!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c You probably have an issue with your player data saving and/or your login data sync!");
@ -167,7 +172,7 @@ public class VentureChatProxy {
String server = in.readUTF();
String player = in.readUTF();
String sender = in.readUTF();
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
SynchronizedVentureChatPlayer smcp = playerApiService.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
if(smcp == null) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c Synchronized player instance is null! This shouldn't be!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c You probably have an issue with your player data saving and/or your login data sync!");
@ -373,7 +378,7 @@ public class VentureChatProxy {
String echo = in.readUTF();
String spy = in.readUTF();
String msg = in.readUTF();
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
SynchronizedVentureChatPlayer smcp = playerApiService.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
if(smcp == null) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c Synchronized player instance is null! This shouldn't be!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c You probably have an issue with your player data saving and/or your login data sync!");
@ -400,7 +405,7 @@ public class VentureChatProxy {
String server = in.readUTF();
String player = in.readUTF();
String sender = in.readUTF();
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
SynchronizedVentureChatPlayer smcp = playerApiService.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
if(smcp == null) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c Synchronized player instance is null! This shouldn't be!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c You probably have an issue with your player data saving and/or your login data sync!");
@ -486,10 +491,10 @@ public class VentureChatProxy {
//System.out.println("Sending update...");
String server = serverName;
UUID uuid = UUID.fromString(in.readUTF());
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(uuid);
SynchronizedVentureChatPlayer smcp = playerApiService.getSynchronizedMineverseChatPlayer(uuid);
if(smcp == null) {
smcp = new SynchronizedMineverseChatPlayer(uuid);
MineverseChatAPI.addSynchronizedMineverseChatPlayerToMap(smcp);
smcp = new SynchronizedVentureChatPlayer(uuid);
playerApiService.addSynchronizedMineverseChatPlayerToMap(smcp);
}
out.writeUTF("Sync");
out.writeUTF(uuid.toString());
@ -524,10 +529,10 @@ public class VentureChatProxy {
}
if(identifier.equals("Update")) {
UUID uuid = UUID.fromString(in.readUTF());
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(uuid);
SynchronizedVentureChatPlayer smcp = playerApiService.getSynchronizedMineverseChatPlayer(uuid);
if(smcp == null) {
smcp = new SynchronizedMineverseChatPlayer(uuid);
MineverseChatAPI.addSynchronizedMineverseChatPlayerToMap(smcp);
smcp = new SynchronizedVentureChatPlayer(uuid);
playerApiService.addSynchronizedMineverseChatPlayerToMap(smcp);
}
smcp.getListening().clear();
smcp.clearMutes();
@ -549,7 +554,7 @@ public class VentureChatProxy {
for(int c = 0; c < sizeI; c++) {
String ignore = in.readUTF();
//System.out.println(mute);
smcp.addIgnore(MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(ignore)));
smcp.addIgnore(playerApiService.getSynchronizedMineverseChatPlayer(UUID.fromString(ignore)));
}
smcp.setSpy(in.readBoolean());
smcp.setMessageToggle(in.readBoolean());

View File

@ -29,11 +29,11 @@ import com.velocitypowered.api.proxy.messages.ChannelIdentifier;
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import mineverse.Aust1n46.chat.database.ProxyPlayerData;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
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;
/**
* VentureChat Minecraft plugin for Velocity.
@ -45,6 +45,11 @@ public class VentureChatVelocity implements VentureChatProxySource {
private final ChannelIdentifier channelIdentifier = MinecraftChannelIdentifier.create(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_NAMESPACE, VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_NAME);
private final Logger logger;
@Inject
private VentureChatProxyFlatFileController proxyFlatFileController;
@Inject
private VentureChatProxy proxy;
@Inject
@DataDirectory
private Path dataPath;
@ -82,12 +87,12 @@ public class VentureChatVelocity implements VentureChatProxySource {
}
velocityPlayerDataDirectory = new File(dataPath.toAbsolutePath().toString() + "/PlayerData");
ProxyPlayerData.loadProxyPlayerData(velocityPlayerDataDirectory, this);
proxyFlatFileController.loadProxyPlayerData(velocityPlayerDataDirectory, this);
}
@Subscribe
public void onShutdown(ProxyShutdownEvent event) {
ProxyPlayerData.saveProxyPlayerData(velocityPlayerDataDirectory, this);
proxyFlatFileController.saveProxyPlayerData(velocityPlayerDataDirectory, this);
}
@Subscribe
@ -138,7 +143,7 @@ public class VentureChatVelocity implements VentureChatProxySource {
return;
}
String serverName = ((ServerConnection) event.getSource()).getServerInfo().getName();
VentureChatProxy.onPluginMessage(event.getData(), serverName, this);
proxy.onPluginMessage(event.getData(), serverName, this);
event.setResult(ForwardResult.handled());
}
@ -163,7 +168,7 @@ public class VentureChatVelocity implements VentureChatProxySource {
@Override
public void sendConsoleMessage(String message) {
logger.info(Format.stripColor(message));
logger.info(FormatUtils.stripColor(message));
}
@Override

View File

@ -0,0 +1,301 @@
package mineverse.Aust1n46.chat.utilities;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.bukkit.ChatColor;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
public class FormatUtils {
public static final char BUKKIT_COLOR_CODE_PREFIX_CHAR = '\u00A7';
public static final String BUKKIT_COLOR_CODE_PREFIX = String.valueOf(BUKKIT_COLOR_CODE_PREFIX_CHAR);
public static final String HEX_COLOR_CODE_PREFIX = "#";
public static final String BUKKIT_HEX_COLOR_CODE_PREFIX = "x";
public static final String DEFAULT_COLOR_CODE = BUKKIT_COLOR_CODE_PREFIX + "f";
public static final long MILLISECONDS_PER_DAY = 86400000;
public static final long MILLISECONDS_PER_HOUR = 3600000;
public static final long MILLISECONDS_PER_MINUTE = 60000;
public static final long MILLISECONDS_PER_SECOND = 1000;
private static final Pattern LEGACY_CHAT_COLOR_DIGITS_PATTERN = Pattern.compile("&([0-9])");
private static final Pattern LEGACY_CHAT_COLOR_PATTERN = Pattern.compile(
"(?<!(&x(&[a-fA-F0-9]){5}))(?<!(&x(&[a-fA-F0-9]){4}))(?<!(&x(&[a-fA-F0-9]){3}))(?<!(&x(&[a-fA-F0-9]){2}))(?<!(&x(&[a-fA-F0-9]){1}))(?<!(&x))(&)([0-9a-fA-F])");
/**
* Convert a single hex color code to a single Bukkit hex color code.
*
* @param color to convert.
* @return {@link String}
*/
public static String convertHexColorCodeToBukkitColorCode(String color) {
color = color.replace("&", "");
StringBuilder bukkitColorCode = new StringBuilder(BUKKIT_COLOR_CODE_PREFIX + BUKKIT_HEX_COLOR_CODE_PREFIX);
for (int a = 1; a < color.length(); a++) {
bukkitColorCode.append(BUKKIT_COLOR_CODE_PREFIX + color.charAt(a));
}
return bukkitColorCode.toString().toLowerCase();
}
/**
* Convert an entire String of hex color codes to Bukkit hex color codes.
*
* @param string to convert.
* @return {@link String}
*/
public static String convertHexColorCodeStringToBukkitColorCodeString(String string) {
Pattern pattern = Pattern.compile("(&?#[0-9a-fA-F]{6})");
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
int indexStart = matcher.start();
int indexEnd = matcher.end();
String hexColor = string.substring(indexStart, indexEnd);
String bukkitColor = convertHexColorCodeToBukkitColorCode(hexColor);
string = string.replaceAll(hexColor, bukkitColor);
matcher.reset(string);
}
return string;
}
/**
* Formats a string with both Spigot legacy colors codes and Spigot and
* VentureChat hex color codes.
*
* @param string to format.
* @return {@link String}
*/
public static String FormatStringColor(String string) {
String allFormated = string;
allFormated = LEGACY_CHAT_COLOR_DIGITS_PATTERN.matcher(allFormated).replaceAll("\u00A7$1");
allFormated = allFormated.replaceAll("&[x]", BUKKIT_COLOR_CODE_PREFIX + "x");
allFormated = allFormated.replaceAll("&[aA]", BUKKIT_COLOR_CODE_PREFIX + "a");
allFormated = allFormated.replaceAll("&[bB]", BUKKIT_COLOR_CODE_PREFIX + "b");
allFormated = allFormated.replaceAll("&[cC]", BUKKIT_COLOR_CODE_PREFIX + "c");
allFormated = allFormated.replaceAll("&[dD]", BUKKIT_COLOR_CODE_PREFIX + "d");
allFormated = allFormated.replaceAll("&[eE]", BUKKIT_COLOR_CODE_PREFIX + "e");
allFormated = allFormated.replaceAll("&[fF]", BUKKIT_COLOR_CODE_PREFIX + "f");
allFormated = allFormated.replaceAll("%", "\\%");
allFormated = convertHexColorCodeStringToBukkitColorCodeString(allFormated);
return allFormated;
}
/**
* Formats a string with only legacy Spigot color codes &[0-9a-f]. Does not
* format the legacy color codes that make up a Spigot hex color code.
*
* @param string to format.
* @return {@link String}
*/
public static String FormatStringLegacyColor(String string) {
String allFormated = string;
allFormated = LEGACY_CHAT_COLOR_PATTERN.matcher(allFormated).replaceAll("\u00A7$13");
allFormated = allFormated.replaceAll(BUKKIT_COLOR_CODE_PREFIX + "[A]", BUKKIT_COLOR_CODE_PREFIX + "a");
allFormated = allFormated.replaceAll(BUKKIT_COLOR_CODE_PREFIX + "[B]", BUKKIT_COLOR_CODE_PREFIX + "b");
allFormated = allFormated.replaceAll(BUKKIT_COLOR_CODE_PREFIX + "[C]", BUKKIT_COLOR_CODE_PREFIX + "c");
allFormated = allFormated.replaceAll(BUKKIT_COLOR_CODE_PREFIX + "[D]", BUKKIT_COLOR_CODE_PREFIX + "d");
allFormated = allFormated.replaceAll(BUKKIT_COLOR_CODE_PREFIX + "[E]", BUKKIT_COLOR_CODE_PREFIX + "e");
allFormated = allFormated.replaceAll(BUKKIT_COLOR_CODE_PREFIX + "[F]", BUKKIT_COLOR_CODE_PREFIX + "f");
allFormated = allFormated.replaceAll("%", "\\%");
return allFormated;
}
/**
* Formats a string with Spigot formatting codes.
*
* @param string to format.
* @return {@link String}
*/
public static String FormatString(String string) {
String allFormated = string;
allFormated = allFormated.replaceAll("&[kK]", BUKKIT_COLOR_CODE_PREFIX + "k");
allFormated = allFormated.replaceAll("&[lL]", BUKKIT_COLOR_CODE_PREFIX + "l");
allFormated = allFormated.replaceAll("&[mM]", BUKKIT_COLOR_CODE_PREFIX + "m");
allFormated = allFormated.replaceAll("&[nN]", BUKKIT_COLOR_CODE_PREFIX + "n");
allFormated = allFormated.replaceAll("&[oO]", BUKKIT_COLOR_CODE_PREFIX + "o");
allFormated = allFormated.replaceAll("&[rR]", BUKKIT_COLOR_CODE_PREFIX + "r");
allFormated = allFormated.replaceAll("%", "\\%");
return allFormated;
}
/**
* Formats a string with Spigot legacy colors codes, Spigot and VentureChat hex
* color codes, and Spigot formatting codes.
*
* @param string to format.
* @return {@link String}
*/
public static String FormatStringAll(String string) {
String allFormated = FormatString(string);
allFormated = FormatStringColor(allFormated);
return allFormated;
}
/**
* Validates a hex color code.
*
* @param color to validate.
* @return true if color code is valid, false otherwise.
*/
public static boolean isValidHexColor(String color) {
Pattern pattern = Pattern.compile("(^&?#[0-9a-fA-F]{6}\\b)");
Matcher matcher = pattern.matcher(color);
return matcher.find();
}
public static boolean isValidColor(String color) {
Boolean bFound = false;
for (ChatColor bkColors : ChatColor.values()) {
if (color.equalsIgnoreCase(bkColors.name())) {
bFound = true;
}
}
return bFound;
}
public static String escapeAllRegex(String input) {
return input.replace("[", "\\[").replace("]", "\\]").replace("{", "\\{").replace("}", "\\}").replace("(", "\\(")
.replace(")", "\\)").replace("|", "\\|").replace("+", "\\+").replace("*", "\\*");
}
public static String parseTimeStringFromMillis(long millis) {
String timeString = "";
if(millis >= MILLISECONDS_PER_DAY) {
long numberOfDays = millis / MILLISECONDS_PER_DAY;
millis -= MILLISECONDS_PER_DAY * numberOfDays;
String units = LocalizedMessage.UNITS_DAY_PLURAL.toString();
if (numberOfDays == 1) {
units = LocalizedMessage.UNITS_DAY_SINGULAR.toString();
}
timeString += numberOfDays + " " + units + " ";
}
if(millis >= MILLISECONDS_PER_HOUR) {
long numberOfHours = millis / MILLISECONDS_PER_HOUR;
millis -= MILLISECONDS_PER_HOUR * numberOfHours;
String units = LocalizedMessage.UNITS_HOUR_PLURAL.toString();
if (numberOfHours == 1) {
units = LocalizedMessage.UNITS_HOUR_SINGULAR.toString();
}
timeString += numberOfHours + " " + units + " ";
}
if(millis >= MILLISECONDS_PER_MINUTE) {
long numberOfMinutes = millis / MILLISECONDS_PER_MINUTE;
millis -= MILLISECONDS_PER_MINUTE * numberOfMinutes;
String units = LocalizedMessage.UNITS_MINUTE_PLURAL.toString();
if (numberOfMinutes == 1) {
units = LocalizedMessage.UNITS_MINUTE_SINGULAR.toString();
}
timeString += numberOfMinutes + " " + units + " ";
}
if(millis >= MILLISECONDS_PER_SECOND) {
long numberOfSeconds = millis / MILLISECONDS_PER_SECOND;
millis -= MILLISECONDS_PER_SECOND * numberOfSeconds;
String units = LocalizedMessage.UNITS_SECOND_PLURAL.toString();
if (numberOfSeconds == 1) {
units = LocalizedMessage.UNITS_SECOND_SINGULAR.toString();
}
timeString += numberOfSeconds + " " + units;
}
return timeString.trim();
}
public static long parseTimeStringToMillis(String timeInput) {
long millis = 0L;
timeInput = timeInput.toLowerCase();
char validChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'd', 'h', 'm', 's' };
if(containsInvalidChars(validChars, timeInput)) {
return -1;
}
long countDayTokens = timeInput.chars().filter(ch -> ch == 'd').count();
long countHourTokens = timeInput.chars().filter(ch -> ch == 'h').count();
long countMinuteTokens = timeInput.chars().filter(ch -> ch == 'm').count();
long countSecondTokens = timeInput.chars().filter(ch -> ch == 's').count();
if(countDayTokens > 1 || countHourTokens > 1 || countMinuteTokens > 1 || countSecondTokens > 1) {
return -1;
}
int indexOfSecondToken = timeInput.indexOf("s");
int indexOfMinuteToken = timeInput.indexOf("m");
int indexOfHourToken = timeInput.indexOf("h");
int indexOfDayToken = timeInput.indexOf("d");
if(indexOfDayToken != -1) {
if((indexOfHourToken != -1 && indexOfHourToken < indexOfDayToken) || (indexOfMinuteToken != -1 && indexOfMinuteToken < indexOfDayToken) || (indexOfSecondToken != -1 && indexOfSecondToken < indexOfDayToken)) {
return -1;
}
}
if(indexOfHourToken != -1) {
if((indexOfMinuteToken != -1 && indexOfMinuteToken < indexOfHourToken) || (indexOfSecondToken != -1 && indexOfSecondToken < indexOfHourToken)) {
return -1;
}
}
if(indexOfMinuteToken != -1) {
if((indexOfSecondToken != -1 && indexOfSecondToken < indexOfMinuteToken)) {
return -1;
}
}
if(indexOfDayToken != -1) {
int numberOfDays = Integer.parseInt(timeInput.substring(0, indexOfDayToken));
timeInput = timeInput.substring(indexOfDayToken + 1);
millis += MILLISECONDS_PER_DAY * numberOfDays;
}
if(timeInput.length() > 0) {
indexOfHourToken = timeInput.indexOf("h");
if(indexOfHourToken != -1) {
int numberOfHours = Integer.parseInt(timeInput.substring(0, indexOfHourToken));
timeInput = timeInput.substring(indexOfHourToken + 1);
millis += MILLISECONDS_PER_HOUR * numberOfHours;
}
}
if(timeInput.length() > 0) {
indexOfMinuteToken = timeInput.indexOf("m");
if(indexOfMinuteToken != -1) {
int numberOfMinutes = Integer.parseInt(timeInput.substring(0, indexOfMinuteToken));
timeInput = timeInput.substring(indexOfMinuteToken + 1);
millis += MILLISECONDS_PER_MINUTE * numberOfMinutes;
}
}
if(timeInput.length() > 0) {
indexOfSecondToken = timeInput.indexOf("s");
if(indexOfSecondToken != -1) {
int numberOfSeconds = Integer.parseInt(timeInput.substring(0, indexOfSecondToken));
timeInput = timeInput.substring(indexOfSecondToken + 1);
millis += MILLISECONDS_PER_SECOND * numberOfSeconds;
}
}
return millis;
}
private static boolean containsInvalidChars(char[] validChars, String validate) {
for(char c : validate.toCharArray()) {
boolean isValidChar = false;
for(char v : validChars) {
if(c == v) {
isValidChar = true;
}
}
if(!isValidChar) {
return true;
}
}
return false;
}
public static String stripColor(String message) {
return message.replaceAll("(\u00A7([a-z0-9]))", "");
}
}

View File

@ -1,149 +0,0 @@
package mineverse.Aust1n46.chat.utilities;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.Callable;
import org.bukkit.Bukkit;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import com.google.common.collect.ImmutableList;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.proxy.VentureChatProxySource;
public class UUIDFetcher implements Callable<Map<String, UUID>> {
private static final double PROFILES_PER_REQUEST = 100;
private static final String PROFILE_URL = "https://api.mojang.com/profiles/minecraft";
private final JSONParser jsonParser = new JSONParser();
private final List<String> names;
private final boolean rateLimiting;
public UUIDFetcher(List<String> names, boolean rateLimiting) {
this.names = ImmutableList.copyOf(names);
this.rateLimiting = rateLimiting;
}
public UUIDFetcher(List<String> names) {
this(names, true);
}
public Map<String, UUID> call() throws Exception {
Map<String, UUID> uuidMap = new HashMap<String, UUID>();
int requests = (int) Math.ceil(names.size() / PROFILES_PER_REQUEST);
for(int i = 0; i < requests; i++) {
HttpURLConnection connection = createConnection();
String body = JSONArray.toJSONString(names.subList(i * 100, Math.min((i + 1) * 100, names.size())));
writeBody(connection, body);
JSONArray array = (JSONArray) jsonParser.parse(new InputStreamReader(connection.getInputStream()));
for(Object profile : array) {
JSONObject jsonProfile = (JSONObject) profile;
String id = (String) jsonProfile.get("id");
String name = (String) jsonProfile.get("name");
UUID uuid = UUIDFetcher.getUUID(id);
uuidMap.put(name, uuid);
}
if(rateLimiting && i != requests - 1) {
Thread.sleep(100L);
}
}
return uuidMap;
}
private static void writeBody(HttpURLConnection connection, String body) throws Exception {
OutputStream stream = connection.getOutputStream();
stream.write(body.getBytes());
stream.flush();
stream.close();
}
private static HttpURLConnection createConnection() throws Exception {
URL url = new URL(PROFILE_URL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(true);
return connection;
}
private static UUID getUUID(String id) {
return UUID.fromString(id.substring(0, 8) + "-" + id.substring(8, 12) + "-" + id.substring(12, 16) + "-" + id.substring(16, 20) + "-" + id.substring(20, 32));
}
public static byte[] toBytes(UUID uuid) {
ByteBuffer byteBuffer = ByteBuffer.wrap(new byte[16]);
byteBuffer.putLong(uuid.getMostSignificantBits());
byteBuffer.putLong(uuid.getLeastSignificantBits());
return byteBuffer.array();
}
public static UUID fromBytes(byte[] array) {
if(array.length != 16) {
throw new IllegalArgumentException("Illegal byte array length: " + array.length);
}
ByteBuffer byteBuffer = ByteBuffer.wrap(array);
long mostSignificant = byteBuffer.getLong();
long leastSignificant = byteBuffer.getLong();
return new UUID(mostSignificant, leastSignificant);
}
public static UUID getUUIDOf(String name) throws Exception {
return new UUIDFetcher(Arrays.asList(name)).call().get(name);
}
/**
* Returns whether the passed UUID is a v3 UUID. Offline UUIDs are v3, online are v4.
*
* @param uuid the UUID to check
* @return whether the UUID is a v3 UUID & thus is offline
*/
public static boolean uuidIsOffline(UUID uuid) {
return uuid.version() == 3;
}
public static boolean shouldSkipOfflineUUID(UUID uuid) {
return (uuidIsOffline(uuid) && !MineverseChat.getInstance().getConfig().getBoolean("offline_server_acknowledgement", false));
}
public static boolean shouldSkipOfflineUUIDProxy(UUID uuid, VentureChatProxySource source) {
return (uuidIsOffline(uuid) && !source.isOfflineServerAcknowledgementSet());
}
public static void checkOfflineUUIDWarning(UUID uuid) {
if(shouldSkipOfflineUUID(uuid)) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Detected Offline UUID!"));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - If you are using BungeeCord, make sure you have properly setup IP Forwarding."));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - https://www.spigotmc.org/wiki/bungeecord-ip-forwarding/"));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - You can access this wiki page from the log file or just Google it."));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - If you're running a \"cracked\" server, player data might not be stored properly, and thus, you are on your own."));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - If you run your server in offline mode, you will probably lose your player data when switching to online mode!"));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - No player data will be saved in offline mode unless you set the \"cracked\" server acknowledgement in the config!"));
return;
}
}
public static void checkOfflineUUIDWarningProxy(UUID uuid, VentureChatProxySource source) {
if(shouldSkipOfflineUUIDProxy(uuid, source)) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c - Detected Offline UUID!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - If you are using BungeeCord, make sure you have properly setup IP Forwarding.");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - https://www.spigotmc.org/wiki/bungeecord-ip-forwarding/");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - You can access this wiki page from the log file or just Google it.");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - If you're running a \"cracked\" server, player data might not be stored properly, and thus, you are on your own.");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - If you run your server in offline mode, you will probably lose your player data when switching to online mode!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - No player data will be saved in offline mode unless you set the \"cracked\" server acknowledgement in the config!");
return;
}
}
}

View File

@ -0,0 +1,62 @@
package venture.Aust1n46.chat;
import org.slf4j.LoggerFactory;
import com.google.inject.Inject;
public class Logger {
private static final String LOG_PREFIX = "[VentureChat] ";
private org.slf4j.Logger parent = LoggerFactory.getLogger(Logger.class);
@Inject
private VentureChat plugin;
public void info(String message) {
parent.info(LOG_PREFIX + message);
}
public void info(String format, Object arg) {
parent.info(LOG_PREFIX + format, arg);
}
public void info(String format, Object arg1, Object arg2) {
parent.info(LOG_PREFIX + format, arg1, arg2);
}
public void info(String format, Object... arguments) {
parent.info(LOG_PREFIX + format, arguments);
}
public void debug(String message) {
if (plugin.getConfig().getString("loglevel", "info").equals("debug")) {
info(message);
}
}
public void debug(String format, Object arg) {
if (plugin.getConfig().getString("loglevel", "info").equals("debug")) {
info(format, arg);
}
}
public void debug(String format, Object arg1, Object arg2) {
if (plugin.getConfig().getString("loglevel", "info").equals("debug")) {
info(format, arg1, arg2);
}
}
public void debug(String format, Object... arguments) {
if (plugin.getConfig().getString("loglevel", "info").equals("debug")) {
info(format, arguments);
}
}
public void warn(String message) {
parent.warn(message);
}
public void error(String message) {
parent.error(message);
}
}

View File

@ -0,0 +1,216 @@
package venture.Aust1n46.chat;
import java.io.File;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.plugin.messaging.PluginMessageListener;
import org.bukkit.scheduler.BukkitScheduler;
import com.comphenix.protocol.ProtocolLibrary;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import mineverse.Aust1n46.chat.localization.Localization;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.permission.Permission;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.controllers.VentureChatSpigotFlatFileController;
import venture.Aust1n46.chat.initiators.listeners.ChatListener;
import venture.Aust1n46.chat.initiators.listeners.CommandListener;
import venture.Aust1n46.chat.initiators.listeners.LoginListener;
import venture.Aust1n46.chat.initiators.listeners.PacketListener;
import venture.Aust1n46.chat.initiators.listeners.SignListener;
import venture.Aust1n46.chat.initiators.listeners.VentureCommandExecutor;
import venture.Aust1n46.chat.initiators.schedulers.UnmuteScheduler;
import venture.Aust1n46.chat.model.Alias;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.GuiSlot;
import venture.Aust1n46.chat.model.JsonFormat;
import venture.Aust1n46.chat.service.VentureChatDatabaseService;
import venture.Aust1n46.chat.service.VentureChatFormatService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
/**
* VentureChat Minecraft plugin for servers running Spigot or Paper software.
*
* @author Aust1n46
*/
@Singleton
public class VentureChat extends JavaPlugin implements PluginMessageListener {
public static final boolean ASYNC = true;
public static final boolean SYNC = false;
public static final int LINE_LENGTH = 40;
@Inject
private LoginListener loginListener;
@Inject
private ChatListener chatListener;
@Inject
private SignListener signListener;
@Inject
private CommandListener commandListener;
@Inject
private VentureCommandExecutor commandExecutor;
@Inject
private PacketListener packetListener;
@Inject
private VentureChatPlaceholders ventureChatPlaceholders;
@Inject
private VentureChatFormatService formatter;
@Inject
private VentureChatDatabaseService databaseService;
@Inject
private VentureChatSpigotFlatFileController spigotFlatFileService;
@Inject
private VentureChatPlayerApiService playerApiService;
@Inject
private UnmuteScheduler unmuteScheduler;
@Inject
private PluginMessageController pluginMessageController;
private Permission permission = null;
@Override
public void onEnable() {
VentureChatPluginModule pluginModule = new VentureChatPluginModule(this);
pluginModule.createInjector().injectMembers(this);
try {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Initializing..."));
if(!getDataFolder().exists()) {
getDataFolder().mkdirs();
}
File file = new File(getDataFolder(), "config.yml");
if(!file.exists()) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Config not found! Generating file."));
saveDefaultConfig();
}
else {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Config found! Loading file."));
}
saveResource("example_config_always_up_to_date!.yml", true);
}
catch(Exception ex) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - &cCould not load configuration! Something unexpected went wrong!"));
}
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Checking for Vault..."));
if(!setupPermissions() || !setupChat()) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - &cCould not find Vault and/or a Vault compatible permissions plugin!"));
Bukkit.getPluginManager().disablePlugin(this);
}
initializeConfigReaders();
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Loading player data"));
spigotFlatFileService.loadLegacyPlayerData();
spigotFlatFileService.loadPlayerData();
registerListeners();
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Registering Listeners"));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Attaching to Executors"));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Establishing BungeeCord"));
Bukkit.getMessenger().registerOutgoingPluginChannel(this, PluginMessageController.PLUGIN_MESSAGING_CHANNEL);
Bukkit.getMessenger().registerIncomingPluginChannel(this, PluginMessageController.PLUGIN_MESSAGING_CHANNEL, this);
PluginManager pluginManager = getServer().getPluginManager();
if(pluginManager.isPluginEnabled("Towny")) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Enabling Towny Formatting"));
}
if(pluginManager.isPluginEnabled("Jobs")) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Enabling Jobs Formatting"));
}
if(pluginManager.isPluginEnabled("Factions")) {
String version = pluginManager.getPlugin("Factions").getDescription().getVersion();
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Enabling Factions Formatting version " + version));
}
if(pluginManager.isPluginEnabled("PlaceholderAPI")) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Enabling PlaceholderAPI Hook"));
}
ventureChatPlaceholders.register();
startRepeatingTasks();
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Enabled Successfully"));
}
@Override
public void onLoad() {
//new DebugLoggingProvider().enableDebugLogging();
}
@Override
public void onDisable() {
spigotFlatFileService.savePlayerData();
playerApiService.clearMineverseChatPlayerMap();
playerApiService.clearNameMap();
playerApiService.clearOnlineMineverseChatPlayerMap();
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Disabling..."));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Disabled Successfully"));
}
private void startRepeatingTasks() {
BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
scheduler.runTaskTimerAsynchronously(this, new Runnable() {
@Override
public void run() {
spigotFlatFileService.savePlayerData();
if(getConfig().getString("loglevel", "info").equals("debug")) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Saving Player Data"));
}
}
}, 0L, getConfig().getInt("saveinterval") * 1200); //one minute * save interval
}
private void registerListeners() {
PluginManager pluginManager = getServer().getPluginManager();
pluginManager.registerEvents(chatListener, this);
pluginManager.registerEvents(signListener, this);
pluginManager.registerEvents(commandListener, this);
pluginManager.registerEvents(loginListener, this);
ProtocolLibrary.getProtocolManager().addPacketListener(packetListener);
}
private boolean setupPermissions() {
RegisteredServiceProvider<Permission> permissionProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
if(permissionProvider != null) {
permission = permissionProvider.getProvider();
}
return(permission != null);
}
private boolean setupChat() {
RegisteredServiceProvider<Chat> chatProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.chat.Chat.class);
Chat chat = null;
if(chatProvider != null) {
chat = chatProvider.getProvider();
}
return(chat != null);
}
public void initializeConfigReaders() {
Localization.initialize(this);
Alias.initialize(this);
JsonFormat.initialize(this);
GuiSlot.initialize(this);
ChatChannel.initialize(this, formatter, false);
}
public Permission getVaultPermission() {
return permission;
}
@Override
public void onPluginMessageReceived(final String channel, final Player player, final byte[] inputStream) {
pluginMessageController.processInboundPluginMessage(channel, player, inputStream);
}
}

View File

@ -1,26 +1,30 @@
package mineverse.Aust1n46.chat;
package venture.Aust1n46.chat;
import org.bukkit.entity.Player;
import com.google.inject.Inject;
import me.clip.placeholderapi.PlaceholderAPIPlugin;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class VentureChatPlaceholders extends PlaceholderExpansion {
@Inject
private VentureChat plugin;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public String onPlaceholderRequest(Player p, String identifier) {
if (p == null) {
return null;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(p);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(p);
if (mcp == null) {
return "";
}
if (identifier.equalsIgnoreCase("nickname")) {
return mcp.hasNickname() ? mcp.getNickname() : mcp.getName();
}
if (identifier.equalsIgnoreCase("something_else_you_think_of")) {
return "value for that identifier *";
}
@ -73,6 +77,6 @@ public class VentureChatPlaceholders extends PlaceholderExpansion {
@Override
public String getVersion() {
return MineverseChat.getInstance().getDescription().getVersion();
return plugin.getDescription().getVersion();
}
}

View File

@ -0,0 +1,22 @@
package venture.Aust1n46.chat;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
public class VentureChatPluginModule extends AbstractModule {
private final VentureChat plugin;
public VentureChatPluginModule(final VentureChat plugin) {
this.plugin = plugin;
}
public Injector createInjector() {
return Guice.createInjector(this);
}
@Override
protected void configure() {
this.bind(VentureChat.class).toInstance(plugin);
}
}

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.database;
package venture.Aust1n46.chat.controllers;
import java.io.File;
import java.io.IOException;
@ -11,22 +11,29 @@ import java.util.Set;
import java.util.StringTokenizer;
import java.util.UUID;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.SynchronizedMineverseChatPlayer;
import mineverse.Aust1n46.chat.command.mute.MuteContainer;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.proxy.VentureChatProxySource;
import mineverse.Aust1n46.chat.utilities.UUIDFetcher;
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.commands.MuteContainer;
import venture.Aust1n46.chat.model.SynchronizedVentureChatPlayer;
import venture.Aust1n46.chat.service.UUIDService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
/**
* Class for reading and writing proxy player data.
*
* @author Aust1n46
*/
public class ProxyPlayerData {
public static void loadLegacyBungeePlayerData(File dataFolder, VentureChatProxySource source) {
public class VentureChatProxyFlatFileController {
@Inject
private UUIDService uuidService;
@Inject
private VentureChatPlayerApiService playerApiService;
public void loadLegacyBungeePlayerData(File dataFolder, VentureChatProxySource source) {
File sync = new File(dataFolder, "BungeePlayers.yml");
if (!sync.exists()) {
return;
@ -37,7 +44,7 @@ public class ProxyPlayerData {
Configuration playerData = ConfigurationProvider.getProvider(YamlConfiguration.class).load(sync);
for (String uuidString : playerData.getKeys()) {
UUID uuid = UUID.fromString(uuidString);
if (UUIDFetcher.shouldSkipOfflineUUIDProxy(uuid, source)) {
if (uuidService.shouldSkipOfflineUUIDProxy(uuid, source)) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c - Skipping Offline UUID: " + uuid);
continue;
}
@ -62,10 +69,10 @@ public class ProxyPlayerData {
}
boolean spy = playerData.getBoolean(uuidString + ".spy");
boolean messageToggle = playerData.getBoolean(uuidString + ".messagetoggle");
MineverseChatAPI.addSynchronizedMineverseChatPlayerToMap(new SynchronizedMineverseChatPlayer(uuid, listening, mutes, ignores, spy, messageToggle));
playerApiService.addSynchronizedMineverseChatPlayerToMap(new SynchronizedVentureChatPlayer(uuid, listening, mutes, ignores, spy, messageToggle));
}
} catch (Exception e) {
MineverseChatAPI.clearProxyPlayerMap();
playerApiService.clearProxyPlayerMap();
source.sendConsoleMessage("&8[&eVentureChat&8]&c - Error Loading Legacy Player Data!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - Deleted BungeePlayers.yml file!");
} finally {
@ -73,7 +80,7 @@ public class ProxyPlayerData {
}
}
public static void loadProxyPlayerData(File dataFolder, VentureChatProxySource source) {
public void loadProxyPlayerData(File dataFolder, VentureChatProxySource source) {
try {
File playerDataDirectory = dataFolder;
if (!playerDataDirectory.exists()) {
@ -87,8 +94,8 @@ public class ProxyPlayerData {
}
}
private static void readProxyPlayerDataFile(Path path, VentureChatProxySource source) {
SynchronizedMineverseChatPlayer smcp;
private void readProxyPlayerDataFile(Path path, VentureChatProxySource source) {
SynchronizedVentureChatPlayer smcp;
File proxyPlayerDataFile = path.toFile();
if (!proxyPlayerDataFile.exists()) {
return;
@ -97,7 +104,7 @@ public class ProxyPlayerData {
Configuration proxyPlayerDataFileConfiguration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(proxyPlayerDataFile);
String uuidString = proxyPlayerDataFile.getName().replace(".yml", "");
UUID uuid = UUID.fromString(uuidString);
if (UUIDFetcher.shouldSkipOfflineUUIDProxy(uuid, source)) {
if (uuidService.shouldSkipOfflineUUIDProxy(uuid, source)) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c - Skipping Offline UUID: " + uuid);
source.sendConsoleMessage("&8[&eVentureChat&8]&c - File will be skipped and deleted.");
proxyPlayerDataFile.delete();
@ -123,7 +130,7 @@ public class ProxyPlayerData {
}
boolean spy = proxyPlayerDataFileConfiguration.getBoolean("spy");
boolean messageToggle = proxyPlayerDataFileConfiguration.getBoolean("messagetoggle");
smcp = new SynchronizedMineverseChatPlayer(uuid, listening, mutes, ignores, spy, messageToggle);
smcp = new SynchronizedVentureChatPlayer(uuid, listening, mutes, ignores, spy, messageToggle);
} catch (Exception e) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c - Error Loading Data File: " + proxyPlayerDataFile.getName());
source.sendConsoleMessage("&8[&eVentureChat&8]&c - File will be skipped and deleted.");
@ -131,14 +138,14 @@ public class ProxyPlayerData {
return;
}
if (smcp != null) {
MineverseChatAPI.addSynchronizedMineverseChatPlayerToMap(smcp);
playerApiService.addSynchronizedMineverseChatPlayerToMap(smcp);
}
}
public static void saveProxyPlayerData(File dataFolder, VentureChatProxySource source) {
public void saveProxyPlayerData(File dataFolder, VentureChatProxySource source) {
try {
for (SynchronizedMineverseChatPlayer p : MineverseChatAPI.getSynchronizedMineverseChatPlayers()) {
if (UUIDFetcher.shouldSkipOfflineUUIDProxy(p.getUUID(), source)) {
for (SynchronizedVentureChatPlayer p : playerApiService.getSynchronizedMineverseChatPlayers()) {
if (uuidService.shouldSkipOfflineUUIDProxy(p.getUUID(), source)) {
return;
}
File proxyPlayerDataFile = new File(dataFolder.getAbsolutePath(), p.getUUID() + ".yml");
@ -182,7 +189,7 @@ public class ProxyPlayerData {
* @param sectionKey
* @return Configuration
*/
private static Configuration createSection(Configuration configurationSection, String sectionKey) {
private Configuration createSection(Configuration configurationSection, String sectionKey) {
configurationSection.set(sectionKey, null);
return configurationSection.getSection(sectionKey);
}

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.database;
package venture.Aust1n46.chat.controllers;
import java.io.File;
import java.io.IOException;
@ -18,36 +18,51 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.mute.MuteContainer;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.UUIDFetcher;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.commands.MuteContainer;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.UUIDService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
/**
* Class for reading and writing player data.
*
* @author Aust1n46
*/
public class PlayerData {
private static MineverseChat plugin = MineverseChat.getInstance();
private static final String PLAYER_DATA_DIRECTORY_PATH = plugin.getDataFolder().getAbsolutePath() + "/PlayerData";
public static void loadLegacyPlayerData() {
@Singleton
public class VentureChatSpigotFlatFileController {
@Inject
private VentureChat plugin;
@Inject
private UUIDService uuidService;
@Inject
private VentureChatPlayerApiService ventureChatApi;
private String playerDataDirectoryPath;
@Inject
public void postConstruct() {
playerDataDirectoryPath = plugin.getDataFolder().getAbsolutePath() + "/PlayerData";
}
public void loadLegacyPlayerData() {
File legacyPlayerDataFile = new File(plugin.getDataFolder().getAbsolutePath(), "Players.yml");
if (!legacyPlayerDataFile.isFile()) {
return;
}
try {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Detected Legacy Player Data!"));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Converting to new structure and deleting old Players.yml file!"));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Detected Legacy Player Data!"));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Converting to new structure and deleting old Players.yml file!"));
FileConfiguration playerData = YamlConfiguration.loadConfiguration(legacyPlayerDataFile);
for (String uuidString : playerData.getConfigurationSection("players").getKeys(false)) {
UUID uuid = UUID.fromString(uuidString);
if (UUIDFetcher.shouldSkipOfflineUUID(uuid)) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Skipping Offline UUID: " + uuid));
if (uuidService.shouldSkipOfflineUUID(uuid)) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Skipping Offline UUID: " + uuid));
continue;
}
String name = playerData.getConfigurationSection("players." + uuid).getString("name");
@ -94,28 +109,28 @@ public class PlayerData {
boolean rangedSpy = playerData.getConfigurationSection("players." + uuidString).getBoolean("rangedspy", false);
boolean messageToggle = playerData.getConfigurationSection("players." + uuidString).getBoolean("messagetoggle", true);
boolean bungeeToggle = playerData.getConfigurationSection("players." + uuidString).getBoolean("bungeetoggle", true);
MineverseChatPlayer mcp = new MineverseChatPlayer(uuid, name, currentChannel, ignores, listening, mutes, blockedCommands, host, party, filter, notifications, jsonFormat, spy, commandSpy, rangedSpy, messageToggle, bungeeToggle);
VentureChatPlayer mcp = new VentureChatPlayer(uuid, name, currentChannel, ignores, listening, mutes, blockedCommands, host, party, filter, notifications, jsonFormat, spy, commandSpy, rangedSpy, messageToggle, bungeeToggle);
mcp.setModified(true);
MineverseChatAPI.addMineverseChatPlayerToMap(mcp);
MineverseChatAPI.addNameToMap(mcp);
ventureChatApi.addMineverseChatPlayerToMap(mcp);
ventureChatApi.addNameToMap(mcp);
}
} catch (Exception e) {
MineverseChatAPI.clearMineverseChatPlayerMap();
MineverseChatAPI.clearNameMap();
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Error Loading Legacy Player Data!"));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Deleted Players.yml file!"));
ventureChatApi.clearMineverseChatPlayerMap();
ventureChatApi.clearNameMap();
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Error Loading Legacy Player Data!"));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Deleted Players.yml file!"));
} finally {
legacyPlayerDataFile.delete();
}
}
public static void loadPlayerData() {
public void loadPlayerData() {
try {
File playerDataDirectory = new File(PLAYER_DATA_DIRECTORY_PATH);
File playerDataDirectory = new File(playerDataDirectoryPath);
if (!playerDataDirectory.exists()) {
playerDataDirectory.mkdirs();
}
Files.walk(Paths.get(PLAYER_DATA_DIRECTORY_PATH))
Files.walk(Paths.get(playerDataDirectoryPath))
.filter(Files::isRegularFile)
.forEach((path) -> readPlayerDataFile(path));
} catch (IOException e) {
@ -128,8 +143,8 @@ public class PlayerData {
*
* @param path
*/
private static void readPlayerDataFile(Path path) {
MineverseChatPlayer mcp;
private void readPlayerDataFile(Path path) {
VentureChatPlayer mcp;
File playerDataFile = path.toFile();
if (!playerDataFile.exists()) {
return;
@ -138,9 +153,9 @@ public class PlayerData {
FileConfiguration playerDataFileYamlConfiguration = YamlConfiguration.loadConfiguration(playerDataFile);
String uuidString = playerDataFile.getName().replace(".yml", "");
UUID uuid = UUID.fromString(uuidString);
if (UUIDFetcher.shouldSkipOfflineUUID(uuid)) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Skipping Offline UUID: " + uuid));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - File will be skipped and deleted."));
if (uuidService.shouldSkipOfflineUUID(uuid)) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Skipping Offline UUID: " + uuid));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - File will be skipped and deleted."));
playerDataFile.delete();
return;
}
@ -182,25 +197,25 @@ public class PlayerData {
boolean rangedSpy = playerDataFileYamlConfiguration.getBoolean("rangedspy", false);
boolean messageToggle = playerDataFileYamlConfiguration.getBoolean("messagetoggle", true);
boolean bungeeToggle = playerDataFileYamlConfiguration.getBoolean("bungeetoggle", true);
mcp = new MineverseChatPlayer(uuid, name, currentChannel, ignores, listening, mutes, blockedCommands, host, party, filter, notifications, jsonFormat, spy, commandSpy, rangedSpy, messageToggle, bungeeToggle);
mcp = new VentureChatPlayer(uuid, name, currentChannel, ignores, listening, mutes, blockedCommands, host, party, filter, notifications, jsonFormat, spy, commandSpy, rangedSpy, messageToggle, bungeeToggle);
} catch (Exception e) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Error Loading Data File: " + playerDataFile.getName()));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - File will be skipped and deleted."));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Error Loading Data File: " + playerDataFile.getName()));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - File will be skipped and deleted."));
playerDataFile.delete();
return;
}
if (mcp != null) {
MineverseChatAPI.addMineverseChatPlayerToMap(mcp);
MineverseChatAPI.addNameToMap(mcp);
ventureChatApi.addMineverseChatPlayerToMap(mcp);
ventureChatApi.addNameToMap(mcp);
}
}
public static void savePlayerData(MineverseChatPlayer mcp) {
if (mcp == null || UUIDFetcher.shouldSkipOfflineUUID(mcp.getUUID()) || (!mcp.isOnline() && !mcp.wasModified())) {
public void savePlayerData(VentureChatPlayer mcp) {
if (mcp == null || uuidService.shouldSkipOfflineUUID(mcp.getUuid()) || (!mcp.isOnline() && !mcp.wasModified())) {
return;
}
try {
File playerDataFile = new File(PLAYER_DATA_DIRECTORY_PATH, mcp.getUUID() + ".yml");
File playerDataFile = new File(playerDataDirectoryPath, mcp.getUuid() + ".yml");
FileConfiguration playerDataFileYamlConfiguration = YamlConfiguration.loadConfiguration(playerDataFile);
if (!playerDataFile.exists()) {
playerDataFileYamlConfiguration.save(playerDataFile);
@ -237,13 +252,13 @@ public class PlayerData {
playerDataFileYamlConfiguration.set("blockedcommands", blockedCommands);
playerDataFileYamlConfiguration.set("host", mcp.isHost());
playerDataFileYamlConfiguration.set("party", mcp.hasParty() ? mcp.getParty().toString() : "");
playerDataFileYamlConfiguration.set("filter", mcp.hasFilter());
playerDataFileYamlConfiguration.set("filter", mcp.isFilter());
playerDataFileYamlConfiguration.set("notifications", mcp.hasNotifications());
playerDataFileYamlConfiguration.set("spy", mcp.isSpy());
playerDataFileYamlConfiguration.set("commandspy", mcp.hasCommandSpy());
playerDataFileYamlConfiguration.set("rangedspy", mcp.getRangedSpy());
playerDataFileYamlConfiguration.set("messagetoggle", mcp.getMessageToggle());
playerDataFileYamlConfiguration.set("bungeetoggle", mcp.getBungeeToggle());
playerDataFileYamlConfiguration.set("messagetoggle", mcp.isMessageToggle());
playerDataFileYamlConfiguration.set("bungeetoggle", mcp.isBungeeToggle());
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MMM/dd HH:mm:ss");
String dateNow = formatter.format(currentDate.getTime());
@ -256,8 +271,8 @@ public class PlayerData {
}
}
public static void savePlayerData() {
for (MineverseChatPlayer p : MineverseChatAPI.getMineverseChatPlayers()) {
public void savePlayerData() {
for (VentureChatPlayer p : ventureChatApi.getMineverseChatPlayers()) {
savePlayerData(p);
}
}

View File

@ -1,31 +1,37 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatFormatService;
public class Broadcast implements VentureCommand {
private MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChat plugin;
@Inject
private VentureChatFormatService formatService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
ConfigurationSection bs = plugin.getConfig().getConfigurationSection("broadcast");
String broadcastColor = bs.getString("color", "white");
String broadcastPermissions = bs.getString("permissions", "None");
String broadcastDisplayTag = Format.FormatStringAll(bs.getString("displaytag", "[Broadcast]"));
String broadcastDisplayTag = FormatUtils.FormatStringAll(bs.getString("displaytag", "[Broadcast]"));
if (broadcastPermissions.equalsIgnoreCase("None") || sender.hasPermission(broadcastPermissions)) {
if (args.length > 0) {
String bc = "";
for (int x = 0; x < args.length; x++) {
if (args[x].length() > 0) bc += args[x] + " ";
}
bc = Format.FormatStringAll(bc);
Format.broadcastToServer(broadcastDisplayTag + ChatColor.valueOf(broadcastColor.toUpperCase()) + " " + bc);
bc = FormatUtils.FormatStringAll(bc);
formatService.broadcastToServer(broadcastDisplayTag + ChatColor.valueOf(broadcastColor.toUpperCase()) + " " + bc);
return;
} else {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()

View File

@ -1,16 +1,22 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class BungeeToggle implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -18,17 +24,17 @@ public class BungeeToggle implements VentureCommand {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.bungeetoggle")) {
if (!mcp.getBungeeToggle()) {
if (!mcp.isBungeeToggle()) {
mcp.setBungeeToggle(true);
mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_ON.toString());
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
return;
}
mcp.setBungeeToggle(false);
mcp.getPlayer().sendMessage(LocalizedMessage.BUNGEE_TOGGLE_OFF.toString());
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
return;
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());

View File

@ -0,0 +1,83 @@
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import mineverse.Aust1n46.chat.api.events.ChannelJoinEvent;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
@Singleton
public class Channel implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
if (!(sender instanceof Player)) {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (args.length > 0) {
if (!ChatChannel.isChannel(args[0])) {
mcp.getPlayer().sendMessage(LocalizedMessage.INVALID_CHANNEL.toString()
.replace("{args}", args[0]));
return;
}
ChatChannel channel = ChatChannel.getChannel(args[0]);
ChannelJoinEvent channelJoinEvent = new ChannelJoinEvent(mcp.getPlayer(), channel, LocalizedMessage.SET_CHANNEL.toString()
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName()));
Bukkit.getServer().getPluginManager().callEvent(channelJoinEvent);
handleChannelJoinEvent(channelJoinEvent);
return;
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/channel")
.replace("{args}", "[channel]"));
return;
}
private void handleChannelJoinEvent(final ChannelJoinEvent event) {
if (event.isCancelled())
return;
ChatChannel channel = event.getChannel();
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(event.getPlayer());
if (channel.hasPermission()) {
if (!mcp.getPlayer().hasPermission(channel.getPermission())) {
mcp.removeListening(channel.getName());
mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION.toString());
return;
}
}
if (mcp.hasConversation()) {
for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
if (p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName()));
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString()
.replace("{player_receiver}", playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName()));
mcp.setConversation(null);
}
mcp.addListening(channel.getName());
mcp.setCurrentChannel(channel);
mcp.getPlayer().sendMessage(event.getMessage());
if (channel.getBungee()) {
pluginMessageController.synchronize(mcp, true);
}
}
}

View File

@ -1,11 +1,11 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureCommand;
public class Channelinfo implements VentureCommand {
@ -30,7 +30,7 @@ public class Channelinfo implements VentureCommand {
sender.sendMessage(ChatColor.GOLD + "Channel: " + chname.getColor() + chname.getName());
sender.sendMessage(ChatColor.GOLD + "Alias: " + chname.getColor() + chname.getAlias());
sender.sendMessage(ChatColor.GOLD + "Color: " + chname.getColor() + chname.getColorRaw());
sender.sendMessage(ChatColor.GOLD + "ChatColor: " + (chname.getChatColor().equalsIgnoreCase("None") ? Format.DEFAULT_COLOR_CODE : chname.getChatColor()) + chname.getChatColorRaw());
sender.sendMessage(ChatColor.GOLD + "ChatColor: " + (chname.getChatColor().equalsIgnoreCase("None") ? FormatUtils.DEFAULT_COLOR_CODE : chname.getChatColor()) + chname.getChatColorRaw());
if (chname.hasPermission()) {
sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + chname.getPermission());
} else {

View File

@ -1,17 +1,20 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.command.mute.MuteContainer;
import com.google.inject.Inject;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Chatinfo implements VentureCommand {
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -21,7 +24,7 @@ public class Chatinfo implements VentureCommand {
Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player; use /ci [name]");
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
String listen = "";
String mute = "";
String blockedcommands = "";
@ -50,7 +53,7 @@ public class Chatinfo implements VentureCommand {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + "N/A");
}
if (mcp.hasConversation()) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName());
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName());
} else {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.RED + "N/A");
}
@ -64,7 +67,7 @@ public class Chatinfo implements VentureCommand {
} else {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.RED + "false");
}
if (mcp.hasFilter()) {
if (mcp.isFilter()) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.GREEN + "true");
} else {
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.RED + "false");
@ -76,7 +79,7 @@ public class Chatinfo implements VentureCommand {
String listen = "";
String mute = "";
String blockedcommands = "";
MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(args[0]);
VentureChatPlayer p = playerApiService.getMineverseChatPlayer(args[0]);
if (p == null) {
sender.sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + args[0] + ChatColor.RED + " is not online.");
return;
@ -105,7 +108,7 @@ public class Chatinfo implements VentureCommand {
sender.sendMessage(ChatColor.GOLD + "Blocked Commands: " + ChatColor.RED + "N/A");
}
if (p.hasConversation()) {
sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + MineverseChatAPI.getMineverseChatPlayer(p.getConversation()).getName());
sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.GREEN + playerApiService.getMineverseChatPlayer(p.getConversation()).getName());
} else {
sender.sendMessage(ChatColor.GOLD + "Private conversation: " + ChatColor.RED + "N/A");
}
@ -119,7 +122,7 @@ public class Chatinfo implements VentureCommand {
} else {
sender.sendMessage(ChatColor.GOLD + "Command spy: " + ChatColor.RED + "false");
}
if (p.hasFilter()) {
if (p.isFilter()) {
sender.sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.GREEN + "true");
} else {
sender.sendMessage(ChatColor.GOLD + "Filter: " + ChatColor.RED + "false");

View File

@ -0,0 +1,67 @@
package venture.Aust1n46.chat.controllers.commands;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.VentureChatSpigotFlatFileController;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Chatreload implements VentureCommand {
@Inject
private VentureChat plugin;
@Inject
private VentureChatSpigotFlatFileController spigotFlatFileController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
if(sender.hasPermission("venturechat.reload")) {
spigotFlatFileController.savePlayerData();
playerApiService.clearMineverseChatPlayerMap();
playerApiService.clearNameMap();
playerApiService.clearOnlineMineverseChatPlayerMap();
plugin.reloadConfig();
plugin.initializeConfigReaders();
spigotFlatFileController.loadLegacyPlayerData();
spigotFlatFileController.loadPlayerData();
for(Player p : plugin.getServer().getOnlinePlayers()) {
VentureChatPlayer mcp = playerApiService.getMineverseChatPlayer(p);
if(mcp == null) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName()));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - There could be an issue with your player data saving."));
String name = p.getName();
UUID uuid = p.getUniqueId();
mcp = new VentureChatPlayer(uuid, name);
}
mcp.setOnline(true);
mcp.setHasPlayed(false);
mcp.setJsonFormat();
playerApiService.addMineverseChatOnlinePlayerToMap(mcp);
playerApiService.addNameToMap(mcp);
}
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded"));
for(VentureChatPlayer player : playerApiService.getOnlineMineverseChatPlayers()) {
if(player.getPlayer().hasPermission("venturechat.reload")) {
player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString());
}
}
return;
}
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());
return;
}
}

View File

@ -1,10 +1,10 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureCommand;
public class Chlist implements VentureCommand {

View File

@ -1,6 +1,6 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import static mineverse.Aust1n46.chat.MineverseChat.LINE_LENGTH;
import static venture.Aust1n46.chat.VentureChat.LINE_LENGTH;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@ -11,19 +11,26 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import com.google.inject.Inject;
import com.massivecraft.factions.entity.MPlayer;
import com.palmergames.bukkit.towny.TownyUniverse;
import com.palmergames.bukkit.towny.object.Resident;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Chwho implements VentureCommand {
private MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChat plugin;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -34,7 +41,7 @@ public class Chwho implements VentureCommand {
if (channel != null) {
if (channel.hasPermission()) {
if (!sender.hasPermission(channel.getPermission())) {
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(((Player) sender));
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(((Player) sender));
mcp.removeListening(channel.getName());
mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_PERMISSION_VIEW.toString());
return;
@ -42,15 +49,15 @@ public class Chwho implements VentureCommand {
}
if (channel.getBungee() && sender instanceof Player) {
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF("Chwho");
out.writeUTF("Get");
out.writeUTF(mcp.getUUID().toString());
out.writeUTF(mcp.getUuid().toString());
out.writeUTF(channel.getName());
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
@ -60,7 +67,7 @@ public class Chwho implements VentureCommand {
PluginManager pluginManager = plugin.getServer().getPluginManager();
long linecount = LINE_LENGTH;
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
if (p.getListening().contains(channel.getName())) {
if (sender instanceof Player) {
if (!((Player) sender).canSee(p.getPlayer())) {

View File

@ -1,19 +1,23 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.InternalMessage;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Clearchat implements VentureCommand {
@Inject
private VentureChatPlayerApiService ventureChatApi;
@Override
public void execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.clearchat")) {
for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (VentureChatPlayer player : ventureChatApi.getOnlineMineverseChatPlayers()) {
if (!player.getPlayer().hasPermission("venturechat.clearchat.bypass")) {
for (int a = 1; a <= 20; a++)
player.getPlayer().sendMessage(InternalMessage.EMPTY_STRING.toString());

View File

@ -1,23 +1,28 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import java.util.List;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Commandblock implements VentureCommand {
private MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChat plugin;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
if (sender.hasPermission("venturechat.commandblock")) {
if (args.length > 1) {
MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]);
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]);
if (player == null) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));

View File

@ -1,15 +1,19 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Commandspy implements VentureCommand {
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -17,7 +21,7 @@ public class Commandspy implements VentureCommand {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.commandspy")) {
if (!mcp.hasCommandSpy()) {
mcp.setCommandSpy(true);

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import java.util.ArrayList;
import java.util.HashMap;
@ -11,20 +11,34 @@ import org.bukkit.scheduler.BukkitRunnable;
import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.wrappers.WrappedChatComponent;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.ChatMessage;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.model.ChatMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.service.VentureChatFormatService;
public class Edit implements VentureCommand {
private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}");
private MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChat plugin;
@Inject
private VentureChatFormatService formatService;
@Inject
private VentureChatPlayerApiService playerApiService;
private PacketContainer emptyLinePacketContainer;
private WrappedChatComponent messageDeletedComponentPlayer;
@Inject
public void postConstruct() {
emptyLinePacketContainer = formatService.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}");
messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"<message removed>\",\"color\":\"red\",\"italic\":\"true\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}");
}
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public void execute(CommandSender sender, String command, String[] args) {
@ -44,7 +58,7 @@ public class Edit implements VentureCommand {
new BukkitRunnable() {
public void run() {
final Map<Player, List<PacketContainer>> packets = new HashMap();
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
List<ChatMessage> messages = p.getMessages();
List<PacketContainer> playerPackets = new ArrayList();
boolean resend = false;
@ -56,22 +70,22 @@ public class Edit implements VentureCommand {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Edit.this.getMessageDeletedChatComponentAdmin(message) : Edit.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
playerPackets.add(formatService.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
if (message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) {
if (message.getMessage().contains(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) {
String submessage = message.getMessage().substring(0, message.getMessage().length() - plugin.getConfig().getString("messageremovericon").length() - 1).replaceAll("(<28>([a-z0-9]))", "");
if (submessage.hashCode() == hash) {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Edit.this.getMessageDeletedChatComponentAdmin(message) : Edit.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
playerPackets.add(formatService.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
}
playerPackets.add(Format.createPacketPlayOutChat(message.getComponent()));
playerPackets.add(formatService.createPacketPlayOutChat(message.getComponent()));
}
if (resend) {
packets.put(p.getPlayer(), playerPackets);
@ -82,7 +96,7 @@ public class Edit implements VentureCommand {
for (Player p : packets.keySet()) {
List<PacketContainer> pPackets = packets.get(p);
for (PacketContainer c : pPackets) {
Format.sendPacketPlayOutChat(p, c);
formatService.sendPacketPlayOutChat(p, c);
}
}
}
@ -92,17 +106,14 @@ public class Edit implements VentureCommand {
}
public WrappedChatComponent getMessageDeletedChatComponentPlayer() {
if (this.messageDeletedComponentPlayer == null) {
this.messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"<message removed>\",\"color\":\"red\",\"italic\":\"true\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}");
}
return this.messageDeletedComponentPlayer;
}
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) {
String oMessage = message.getComponent().getJson().substring(1, message.getComponent().getJson().length() - 11);
if (message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) {
if (message.getMessage().contains(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) {
oMessage = oMessage.substring(0, oMessage.length() - plugin.getConfig().getString("messageremovericon").length() - 4) + "\"}]";
}
return WrappedChatComponent.fromJson(Format.FormatStringAll("{\"text\":\"\",\"extra\":[{\"text\":\"&c&o<message removed>\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"&7Message: \"," + oMessage + "}}}]}"));
return WrappedChatComponent.fromJson(FormatUtils.FormatStringAll("{\"text\":\"\",\"extra\":[{\"text\":\"&c&o<message removed>\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"&7Message: \"," + oMessage + "}}}]}"));
}
}

View File

@ -1,15 +1,19 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Filter implements VentureCommand {
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -17,9 +21,9 @@ public class Filter implements VentureCommand {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.ignorefilter")) {
if (!mcp.hasFilter()) {
if (!mcp.isFilter()) {
mcp.setFilter(true);
mcp.getPlayer().sendMessage(LocalizedMessage.FILTER_ON.toString());
return;

View File

@ -1,13 +1,17 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Force implements VentureCommand {
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -18,7 +22,7 @@ public class Force implements VentureCommand {
.replace("{args}", "[player] [message]"));
return;
}
MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]);
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]);
if (player == null) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));

View File

@ -1,13 +1,17 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Forceall implements VentureCommand {
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -24,7 +28,7 @@ public class Forceall implements VentureCommand {
}
}
sender.sendMessage(LocalizedMessage.FORCE_ALL.toString().replace("{message}", forcemsg));
for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (VentureChatPlayer player : playerApiService.getOnlineMineverseChatPlayers()) {
player.getPlayer().chat(forcemsg);
}
return;

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.command.message;
package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@ -14,13 +14,21 @@ import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class IgnoreCommandExecutor implements TabExecutor {
private MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChat plugin;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
@ -28,7 +36,7 @@ public class IgnoreCommandExecutor implements TabExecutor {
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return true;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (args.length == 0) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS_IGNORE.toString());
return true;
@ -36,7 +44,7 @@ public class IgnoreCommandExecutor implements TabExecutor {
if (args[0].equalsIgnoreCase("list")) {
String ignoreList = "";
for (UUID ignore : mcp.getIgnores()) {
MineverseChatPlayer i = MineverseChatAPI.getMineverseChatPlayer(ignore);
VentureChatPlayer i = playerApiService.getMineverseChatPlayer(ignore);
String iName = ignore.toString();
if (i != null) {
iName = i.getName();
@ -60,8 +68,8 @@ public class IgnoreCommandExecutor implements TabExecutor {
out.writeUTF("Ignore");
out.writeUTF("Send");
out.writeUTF(args[0]);
out.writeUTF(mcp.getUUID().toString());
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
out.writeUTF(mcp.getUuid().toString());
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
@ -69,17 +77,17 @@ public class IgnoreCommandExecutor implements TabExecutor {
return true;
}
MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]);
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]);
if (player == null) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
return true;
}
if (mcp.getIgnores().contains(player.getUUID())) {
if (mcp.getIgnores().contains(player.getUuid())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_OFF.toString()
.replace("{player}", player.getName()));
mcp.removeIgnore(player.getUUID());
MineverseChat.synchronize(mcp, true);
mcp.removeIgnore(player.getUuid());
pluginMessageController.synchronize(mcp, true);
return true;
}
if (player.getPlayer().hasPermission("venturechat.ignore.bypass")) {
@ -89,8 +97,8 @@ public class IgnoreCommandExecutor implements TabExecutor {
}
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORE_PLAYER_ON.toString()
.replace("{player}", player.getName()));
mcp.addIgnore(player.getUUID());
MineverseChat.synchronize(mcp, true);
mcp.addIgnore(player.getUuid());
pluginMessageController.synchronize(mcp, true);
return true;
}
@ -98,7 +106,7 @@ public class IgnoreCommandExecutor implements TabExecutor {
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[args.length - 1], MineverseChatAPI.getNetworkPlayerNames(), completions);
StringUtil.copyPartialMatches(args[args.length - 1], playerApiService.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}

View File

@ -1,16 +1,22 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Kickchannel implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -21,7 +27,7 @@ public class Kickchannel implements VentureCommand {
.replace("{args}", "[player] [channel]"));
return;
}
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
if (player == null) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
@ -61,7 +67,7 @@ public class Kickchannel implements VentureCommand {
player.setModified(true);
}
if (isThereABungeeChannel) {
MineverseChat.synchronize(player, true);
pluginMessageController.synchronize(player, true);
}
return;
}

View File

@ -1,16 +1,22 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Kickchannelall implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -21,7 +27,7 @@ public class Kickchannelall implements VentureCommand {
.replace("{args}", "[player]"));
return;
}
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
if (player == null) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
@ -45,7 +51,7 @@ public class Kickchannelall implements VentureCommand {
isThereABungeeChannel = true;
}
if (isThereABungeeChannel) {
MineverseChat.synchronize(player, true);
pluginMessageController.synchronize(player, true);
}
if (player.isOnline()) {
player.getPlayer().sendMessage(LocalizedMessage.KICK_CHANNEL_ALL_PLAYER.toString());

View File

@ -1,18 +1,24 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Leave implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -20,7 +26,7 @@ public class Leave implements VentureCommand {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (args.length > 0) {
ChatChannel channel = ChatChannel.getChannel(args[0]);
if (channel == null) {
@ -45,7 +51,7 @@ public class Leave implements VentureCommand {
.replace("{channel_name}", ChatChannel.getDefaultChannel().getName()));
}
if (isThereABungeeChannel) {
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
}
return;
}

View File

@ -1,17 +1,23 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Listen implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -19,7 +25,7 @@ public class Listen implements VentureCommand {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (args.length > 0) {
ChatChannel channel = ChatChannel.getChannel(args[0]);
if (channel == null) {
@ -39,7 +45,7 @@ public class Listen implements VentureCommand {
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName()));
if (channel.getBungee()) {
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
}
return;
}

View File

@ -1,14 +1,21 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.service.VentureChatFormatService;
public class Me implements VentureCommand {
@Inject
private VentureChatFormatService formatService;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -18,22 +25,22 @@ public class Me implements VentureCommand {
for (int x = 0; x < args.length; x++)
if (args[x].length() > 0)
msg += " " + args[x];
if (sender instanceof Player && MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender).hasFilter()) {
msg = Format.FilterChat(msg);
if (sender instanceof Player && playerApiService.getOnlineMineverseChatPlayer((Player) sender).isFilter()) {
msg = formatService.FilterChat(msg);
}
if (sender.hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg);
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (sender.hasPermission("venturechat.color"))
msg = Format.FormatStringColor(msg);
msg = FormatUtils.FormatStringColor(msg);
if (sender.hasPermission("venturechat.format"))
msg = Format.FormatString(msg);
msg = FormatUtils.FormatString(msg);
if (sender instanceof Player) {
Player p = (Player) sender;
Format.broadcastToServer("* " + p.getDisplayName() + msg);
formatService.broadcastToServer("* " + p.getDisplayName() + msg);
return;
}
Format.broadcastToServer("* " + sender.getName() + msg);
formatService.broadcastToServer("* " + sender.getName() + msg);
return;
}
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.command.message;
package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@ -12,15 +12,26 @@ import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import com.google.inject.Inject;
import me.clip.placeholderapi.PlaceholderAPI;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.service.VentureChatFormatService;
public class MessageCommandExecutor implements TabExecutor {
private MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChat plugin;
@Inject
private VentureChatFormatService formatService;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
@ -29,7 +40,7 @@ public class MessageCommandExecutor implements TabExecutor {
return true;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (args.length == 0) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/" + command.getName())
@ -42,7 +53,7 @@ public class MessageCommandExecutor implements TabExecutor {
return true;
}
MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(args[0]);
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(args[0]);
if (player == null) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
@ -53,12 +64,12 @@ public class MessageCommandExecutor implements TabExecutor {
.replace("{args}", args[0]));
return true;
}
if (player.getIgnores().contains(mcp.getUUID())) {
if (player.getIgnores().contains(mcp.getUuid())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString()
.replace("{player}", player.getName()));
return true;
}
if (!player.getMessageToggle()) {
if (!player.isMessageToggle()) {
mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString()
.replace("{player}", player.getName()));
return true;
@ -73,36 +84,36 @@ public class MessageCommandExecutor implements TabExecutor {
for (int r = 1; r < args.length; r++) {
msg += " " + args[r];
}
if (mcp.hasFilter()) {
msg = Format.FilterChat(msg);
if (mcp.isFilter()) {
msg = formatService.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg);
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = Format.FormatStringColor(msg);
msg = FormatUtils.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
msg = FormatUtils.FormatString(msg);
}
send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", "")));
echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", "")));
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", "")));
send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", "")));
echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", "")));
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", "")));
send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg;
echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg;
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg;
send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg;
echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg;
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg;
player.setReplyPlayer(mcp.getUUID());
mcp.setReplyPlayer(player.getUUID());
player.setReplyPlayer(mcp.getUuid());
mcp.setReplyPlayer(player.getUuid());
player.getPlayer().sendMessage(send);
mcp.getPlayer().sendMessage(echo);
if (player.hasNotifications()) {
Format.playMessageSound(player);
formatService.playMessageSound(player);
}
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (VentureChatPlayer sp : playerApiService.getOnlineMineverseChatPlayers()) {
if (sp.getName().equals(mcp.getName()) || sp.getName().equals(player.getName())) {
continue;
}
@ -115,10 +126,10 @@ public class MessageCommandExecutor implements TabExecutor {
}
if (args.length == 1) {
if (args[0].length() > 0) {
if (!mcp.hasConversation() || (mcp.hasConversation() && !mcp.getConversation().toString().equals(player.getUUID().toString()))) {
mcp.setConversation(player.getUUID());
if (!mcp.hasConversation() || (mcp.hasConversation() && !mcp.getConversation().toString().equals(player.getUuid().toString()))) {
mcp.setConversation(player.getUuid());
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (VentureChatPlayer sp : playerApiService.getOnlineMineverseChatPlayers()) {
if (sp.getName().equals(mcp.getName())) {
continue;
}
@ -134,7 +145,7 @@ public class MessageCommandExecutor implements TabExecutor {
} else {
mcp.setConversation(null);
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (VentureChatPlayer sp : playerApiService.getOnlineMineverseChatPlayers()) {
if (sp.getName().equals(mcp.getName())) {
continue;
}
@ -157,14 +168,14 @@ public class MessageCommandExecutor implements TabExecutor {
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[args.length - 1], MineverseChatAPI.getNetworkPlayerNames(), completions);
StringUtil.copyPartialMatches(args[args.length - 1], playerApiService.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}
return null;
}
private void sendBungeeCordMessage(MineverseChatPlayer mcp, String command, String[] args) {
private void sendBungeeCordMessage(VentureChatPlayer mcp, String command, String[] args) {
if (args.length < 2) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/" + command)
@ -178,36 +189,36 @@ public class MessageCommandExecutor implements TabExecutor {
msgBuilder.append(" " + args[r]);
}
String msg = msgBuilder.toString();
if (mcp.hasFilter()) {
msg = Format.FilterChat(msg);
if (mcp.isFilter()) {
msg = formatService.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg);
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = Format.FormatStringColor(msg);
msg = FormatUtils.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
msg = FormatUtils.FormatString(msg);
}
String send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", "")));
String echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", "")));
String send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatfrom").replaceAll("sender_", "")));
String echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatto").replaceAll("sender_", "")));
String spy = "VentureChat:NoSpy";
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", "")));
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("tellformatspy").replaceAll("sender_", "")));
}
try {
out.writeUTF("Message");
out.writeUTF("Send");
out.writeUTF(args[0]);
out.writeUTF(mcp.getUUID().toString());
out.writeUTF(mcp.getUuid().toString());
out.writeUTF(mcp.getName());
out.writeUTF(send);
out.writeUTF(echo);
out.writeUTF(spy);
out.writeUTF(msg);
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();

View File

@ -1,16 +1,22 @@
package mineverse.Aust1n46.chat.command.message;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class MessageToggle implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -18,17 +24,17 @@ public class MessageToggle implements VentureCommand {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.messagetoggle")) {
if (!mcp.getMessageToggle()) {
if (!mcp.isMessageToggle()) {
mcp.setMessageToggle(true);
mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_ON.toString());
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
return;
}
mcp.setMessageToggle(false);
mcp.getPlayer().sendMessage(LocalizedMessage.MESSAGE_TOGGLE_OFF.toString());
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
return;
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.command.mute;
package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@ -13,16 +13,23 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Mute implements VentureCommand {
private static final List<String> COMMON_MUTE_TIMES = Collections.unmodifiableList(Arrays.asList(new String[]{"12h", "15m", "1d", "1h", "1m", "30s"}));
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -43,7 +50,7 @@ public class Mute implements VentureCommand {
String timeString = args[2];
if (Character.isDigit(timeString.charAt(0))) {
reasonStartPos = 3;
time = Format.parseTimeStringToMillis(timeString);
time = FormatUtils.parseTimeStringToMillis(timeString);
if (time <= 0) {
sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", timeString));
return;
@ -53,13 +60,13 @@ public class Mute implements VentureCommand {
for (int a = reasonStartPos; a < args.length; a++) {
reasonBuilder.append(args[a] + " ");
}
reason = Format.FormatStringAll(reasonBuilder.toString().trim());
reason = FormatUtils.FormatStringAll(reasonBuilder.toString().trim());
}
if (channel.getBungee()) {
sendBungeeCordMute(sender, args[1], channel, time, reason);
return;
}
MineverseChatPlayer playerToMute = MineverseChatAPI.getMineverseChatPlayer(args[1]);
VentureChatPlayer playerToMute = playerApiService.getMineverseChatPlayer(args[1]);
if (playerToMute == null || (!playerToMute.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1]));
return;
@ -74,7 +81,7 @@ public class Mute implements VentureCommand {
if (time > 0) {
if (reason.isEmpty()) {
playerToMute.addMute(channel.getName(), datetime + time);
String timeString = Format.parseTimeStringFromMillis(time);
String timeString = FormatUtils.parseTimeStringFromMillis(time);
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString()
.replace("{player}", playerToMute.getName())
.replace("{channel_color}", channel.getColor())
@ -92,7 +99,7 @@ public class Mute implements VentureCommand {
return;
} else {
playerToMute.addMute(channel.getName(), datetime + time, reason);
String timeString = Format.parseTimeStringFromMillis(time);
String timeString = FormatUtils.parseTimeStringFromMillis(time);
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME_REASON.toString()
.replace("{player}", playerToMute.getName())
.replace("{channel_color}", channel.getColor())
@ -168,11 +175,11 @@ public class Mute implements VentureCommand {
if (ChatChannel.isChannel(args[0])) {
ChatChannel chatChannelObj = ChatChannel.getChannel(args[0]);
if (chatChannelObj.getBungee()) {
StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getNetworkPlayerNames(), completions);
StringUtil.copyPartialMatches(args[1], playerApiService.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}
StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getOnlineMineverseChatPlayers().stream().filter(mcp -> !mcp.isMuted(chatChannelObj.getName())).map(MineverseChatPlayer::getName).collect(Collectors.toList()), completions);
StringUtil.copyPartialMatches(args[1], playerApiService.getOnlineMineverseChatPlayers().stream().filter(mcp -> !mcp.isMuted(chatChannelObj.getName())).map(VentureChatPlayer::getName).collect(Collectors.toList()), completions);
Collections.sort(completions);
return completions;
}
@ -201,7 +208,7 @@ public class Mute implements VentureCommand {
out.writeUTF(channel.getName());
out.writeLong(time);
out.writeUTF(reason);
MineverseChat.sendPluginMessage(byteOutStream);
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.command.mute;
package venture.Aust1n46.chat.controllers.commands;
public class MuteContainer {
private String channel;

View File

@ -1,16 +1,22 @@
package mineverse.Aust1n46.chat.command.mute;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Muteall implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -21,7 +27,7 @@ public class Muteall implements VentureCommand {
.replace("{args}", "[player] {reason}"));
return;
}
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
@ -33,7 +39,7 @@ public class Muteall implements VentureCommand {
for (int a = 1; a < args.length; a++) {
reasonBuilder.append(args[a] + " ");
}
reason = Format.FormatStringAll(reasonBuilder.toString().trim());
reason = FormatUtils.FormatStringAll(reasonBuilder.toString().trim());
}
if (reason.isEmpty()) {
boolean bungee = false;
@ -46,7 +52,7 @@ public class Muteall implements VentureCommand {
}
}
if (bungee) {
MineverseChat.synchronize(player, true);
pluginMessageController.synchronize(player, true);
}
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER.toString()
.replace("{player}", player.getName()));
@ -66,7 +72,7 @@ public class Muteall implements VentureCommand {
}
}
if (bungee) {
MineverseChat.synchronize(player, true);
pluginMessageController.synchronize(player, true);
}
sender.sendMessage(LocalizedMessage.MUTE_PLAYER_ALL_SENDER_REASON.toString()
.replace("{player}", player.getName())

View File

@ -1,15 +1,19 @@
package mineverse.Aust1n46.chat.command.message;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Notifications implements VentureCommand {
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -18,7 +22,7 @@ public class Notifications implements VentureCommand {
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (!mcp.hasNotifications()) {
mcp.setNotifications(true);
mcp.getPlayer().sendMessage(LocalizedMessage.NOTIFICATIONS_ON.toString());

View File

@ -1,19 +1,27 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import static mineverse.Aust1n46.chat.MineverseChat.LINE_LENGTH;
import static venture.Aust1n46.chat.VentureChat.LINE_LENGTH;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.utilities.Format;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.service.VentureChatFormatService;
public class Party implements VentureCommand {
private MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChat plugin;
@Inject
private VentureChatFormatService formatService;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -21,7 +29,7 @@ public class Party implements VentureCommand {
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if(!mcp.getPlayer().hasPermission("venturechat.party")) {
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command!");
return;
@ -36,7 +44,7 @@ public class Party implements VentureCommand {
if(mcp.isHost()) {
mcp.setHost(false);
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are no longer hosting a party.");
for(MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) {
for(VentureChatPlayer player : playerApiService.getMineverseChatPlayers()) {
if(player.hasParty() && player.getParty().equals(mcp.getParty())) {
player.setParty(null);
if(player.isOnline()) {
@ -52,7 +60,7 @@ public class Party implements VentureCommand {
}
mcp.setHost(true);
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are now hosting a party.");
mcp.setParty(mcp.getUUID());
mcp.setParty(mcp.getUuid());
break;
}
case "join": {
@ -61,7 +69,7 @@ public class Party implements VentureCommand {
return;
}
if(args.length > 1) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[1]);
if(player != null) {
if(player.isHost()) {
if(!mcp.hasParty()) {
@ -73,11 +81,11 @@ public class Party implements VentureCommand {
* "'s party."); break; }
*/
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Joined " + player.getName() + "'s party.");
mcp.setParty(player.getUUID());
mcp.setParty(player.getUuid());
player.getPlayer().sendMessage(ChatColor.GREEN + mcp.getName() + " joined your party.");
break;
}
mcp.getPlayer().sendMessage(ChatColor.RED + "You are already in " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
mcp.getPlayer().sendMessage(ChatColor.RED + "You are already in " + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
break;
}
mcp.getPlayer().sendMessage(ChatColor.RED + player.getName() + " is not hosting a party.");
@ -95,11 +103,11 @@ public class Party implements VentureCommand {
return;
}
if(mcp.hasParty()) {
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
mcp.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
mcp.setParty(null);
if(mcp.isHost()) {
for(MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) {
if(player.hasParty() && player.getParty().equals(mcp.getUUID()) && !player.getName().equals(mcp.getName())) {
for(VentureChatPlayer player : playerApiService.getMineverseChatPlayers()) {
if(player.hasParty() && player.getParty().equals(mcp.getUuid()) && !player.getName().equals(mcp.getName())) {
player.setParty(null);
if(player.isOnline()) {
player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party.");
@ -123,10 +131,10 @@ public class Party implements VentureCommand {
}
if(mcp.isHost()) {
if(args.length > 1) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[1]);
if(player != null) {
if(!player.getName().equals(mcp.getName())) {
if(player.hasParty() && player.getParty().equals(mcp.getUUID())) {
if(player.hasParty() && player.getParty().equals(mcp.getUuid())) {
player.setParty(null);
player.getPlayer().sendMessage(ChatColor.RED + "You have been kicked out of " + mcp.getName() + "'s party.");
mcp.getPlayer().sendMessage(ChatColor.RED + "You have kicked " + player.getName() + " out of your party.");
@ -192,7 +200,7 @@ public class Party implements VentureCommand {
return;
}
if(mcp.hasParty() && !mcp.isHost()) {
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are in " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are in " + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
}
else if(mcp.isHost()) {
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are hosting a party.");
@ -218,9 +226,9 @@ public class Party implements VentureCommand {
break;
}
if(mcp.hasConversation()) {
String tellChat = MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName();
String tellChat = playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName();
mcp.setConversation(null);
for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for(VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
if(p.isSpy()) {
p.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + tellChat + ".");
}
@ -245,13 +253,13 @@ public class Party implements VentureCommand {
return;
}
if(args.length > 1) {
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[1]);
if(player != null) {
if(player.isHost()) {
String members = "";
long linecount = LINE_LENGTH;
for(MineverseChatPlayer p : MineverseChatAPI.getMineverseChatPlayers()) {
if(p.getParty() != null && p.getParty().equals(player.getUUID())) {
for(VentureChatPlayer p : playerApiService.getMineverseChatPlayers()) {
if(p.getParty() != null && p.getParty().equals(player.getUuid())) {
if(members.length() + p.getName().length() > linecount) {
members += "\n";
linecount = linecount + LINE_LENGTH;
@ -288,25 +296,25 @@ public class Party implements VentureCommand {
for(int x = 0; x < args.length; x++) {
if(args[x].length() > 0) msg += " " + args[x];
}
if(mcp.hasFilter()) {
msg = Format.FilterChat(msg);
if(mcp.isFilter()) {
msg = formatService.FilterChat(msg);
}
if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg);
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if(mcp.getPlayer().hasPermission("venturechat.color")) {
msg = Format.FormatStringColor(msg);
msg = FormatUtils.FormatStringColor(msg);
}
if(mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
msg = FormatUtils.FormatString(msg);
}
if(plugin.getConfig().getString("partyformat").equalsIgnoreCase("Default")) {
partyformat = ChatColor.GREEN + "[" + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s Party] " + mcp.getName() + ":" + msg;
partyformat = ChatColor.GREEN + "[" + playerApiService.getMineverseChatPlayer(mcp.getParty()).getName() + "'s Party] " + mcp.getName() + ":" + msg;
}
else {
partyformat = Format.FormatStringAll(plugin.getConfig().getString("partyformat").replace("{host}", MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg;
partyformat = FormatUtils.FormatStringAll(plugin.getConfig().getString("partyformat").replace("{host}", playerApiService.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg;
}
for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for(VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
if((p.getParty().equals(mcp.getParty()) || p.isSpy())) {
p.getPlayer().sendMessage(partyformat);
}

View File

@ -1,15 +1,19 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.google.inject.Inject;
public class RangedSpy implements VentureCommand {
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -17,7 +21,7 @@ public class RangedSpy implements VentureCommand {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.rangedspy")) {
if (!mcp.getRangedSpy()) {
mcp.setRangedSpy(true);

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@ -7,15 +7,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import mineverse.Aust1n46.chat.ChatMessage;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -23,13 +14,38 @@ import org.bukkit.scheduler.BukkitRunnable;
import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.wrappers.WrappedChatComponent;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.ChatMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.service.VentureChatFormatService;
public class Removemessage implements VentureCommand {
private MineverseChat plugin = MineverseChat.getInstance();
private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}");
private WrappedChatComponent messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions"))) + "]}}}]}");
;
@Inject
private VentureChat plugin;
@Inject
private VentureChatFormatService formatService;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
private PacketContainer emptyLinePacketContainer;
private WrappedChatComponent messageDeletedComponentPlayer;
@Inject
public void postConstruct() {
emptyLinePacketContainer = formatService.createPacketPlayOutChat("{\"extra\":[\" \"],\"text\":\"\"}");
messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions"))) + "]}}}]}");
}
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public void execute(CommandSender sender, String command, String[] args) {
@ -46,13 +62,13 @@ public class Removemessage implements VentureCommand {
sender.sendMessage(LocalizedMessage.INVALID_HASH.toString());
return;
}
if (args.length > 1 && ChatChannel.isChannel(args[1]) && ChatChannel.getChannel(args[1]).getBungee() && sender instanceof Player) {
if (args.length > 1 && ChatChannel.isChannel(args[1]) && ChatChannel.getChannel(args[1]).getBungee()) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
try {
out.writeUTF("RemoveMessage");
out.writeUTF(String.valueOf(hash));
((Player) sender).sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();
@ -62,7 +78,7 @@ public class Removemessage implements VentureCommand {
new BukkitRunnable() {
public void run() {
final Map<Player, List<PacketContainer>> packets = new HashMap();
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
List<ChatMessage> messages = p.getMessages();
List<PacketContainer> playerPackets = new ArrayList();
boolean resend = false;
@ -74,22 +90,22 @@ public class Removemessage implements VentureCommand {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
playerPackets.add(formatService.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
if (message.getMessage().contains(ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))))) {
String submessage = message.getMessage().substring(0, message.getMessage().length() - ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))).length());
if (message.getMessage().contains(ChatColor.stripColor(FormatUtils.FormatStringAll(plugin.getConfig().getString("guiicon"))))) {
String submessage = message.getMessage().substring(0, message.getMessage().length() - ChatColor.stripColor(FormatUtils.FormatStringAll(plugin.getConfig().getString("guiicon"))).length());
if (submessage.hashCode() == hash) {
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
message.setComponent(removedComponent);
message.setHash(-1);
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
playerPackets.add(formatService.createPacketPlayOutChat(removedComponent));
resend = true;
continue;
}
}
playerPackets.add(Format.createPacketPlayOutChat(message.getComponent()));
playerPackets.add(formatService.createPacketPlayOutChat(message.getComponent()));
}
if (resend) {
@ -101,7 +117,7 @@ public class Removemessage implements VentureCommand {
for (Player p : packets.keySet()) {
List<PacketContainer> pPackets = packets.get(p);
for (PacketContainer c : pPackets) {
Format.sendPacketPlayOutChat(p, c);
formatService.sendPacketPlayOutChat(p, c);
}
}
}
@ -116,6 +132,6 @@ public class Removemessage implements VentureCommand {
}
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) {
return WrappedChatComponent.fromJson("[{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\"," + message.getColoredMessage() + "}}}]}]");
return WrappedChatComponent.fromJson("[{\"text\":\"\",\"extra\":[{\"text\":\"\",\"extra\":[" + formatService.convertToJsonColors(FormatUtils.FormatStringAll(plugin.getConfig().getString("messageremovertext"))) + "],\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\"," + message.getColoredMessage() + "}}}]}]");
}
}

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.command.message;
package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@ -6,16 +6,27 @@ import java.io.DataOutputStream;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.google.inject.Inject;
import me.clip.placeholderapi.PlaceholderAPI;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.service.VentureChatFormatService;
public class Reply implements VentureCommand {
private MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChat plugin;
@Inject
private VentureChatFormatService formatService;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -23,7 +34,7 @@ public class Reply implements VentureCommand {
plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (args.length > 0) {
if (mcp.hasReplyPlayer()) {
if (plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
@ -31,7 +42,7 @@ public class Reply implements VentureCommand {
return;
}
MineverseChatPlayer player = MineverseChatAPI.getOnlineMineverseChatPlayer(mcp.getReplyPlayer());
VentureChatPlayer player = playerApiService.getOnlineMineverseChatPlayer(mcp.getReplyPlayer());
if (player == null) {
mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString());
return;
@ -40,12 +51,12 @@ public class Reply implements VentureCommand {
mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString());
return;
}
if (player.getIgnores().contains(mcp.getUUID())) {
if (player.getIgnores().contains(mcp.getUuid())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString()
.replace("{player}", player.getName()));
return;
}
if (!player.getMessageToggle()) {
if (!player.isMessageToggle()) {
mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString()
.replace("{player}", player.getName()));
return;
@ -57,29 +68,29 @@ public class Reply implements VentureCommand {
if (args.length > 0) {
for (int r = 0; r < args.length; r++)
msg += " " + args[r];
if (mcp.hasFilter()) {
msg = Format.FilterChat(msg);
if (mcp.isFilter()) {
msg = formatService.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg);
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = Format.FormatStringColor(msg);
msg = FormatUtils.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
msg = FormatUtils.FormatString(msg);
}
send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", "")));
echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", "")));
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", "")));
send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", "")));
echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", "")));
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", "")));
send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg;
echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg;
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg;
send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), send.replaceAll("receiver_", ""))) + msg;
echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), echo.replaceAll("receiver_", ""))) + msg;
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg;
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
if (p.getName().equals(mcp.getName()) || p.getName().equals(player.getName())) {
continue;
}
@ -91,9 +102,9 @@ public class Reply implements VentureCommand {
player.getPlayer().sendMessage(send);
mcp.getPlayer().sendMessage(echo);
if (player.hasNotifications()) {
Format.playMessageSound(player);
formatService.playMessageSound(player);
}
player.setReplyPlayer(mcp.getUUID());
player.setReplyPlayer(mcp.getUuid());
return;
}
}
@ -105,7 +116,7 @@ public class Reply implements VentureCommand {
.replace("{args}", "[message]"));
}
private void sendBungeeCordReply(MineverseChatPlayer mcp, String[] args) {
private void sendBungeeCordReply(VentureChatPlayer mcp, String[] args) {
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream);
StringBuilder msgBuilder = new StringBuilder();
@ -113,36 +124,36 @@ public class Reply implements VentureCommand {
msgBuilder.append(" " + args[r]);
}
String msg = msgBuilder.toString();
if (mcp.hasFilter()) {
msg = Format.FilterChat(msg);
if (mcp.isFilter()) {
msg = formatService.FilterChat(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
msg = Format.FormatStringLegacyColor(msg);
msg = FormatUtils.FormatStringLegacyColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.color")) {
msg = Format.FormatStringColor(msg);
msg = FormatUtils.FormatStringColor(msg);
}
if (mcp.getPlayer().hasPermission("venturechat.format")) {
msg = Format.FormatString(msg);
msg = FormatUtils.FormatString(msg);
}
String send = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", "")));
String echo = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", "")));
String send = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatfrom").replaceAll("sender_", "")));
String echo = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatto").replaceAll("sender_", "")));
String spy = "VentureChat:NoSpy";
if (!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", "")));
spy = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), plugin.getConfig().getString("replyformatspy").replaceAll("sender_", "")));
}
try {
out.writeUTF("Message");
out.writeUTF("Send");
out.writeUTF(MineverseChatAPI.getMineverseChatPlayer(mcp.getReplyPlayer()).getName());
out.writeUTF(mcp.getUUID().toString());
out.writeUTF(playerApiService.getMineverseChatPlayer(mcp.getReplyPlayer()).getName());
out.writeUTF(mcp.getUuid().toString());
out.writeUTF(mcp.getName());
out.writeUTF(send);
out.writeUTF(echo);
out.writeUTF(spy);
out.writeUTF(msg);
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();

View File

@ -1,15 +1,21 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Setchannel implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -20,7 +26,7 @@ public class Setchannel implements VentureCommand {
.replace("{args}", "[player] [channel]"));
return;
}
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
if (player == null) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
@ -53,16 +59,16 @@ public class Setchannel implements VentureCommand {
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName()));
if (player.hasConversation()) {
for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
if (p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", player.getName())
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(player.getConversation()).getName()));
.replace("{player_receiver}", playerApiService.getMineverseChatPlayer(player.getConversation()).getName()));
}
}
if (player.isOnline())
player.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString()
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(player.getConversation()).getName()));
.replace("{player_receiver}", playerApiService.getMineverseChatPlayer(player.getConversation()).getName()));
else
player.setModified(true);
player.setConversation(null);
@ -75,7 +81,7 @@ public class Setchannel implements VentureCommand {
player.setModified(true);
}
if (channel.getBungee()) {
MineverseChat.synchronize(player, true);
pluginMessageController.synchronize(player, true);
}
return;
}

View File

@ -1,15 +1,21 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Setchannelall implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -20,7 +26,7 @@ public class Setchannelall implements VentureCommand {
.replace("{args}", "[player]"));
return;
}
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
if (player == null) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
@ -52,7 +58,7 @@ public class Setchannelall implements VentureCommand {
else
player.setModified(true);
if (isThereABungeeChannel) {
MineverseChat.synchronize(player, true);
pluginMessageController.synchronize(player, true);
}
return;
}

View File

@ -1,16 +1,22 @@
package mineverse.Aust1n46.chat.command.message;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Spy implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -18,17 +24,17 @@ public class Spy implements VentureCommand {
Bukkit.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.spy")) {
if (!mcp.isSpy()) {
mcp.setSpy(true);
mcp.getPlayer().sendMessage(LocalizedMessage.SPY_ON.toString());
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
return;
}
mcp.setSpy(false);
mcp.getPlayer().sendMessage(LocalizedMessage.SPY_OFF.toString());
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
return;
}
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.command.mute;
package venture.Aust1n46.chat.controllers.commands;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@ -12,14 +12,20 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Unmute implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -35,7 +41,7 @@ public class Unmute implements VentureCommand {
sendBungeeCordUnmute(sender, args[1], channel);
return;
}
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[1]);
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[1]);
if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[1]));
return;
@ -79,11 +85,11 @@ public class Unmute implements VentureCommand {
if (ChatChannel.isChannel(args[0])) {
ChatChannel chatChannelObj = ChatChannel.getChannel(args[0]);
if (chatChannelObj.getBungee()) {
StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getNetworkPlayerNames(), completions);
StringUtil.copyPartialMatches(args[1], playerApiService.getNetworkPlayerNames(), completions);
Collections.sort(completions);
return completions;
}
StringUtil.copyPartialMatches(args[1], MineverseChatAPI.getOnlineMineverseChatPlayers().stream().filter(mcp -> mcp.isMuted(chatChannelObj.getName())).map(MineverseChatPlayer::getName).collect(Collectors.toList()), completions);
StringUtil.copyPartialMatches(args[1], playerApiService.getOnlineMineverseChatPlayers().stream().filter(mcp -> mcp.isMuted(chatChannelObj.getName())).map(VentureChatPlayer::getName).collect(Collectors.toList()), completions);
Collections.sort(completions);
return completions;
}
@ -104,7 +110,7 @@ public class Unmute implements VentureCommand {
}
out.writeUTF(playerToUnmute);
out.writeUTF(channel.getName());
MineverseChat.sendPluginMessage(byteOutStream);
pluginMessageController.sendPluginMessage(byteOutStream);
out.close();
} catch (Exception e) {
e.printStackTrace();

View File

@ -1,15 +1,21 @@
package mineverse.Aust1n46.chat.command.mute;
package venture.Aust1n46.chat.controllers.commands;
import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class Unmuteall implements VentureCommand {
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -20,7 +26,7 @@ public class Unmuteall implements VentureCommand {
.replace("{args}", "[player]"));
return;
}
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
VentureChatPlayer player = playerApiService.getMineverseChatPlayer(args[0]);
if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
@ -34,7 +40,7 @@ public class Unmuteall implements VentureCommand {
}
}
if (bungee) {
MineverseChat.synchronize(player, true);
pluginMessageController.synchronize(player, true);
}
sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_ALL_SENDER.toString()
.replace("{player}", player.getName()));
@ -48,4 +54,4 @@ public class Unmuteall implements VentureCommand {
return;
}
}
}
}

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import java.util.ArrayList;
import java.util.List;
@ -13,19 +13,24 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
import com.google.inject.Inject;
import me.clip.placeholderapi.PlaceholderAPI;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.gui.GuiSlot;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import mineverse.Aust1n46.chat.versions.VersionHandler;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.GuiSlot;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.VentureCommand;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class VentureChatGui implements VentureCommand {
private MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChat plugin;
@Inject
private VentureChatPlayerApiService playerApiService;
@Override
public void execute(CommandSender sender, String command, String[] args) {
@ -39,9 +44,9 @@ public class VentureChatGui implements VentureCommand {
.replace("{args}", "[player] [channel] [hashcode]"));
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
if (mcp.getPlayer().hasPermission("venturechat.gui")) {
MineverseChatPlayer target = MineverseChatAPI.getMineverseChatPlayer(args[0]);
VentureChatPlayer target = playerApiService.getMineverseChatPlayer(args[0]);
if (target == null && !args[0].equals("Discord")) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
@ -72,7 +77,7 @@ public class VentureChatGui implements VentureCommand {
}
@SuppressWarnings("deprecation")
private void openInventory(MineverseChatPlayer mcp, MineverseChatPlayer target, ChatChannel channel, int hash) {
private void openInventory(VentureChatPlayer mcp, VentureChatPlayer target, ChatChannel channel, int hash) {
Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: " + target.getName() + " GUI");
ItemStack close = null;
ItemStack skull = null;
@ -106,7 +111,7 @@ public class VentureChatGui implements VentureCommand {
for (GuiSlot g : GuiSlot.getGuiSlots()) {
if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) {
if (this.checkSlot(g.getSlot())) {
MineverseChat.getInstance().getServer().getConsoleSender().sendMessage(Format.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!"));
plugin.getServer().getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!"));
continue;
}
ItemStack gStack = new ItemStack(g.getIcon());
@ -116,7 +121,7 @@ public class VentureChatGui implements VentureCommand {
if (target.isOnline()) {
displayName = PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), displayName);
}
gMeta.setDisplayName(Format.FormatStringAll(displayName));
gMeta.setDisplayName(FormatUtils.FormatStringAll(displayName));
List<String> gLore = new ArrayList<String>();
gMeta.setLore(gLore);
gStack.setItemMeta(gMeta);
@ -129,7 +134,7 @@ public class VentureChatGui implements VentureCommand {
}
@SuppressWarnings("deprecation")
private void openInventoryDiscord(MineverseChatPlayer mcp, ChatChannel channel, int hash) {
private void openInventoryDiscord(VentureChatPlayer mcp, ChatChannel channel, int hash) {
Inventory inv = Bukkit.createInventory(null, this.getSlots(), "VentureChat: Discord_Message GUI");
ItemStack close = null;
ItemStack skull = null;
@ -163,14 +168,14 @@ public class VentureChatGui implements VentureCommand {
for (GuiSlot g : GuiSlot.getGuiSlots()) {
if (!g.hasPermission() || mcp.getPlayer().hasPermission(g.getPermission())) {
if (this.checkSlot(g.getSlot())) {
MineverseChat.getInstance().getServer().getConsoleSender().sendMessage(Format.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!"));
plugin.getServer().getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&cGUI: " + g.getName() + " has invalid slot: " + g.getSlot() + "!"));
continue;
}
ItemStack gStack = new ItemStack(g.getIcon());
gStack.setDurability((short) g.getDurability());
ItemMeta gMeta = gStack.getItemMeta();
String displayName = g.getText().replace("{player_name}", "Discord_Message").replace("{channel}", channel.getName()).replace("{hash}", hash + "");
gMeta.setDisplayName(Format.FormatStringAll(displayName));
gMeta.setDisplayName(FormatUtils.FormatStringAll(displayName));
List<String> gLore = new ArrayList<String>();
gMeta.setLore(gLore);
gStack.setItemMeta(gMeta);

View File

@ -1,22 +1,25 @@
package mineverse.Aust1n46.chat.command.chat;
package venture.Aust1n46.chat.controllers.commands;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.command.VentureCommand;
import mineverse.Aust1n46.chat.localization.InternalMessage;
import venture.Aust1n46.chat.VentureChat;
//import net.md_5.bungee.api.chat.ClickEvent;
//import net.md_5.bungee.api.chat.ComponentBuilder;
//import net.md_5.bungee.api.chat.HoverEvent;
//import net.md_5.bungee.api.chat.TextComponent;
//import net.minecraft.server.v1_15_R1.IChatBaseComponent;
//import net.minecraft.server.v1_15_R1.PacketPlayOutChat;
import venture.Aust1n46.chat.model.VentureCommand;
//import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
//import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
//import org.bukkit.entity.Player;
import com.google.inject.Inject;
public class Venturechat implements VentureCommand {
private MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChat plugin;
@Override
public void execute(CommandSender sender, String command, String[] args) {

View File

@ -1,18 +1,7 @@
package mineverse.Aust1n46.chat.listeners;
package venture.Aust1n46.chat.initiators.listeners;
import java.io.FileNotFoundException;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.alias.Alias;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.database.Database;
import mineverse.Aust1n46.chat.gui.GuiSlot;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.versions.VersionHandler;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
@ -30,31 +19,56 @@ import org.bukkit.event.server.ServerCommandEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import me.clip.placeholderapi.PlaceholderAPI;
//This class listens for commands (Any chat that begins with a /) to use in the command spy and
//in the custom commands such as aliases.
public class CommandListener implements CommandExecutor, Listener {
private MineverseChat plugin = MineverseChat.getInstance();
@EventHandler
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws FileNotFoundException {
if(event.getPlayer() == null) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Event.getPlayer() returned null in PlayerCommandPreprocessEvent"));
return;
}
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy");
Boolean wec = cs.getBoolean("worldeditcommands", true);
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer());
import com.google.inject.Inject;
import com.google.inject.Singleton;
import me.clip.placeholderapi.PlaceholderAPI;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import mineverse.Aust1n46.chat.versions.VersionHandler;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.model.Alias;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.GuiSlot;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.service.VentureChatDatabaseService;
import venture.Aust1n46.chat.service.VentureChatFormatService;
//This class listens for commands (Any chat that begins with a /) to use in the command spy and
//in the custom commands such as aliases.
@Singleton
public class CommandListener implements CommandExecutor, Listener {
@Inject
private VentureChat plugin;
@Inject
private VentureChatFormatService formatService;
@Inject
private VentureChatDatabaseService databaseService;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@EventHandler
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws FileNotFoundException {
if(event.getPlayer() == null) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Event.getPlayer() returned null in PlayerCommandPreprocessEvent"));
return;
}
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy");
Boolean wec = cs.getBoolean("worldeditcommands", true);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(event.getPlayer());
if(!mcp.getPlayer().hasPermission("venturechat.commandspy.override")) {
for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for(VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
if(p.hasCommandSpy()) {
if(wec) {
p.getPlayer().sendMessage(Format.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage())));
p.getPlayer().sendMessage(FormatUtils.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage())));
}
else {
if(!(event.getMessage().toLowerCase().startsWith("//"))) {
p.getPlayer().sendMessage(Format.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage())));
p.getPlayer().sendMessage(FormatUtils.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage())));
}
else {
if(!(event.getMessage().toLowerCase().startsWith("//"))) {
@ -76,8 +90,8 @@ public class CommandListener implements CommandExecutor, Listener {
String message = event.getMessage();
if(Database.isEnabled()) {
Database.writeVentureChat(mcp.getUUID().toString(), mcp.getName(), "Local", "Command_Component", event.getMessage().replace("'", "''"), "Command");
if(databaseService.isEnabled()) {
databaseService.writeVentureChat(mcp.getUuid().toString(), mcp.getName(), "Local", "Command_Component", event.getMessage().replace("'", "''"), "Command");
}
for(Alias a : Alias.getAliases()) {
@ -105,15 +119,15 @@ public class CommandListener implements CommandExecutor, Listener {
send += " " + args[b];
}
if(send.length() > 0) send = send.substring(1);
s = Format.FormatStringAll(s);
s = FormatUtils.FormatStringAll(s);
if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
send = Format.FormatStringLegacyColor(send);
send = FormatUtils.FormatStringLegacyColor(send);
}
if(mcp.getPlayer().hasPermission("venturechat.color")) {
send = Format.FormatStringColor(send);
send = FormatUtils.FormatStringColor(send);
}
if(mcp.getPlayer().hasPermission("venturechat.format")) {
send = Format.FormatString(send);
send = FormatUtils.FormatString(send);
}
if(s.startsWith("Command:")) {
mcp.getPlayer().chat(s.substring(9).replace("$", send));
@ -124,7 +138,7 @@ public class CommandListener implements CommandExecutor, Listener {
event.setCancelled(true);
}
if(s.startsWith("Broadcast:")) {
Format.broadcastToServer(s.substring(11).replace("$", send));
formatService.broadcastToServer(s.substring(11).replace("$", send));
event.setCancelled(true);
}
}
@ -139,21 +153,21 @@ public class CommandListener implements CommandExecutor, Listener {
.replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName()));
if(mcp.hasConversation()) {
for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
for(VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
if(p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()));
.replace("{player_receiver}", playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName()));
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString()
.replace("{player_receiver}", MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName()));
.replace("{player_receiver}", playerApiService.getMineverseChatPlayer(mcp.getConversation()).getName()));
mcp.setConversation(null);
}
mcp.addListening(channel.getName());
mcp.setCurrentChannel(channel);
if(channel.getBungee()) {
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
}
event.setCancelled(true);
return;
@ -162,7 +176,7 @@ public class CommandListener implements CommandExecutor, Listener {
message = message.substring(channel.getAlias().length() + 1);
mcp.addListening(channel.getName());
if(channel.getBungee()) {
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
}
mcp.setQuickChannel(channel);
/*String format = "";
@ -188,8 +202,8 @@ public class CommandListener implements CommandExecutor, Listener {
//old 1.8 command map
@EventHandler
public void onServerCommand(ServerCommandEvent event) {
if (Database.isEnabled()) {
Database.writeVentureChat("N/A", "Console", "Local", "Command_Component", event.getCommand().replace("'", "''") , "Command");
if (databaseService.isEnabled()) {
databaseService.writeVentureChat("N/A", "Console", "Local", "Command_Component", event.getCommand().replace("'", "''") , "Command");
}
}
@ -202,7 +216,7 @@ public class CommandListener implements CommandExecutor, Listener {
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
return true;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) sender);
for(ChatChannel channel : ChatChannel.getChatChannels()) {
if(command.getName().toLowerCase().equals(channel.getAlias())) {
if(args.length == 0) {
@ -213,7 +227,7 @@ public class CommandListener implements CommandExecutor, Listener {
mcp.setQuickChannel(channel);
mcp.addListening(channel.getName());
if(channel.getBungee()) {
MineverseChat.synchronize(mcp, true);
pluginMessageController.synchronize(mcp, true);
}
String msg = "";
for(int x = 0; x < args.length; x++) {
@ -234,9 +248,9 @@ public class CommandListener implements CommandExecutor, Listener {
return;
}
e.setCancelled(true);
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) e.getWhoClicked());
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer((Player) e.getWhoClicked());
String playerName = e.getView().getTitle().replace(" GUI", "").replace("VentureChat: ", "");
MineverseChatPlayer target = MineverseChatAPI.getMineverseChatPlayer(playerName);
VentureChatPlayer target = playerApiService.getMineverseChatPlayer(playerName);
ItemStack skull = e.getInventory().getItem(0);
SkullMeta skullMeta = (SkullMeta) skull.getItemMeta();
ChatChannel channel = ChatChannel.getChannel(ChatColor.stripColor(skullMeta.getLore().get(0)).replace("Channel: ", ""));
@ -257,7 +271,7 @@ public class CommandListener implements CommandExecutor, Listener {
if(target != null) {
command = command.replace("{player_name}", target.getName());
if(target.isOnline()) {
command = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), command));
command = FormatUtils.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), command));
}
}
else {

View File

@ -0,0 +1,112 @@
package venture.Aust1n46.chat.initiators.listeners;
import java.util.UUID;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.Logger;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.controllers.VentureChatSpigotFlatFileController;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.UUIDService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
/**
* Manages player login and logout events.
*
* @author Aust1n46
*/
@Singleton
public class LoginListener implements Listener {
@Inject
private VentureChat plugin;
@Inject
private UUIDService uuidService;
@Inject
private VentureChatSpigotFlatFileController spigotFlatFileController;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Inject
private Logger log;
@EventHandler(priority = EventPriority.LOW)
public void onPlayerQuit(PlayerQuitEvent playerQuitEvent) {
VentureChatPlayer ventureChatPlayer = playerApiService.getOnlineMineverseChatPlayer(playerQuitEvent.getPlayer());
if (ventureChatPlayer == null) {
log.warn("onPlayerQuit() Could not find VentureChatPlayer");
} else {
spigotFlatFileController.savePlayerData(ventureChatPlayer);
ventureChatPlayer.clearMessages();
ventureChatPlayer.setOnline(false);
playerApiService.removeMineverseChatOnlinePlayerToMap(ventureChatPlayer);
log.debug("onPlayerQuit() ventureChatPlayer:{} quit", ventureChatPlayer);
}
}
void handleNameChange(VentureChatPlayer mcp, Player eventPlayerInstance) {
plugin.getServer().getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Detected Name Change. Old Name:&c " + mcp.getName() + " &eNew Name:&c " + eventPlayerInstance.getName()));
playerApiService.removeNameFromMap(mcp.getName());
mcp.setName(eventPlayerInstance.getName());
playerApiService.addNameToMap(mcp);
}
@EventHandler(priority = EventPriority.LOW)
public void onPlayerJoin(PlayerJoinEvent event) throws Exception {
VentureChatPlayer mcp = playerApiService.getMineverseChatPlayer(event.getPlayer());
Player player = event.getPlayer();
String name = player.getName();
if(mcp == null) {
UUID uuid = player.getUniqueId();
mcp = new VentureChatPlayer(uuid, name);
playerApiService.addMineverseChatPlayerToMap(mcp);
playerApiService.addNameToMap(mcp);
}
uuidService.checkOfflineUUIDWarning(mcp.getUuid());
//check for name change
if(!mcp.getName().equals(name)) {
handleNameChange(mcp, event.getPlayer());
}
mcp.setOnline(true);
mcp.setHasPlayed(false);
playerApiService.addMineverseChatOnlinePlayerToMap(mcp);
mcp.setJsonFormat();
for(ChatChannel ch : ChatChannel.getAutojoinList()) {
if(ch.hasPermission()) {
if(mcp.getPlayer().hasPermission(ch.getPermission())) {
mcp.addListening(ch.getName());
}
}
else {
mcp.addListening(ch.getName());
}
}
try {
if(plugin.getServer().spigot().getConfig().getBoolean("settings.bungeecord") || plugin.getServer().spigot().getPaperConfig().getBoolean("settings.velocity-support.enabled")) {
long delayInTicks = 20L;
final VentureChatPlayer sync = mcp;
plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
public void run() {
pluginMessageController.synchronize(sync, false);
}
}, delayInTicks);
}
}
catch(NoSuchMethodError exception) { // Thrown if server isn't Paper.
// Do nothing
}
}
}

View File

@ -1,11 +1,4 @@
package mineverse.Aust1n46.chat.listeners;
import mineverse.Aust1n46.chat.ChatMessage;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.versions.VersionHandler;
package venture.Aust1n46.chat.initiators.listeners;
import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.events.ListenerPriority;
@ -13,13 +6,29 @@ import com.comphenix.protocol.events.PacketAdapter;
import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.events.PacketEvent;
import com.comphenix.protocol.wrappers.WrappedChatComponent;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import mineverse.Aust1n46.chat.versions.VersionHandler;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.model.ChatMessage;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
import venture.Aust1n46.chat.service.VentureChatFormatService;
//This class listens for chat packets and intercepts them before they are sent to the Player.
//The packets are modified to include advanced json formating and the message remover button if the
//player has permission to remove messages.
@Singleton
public class PacketListener extends PacketAdapter {
public PacketListener() {
super(MineverseChat.getInstance(), ListenerPriority.MONITOR, new PacketType[] { PacketType.Play.Server.CHAT });
@Inject
private VentureChatFormatService formatter;
@Inject
private VentureChatPlayerApiService playerApiService;
@Inject
public PacketListener(final VentureChat plugin) {
super(plugin, ListenerPriority.MONITOR, new PacketType[] { PacketType.Play.Server.CHAT });
}
@Override
@ -28,7 +37,7 @@ public class PacketListener extends PacketAdapter {
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer());
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(event.getPlayer());
if(mcp == null) {
return;
}
@ -63,8 +72,8 @@ public class PacketListener extends PacketAdapter {
e.printStackTrace();
}
String message = Format.toPlainText(chat.getHandle(), chat.getHandleType());
String coloredMessage = Format.toColoredText(chat.getHandle(), chat.getHandleType());
String message = formatter.toPlainText(chat.getHandle(), chat.getHandleType());
String coloredMessage = formatter.toColoredText(chat.getHandle(), chat.getHandleType());
if(message == null) {
return;
}

View File

@ -1,34 +1,38 @@
package mineverse.Aust1n46.chat.listeners;
package venture.Aust1n46.chat.initiators.listeners;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.SignChangeEvent;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.utilities.Format;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
//This class listens for text being added to signs, and it formats them to allow colors and formatting.
@Singleton
public class SignListener implements Listener {
MineverseChat plugin = MineverseChat.getInstance();
@Inject
private VentureChatPlayerApiService playerApiService;
@EventHandler(priority = EventPriority.HIGH)
public void onSignChange(SignChangeEvent event) {
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer());
VentureChatPlayer mcp = playerApiService.getOnlineMineverseChatPlayer(event.getPlayer());
for(int a = 0; a < event.getLines().length; a++) {
String line = event.getLine(a);
if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) {
line = Format.FormatStringLegacyColor(line);
line = FormatUtils.FormatStringLegacyColor(line);
}
if(mcp.getPlayer().hasPermission("venturechat.color")) {
line = Format.FormatStringColor(line);
line = FormatUtils.FormatStringColor(line);
}
if(mcp.getPlayer().hasPermission("venturechat.format")) {
line = Format.FormatString(line);
line = FormatUtils.FormatString(line);
}
event.setLine(a, line);
}
}
}
}

View File

@ -0,0 +1,217 @@
package venture.Aust1n46.chat.initiators.listeners;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.commands.Broadcast;
import venture.Aust1n46.chat.controllers.commands.BungeeToggle;
import venture.Aust1n46.chat.controllers.commands.Channel;
import venture.Aust1n46.chat.controllers.commands.Channelinfo;
import venture.Aust1n46.chat.controllers.commands.Chatinfo;
import venture.Aust1n46.chat.controllers.commands.Chatreload;
import venture.Aust1n46.chat.controllers.commands.Chlist;
import venture.Aust1n46.chat.controllers.commands.Chwho;
import venture.Aust1n46.chat.controllers.commands.Clearchat;
import venture.Aust1n46.chat.controllers.commands.Commandblock;
import venture.Aust1n46.chat.controllers.commands.Commandspy;
import venture.Aust1n46.chat.controllers.commands.Edit;
import venture.Aust1n46.chat.controllers.commands.Filter;
import venture.Aust1n46.chat.controllers.commands.Force;
import venture.Aust1n46.chat.controllers.commands.Forceall;
import venture.Aust1n46.chat.controllers.commands.IgnoreCommandExecutor;
import venture.Aust1n46.chat.controllers.commands.Kickchannel;
import venture.Aust1n46.chat.controllers.commands.Kickchannelall;
import venture.Aust1n46.chat.controllers.commands.Leave;
import venture.Aust1n46.chat.controllers.commands.Listen;
import venture.Aust1n46.chat.controllers.commands.Me;
import venture.Aust1n46.chat.controllers.commands.MessageCommandExecutor;
import venture.Aust1n46.chat.controllers.commands.MessageToggle;
import venture.Aust1n46.chat.controllers.commands.Mute;
import venture.Aust1n46.chat.controllers.commands.Muteall;
import venture.Aust1n46.chat.controllers.commands.Notifications;
import venture.Aust1n46.chat.controllers.commands.Party;
import venture.Aust1n46.chat.controllers.commands.RangedSpy;
import venture.Aust1n46.chat.controllers.commands.Removemessage;
import venture.Aust1n46.chat.controllers.commands.Reply;
import venture.Aust1n46.chat.controllers.commands.Setchannel;
import venture.Aust1n46.chat.controllers.commands.Setchannelall;
import venture.Aust1n46.chat.controllers.commands.Spy;
import venture.Aust1n46.chat.controllers.commands.Unmute;
import venture.Aust1n46.chat.controllers.commands.Unmuteall;
import venture.Aust1n46.chat.controllers.commands.VentureChatGui;
import venture.Aust1n46.chat.controllers.commands.Venturechat;
import venture.Aust1n46.chat.model.VentureCommand;
/**
* Class that initializes and executes the plugin's commands.
*/
@Singleton
public class VentureCommandExecutor implements TabExecutor {
private Map<String, VentureCommand> commands = new HashMap<String, VentureCommand>();
@Inject
private VentureChat plugin;
@Inject
private MessageCommandExecutor messageCommandExecutor;
@Inject
private IgnoreCommandExecutor ignoreCommandExecutor;
@Inject
private Broadcast broadcast;
@Inject
private Channel channel;
@Inject
private Channelinfo channelinfo;
@Inject
private Chatinfo chatinfo;
@Inject
private Chatreload chatreload;
@Inject
private Chlist chlist;
@Inject
private Chwho chwho;
@Inject
private Clearchat clearchat;
@Inject
private Commandblock commandblock;
@Inject
private Commandspy commandspy;
@Inject
private Edit edit;
@Inject
private Filter filter;
@Inject
private Force force;
@Inject
private Forceall forceall;
@Inject
private Kickchannel kickchannel;
@Inject
private Kickchannelall kickchannelall;
@Inject
private Leave leave;
@Inject
private Listen listen;
@Inject
private Me me;
@Inject
private Venturechat venturechat;
@Inject
private Notifications notifications;
@Inject
private Party party;
@Inject
private RangedSpy rangedSpy;
@Inject
private Removemessage removemessage;
@Inject
private Setchannel setchannel;
@Inject
private Setchannelall setchannelall;
@Inject
private Spy spy;
@Inject
private VentureChatGui ventureChatGui;
@Inject
private MessageToggle messageToggle;
@Inject
private BungeeToggle bungeeToggle;
@Inject
private Reply reply;
@Inject
private Mute mute;
@Inject
private Muteall muteall;
@Inject
private Unmute unmute;
@Inject
private Unmuteall unmuteall;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) {
commands.get(command.getName()).execute(sender, command.getName(), parameters);
return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
return commands.get(command.getName()).onTabComplete(sender, command, label, args);
}
@Inject
public void postConstruct() {
commands.put("broadcast", broadcast);
commands.put("channel", channel);
commands.put("join", channel);
commands.put("channelinfo", channelinfo);
commands.put("chatinfo", chatinfo);
commands.put("chatreload", chatreload);
commands.put("chlist", chlist);
commands.put("chwho", chwho);
commands.put("clearchat", clearchat);
commands.put("commandblock", commandblock);
commands.put("commandspy", commandspy);
commands.put("edit", edit);
commands.put("filter", filter);
commands.put("force", force);
commands.put("forceall", forceall);
commands.put("kickchannel", kickchannel);
commands.put("kickchannelall", kickchannelall);
commands.put("leave", leave);
commands.put("listen", listen);
commands.put("me", me);
commands.put("venturechat", venturechat);
commands.put("notifications", notifications);
commands.put("party", party);
commands.put("rangedspy", rangedSpy);
commands.put("removemessage", removemessage);
commands.put("setchannel", setchannel);
commands.put("setchannelall", setchannelall);
commands.put("spy", spy);
commands.put("venturechatgui", ventureChatGui);
commands.put("messagetoggle", messageToggle);
commands.put("bungeetoggle", bungeeToggle);
for(String command : commands.keySet()) {
registerCommand(command, this);
}
plugin.getServer().getScheduler().runTaskLater(plugin, () -> {
commands.put("reply", reply);
commands.put("r", reply);
registerCommand("reply", this);
registerCommand("r", this);
commands.put("mute", mute);
commands.put("muteall", muteall);
commands.put("unmute", unmute);
commands.put("unmuteall", unmuteall);
registerCommand("mute", this);
registerCommand("muteall", this);
registerCommand("unmute", this);
registerCommand("unmuteall", this);
registerCommand("message", messageCommandExecutor);
registerCommand("msg", messageCommandExecutor);
registerCommand("tell", messageCommandExecutor);
registerCommand("whisper", messageCommandExecutor);
registerCommand("ignore", ignoreCommandExecutor);
}, 0);
}
private void registerCommand(String command, CommandExecutor commandExecutor) {
if(plugin.getCommand(command) != null) {
plugin.getCommand(command).setExecutor(commandExecutor);
}
}
}

View File

@ -0,0 +1,66 @@
package venture.Aust1n46.chat.initiators.schedulers;
import java.util.Iterator;
import org.bukkit.Bukkit;
import org.bukkit.scheduler.BukkitScheduler;
import com.google.inject.Inject;
import mineverse.Aust1n46.chat.localization.LocalizedMessage;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.controllers.commands.MuteContainer;
import venture.Aust1n46.chat.model.ChatChannel;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
public class UnmuteScheduler {
@Inject
private VentureChat plugin;
@Inject
private PluginMessageController pluginMessageController;
@Inject
private VentureChatPlayerApiService playerApiService;
@Inject
public void postConstruct() {
BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
scheduler.runTaskTimerAsynchronously(plugin, new Runnable() {
@Override
public void run() {
for (VentureChatPlayer p : playerApiService.getOnlineMineverseChatPlayers()) {
long currentTimeMillis = System.currentTimeMillis();
Iterator<MuteContainer> iterator = p.getMutes().iterator();
while (iterator.hasNext()) {
MuteContainer mute = iterator.next();
if(ChatChannel.isChannel(mute.getChannel())) {
ChatChannel channel = ChatChannel.getChannel(mute.getChannel());
long timemark = mute.getDuration();
if (timemark == 0) {
continue;
}
if (plugin.getConfig().getString("loglevel", "info").equals("trace")) {
System.out.println(currentTimeMillis + " " + timemark);
}
if (currentTimeMillis >= timemark) {
iterator.remove();
p.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString()
.replace("{player}", p.getName()).replace("{channel_color}", channel.getColor())
.replace("{channel_name}", mute.getChannel()));
if(channel.getBungee()) {
pluginMessageController.synchronize(p, true);
}
}
}
}
}
if (plugin.getConfig().getString("loglevel", "info").equals("trace")) {
Bukkit.getConsoleSender()
.sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - Updating Player Mutes"));
}
}
}, 0L, 60L); // three second interval
}
}

View File

@ -1,14 +1,13 @@
package mineverse.Aust1n46.chat.alias;
package venture.Aust1n46.chat.model;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.configuration.ConfigurationSection;
import mineverse.Aust1n46.chat.MineverseChat;
import venture.Aust1n46.chat.VentureChat;
public class Alias {
private static MineverseChat plugin = MineverseChat.getInstance();
private static List<Alias> aliases;
private String name;
@ -23,7 +22,7 @@ public class Alias {
this.permission = "venturechat." + permission;
}
public static void initialize() {
public static void initialize(VentureChat plugin) {
aliases = new ArrayList<Alias>();
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("alias");
for (String key : cs.getKeys(false)) {

View File

@ -1,478 +1,460 @@
package mineverse.Aust1n46.chat.channel;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.configuration.ConfigurationSection;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.utilities.Format;
/**
* Chat channel object pojo. Class also contains static initialization methods
* for reading chat channels from the config file.
*
* @author Aust1n46
*/
public class ChatChannel {
private static final String PERMISSION_PREFIX = "venturechat.";
private static final String NO_PERMISSIONS = "venturechat.none";
private static boolean aliasesRegisteredAsCommands;
private static MineverseChat plugin = MineverseChat.getInstance();
private static ChatChannel defaultChatChannel;
private static String defaultColor;
private static HashMap<String, ChatChannel> chatChannels;
@Deprecated
private static ChatChannel[] channels;
private String name;
private String permission;
private String speakPermission;
private boolean mutable;
private String color;
private String chatColor;
private boolean defaultChannel;
private boolean autojoin;
private String alias;
private double distance;
private boolean filter;
private boolean bungee;
private String format;
private int cooldown;
private String prefix;
/**
* Read chat channels from config file and initialize channel array.
*/
public static void initialize(boolean aliasesRegisteredAsCommands) {
chatChannels = new HashMap<String, ChatChannel>();
ChatChannel.aliasesRegisteredAsCommands = aliasesRegisteredAsCommands;
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("channels");
int len = (cs.getKeys(false)).size();
channels = new ChatChannel[len];
int counter = 0;
for (String key : cs.getKeys(false)) {
String color = cs.getString(key + ".color", "white");
String chatColor = cs.getString(key + ".chatcolor", "white");
String name = key;
String permission = cs.getString(key + ".permissions", "None");
String speakPermission = cs.getString(key + ".speak_permissions", "None");
boolean mutable = cs.getBoolean(key + ".mutable", false);
boolean filter = cs.getBoolean(key + ".filter", true);
boolean bungee = cs.getBoolean(key + ".bungeecord", false);
String format = cs.getString(key + ".format", "Default");
boolean defaultChannel = cs.getBoolean(key + ".default", false);
String alias = cs.getString(key + ".alias", "None");
double distance = cs.getDouble(key + ".distance", (double) 0);
int cooldown = cs.getInt(key + ".cooldown", 0);
boolean autojoin = cs.getBoolean(key + ".autojoin", false);
String prefix = cs.getString(key + ".channel_prefix");
ChatChannel chatChannel = new ChatChannel(name, color, chatColor, permission, speakPermission, mutable,
filter, defaultChannel, alias, distance, autojoin, bungee, cooldown, prefix, format);
channels[counter++] = chatChannel;
chatChannels.put(name.toLowerCase(), chatChannel);
chatChannels.put(alias.toLowerCase(), chatChannel);
if (defaultChannel) {
defaultChatChannel = chatChannel;
defaultColor = color;
}
}
// Error handling for missing default channel in the config.
if(defaultChatChannel == null) {
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - &cNo default channel found!"));
defaultChatChannel = new ChatChannel("MissingDefault", "red", "red", "None", "None", false,
true, true, "md", 0, true, false, 0, "&f[&cMissingDefault&f]", "{venturechat_channel_prefix} {vault_prefix}{player_displayname}&c:");
defaultColor = defaultChatChannel.getColor();
chatChannels.put("missingdefault", defaultChatChannel);
chatChannels.put("md", defaultChatChannel);
}
}
public static boolean areAliasesRegisteredAsCommands() {
return aliasesRegisteredAsCommands;
}
/**
* Get array of chat channels.
*
* @return {@link ChatChannel}[]
*/
@Deprecated
public static ChatChannel[] getChannels() {
return channels;
}
/**
* Get list of chat channels.
*
* @return {@link Collection}&lt{@link ChatChannel}&gt
*/
public static Collection<ChatChannel> getChatChannels() {
return new HashSet<ChatChannel>(chatChannels.values());
}
/**
* Get a chat channel by name.
*
* @param channelName
* name of channel to get.
* @return {@link ChatChannel}
*/
public static ChatChannel getChannel(String channelName) {
return chatChannels.get(channelName.toLowerCase());
}
/**
* Checks if the chat channel exists.
*
* @param channelName
* name of channel to check.
* @return true if channel exists, false otherwise.
*/
public static boolean isChannel(String channelName) {
return getChannel(channelName) != null;
}
/**
* Get default chat channel color.
*
* @return {@link String}
*/
public static String getDefaultColor() {
return defaultColor;
}
/**
* Get default chat channel.
*
* @return {@link ChatChannel}
*/
public static ChatChannel getDefaultChannel() {
return defaultChatChannel;
}
/**
* Get list of chat channels with autojoin set to true.
*
* @return {@link List}&lt{@link ChatChannel}&gt
*/
public static List<ChatChannel> getAutojoinList() {
List<ChatChannel> joinlist = new ArrayList<ChatChannel>();
for (ChatChannel c : channels) {
if (c.getAutojoin()) {
joinlist.add(c);
}
}
return joinlist;
}
/**
* Parameterized constructor a {@link ChatChannel}.
*
* @param name
* @param color
* @param chatColor
* @param permission
* @param speakPermission
* @param mutable
* @param filter
* @param defaultChannel
* @param alias
* @param distance
* @param autojoin
* @param bungee
* @param cooldown
* @param format
*/
public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission,
boolean mutable, boolean filter, boolean defaultChannel, String alias, double distance, boolean autojoin,
boolean bungee, int cooldown, String prefix, String format) {
this.name = name;
this.color = color;
this.chatColor = chatColor;
this.permission = PERMISSION_PREFIX + permission;
this.speakPermission = PERMISSION_PREFIX + speakPermission;
this.mutable = mutable;
this.filter = filter;
this.defaultChannel = defaultChannel;
this.alias = alias;
this.distance = distance;
this.autojoin = autojoin;
this.bungee = bungee;
this.cooldown = cooldown;
this.format = format;
this.prefix = prefix;
}
/**
* Deprecated parameterized constructor a {@link ChatChannel}.
*
* @param name
* @param color
* @param chatColor
* @param permission
* @param speakPermission
* @param mutable
* @param filter
* @param defaultChannel
* @param alias
* @param distance
* @param autojoin
* @param bungee
* @param cooldown
* @param format
*/
@Deprecated
public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission,
Boolean mutable, Boolean filter, Boolean defaultChannel, String alias, Double distance, Boolean autojoin,
Boolean bungee, int cooldown, String format) {
this.name = name;
this.color = color;
this.chatColor = chatColor;
this.permission = PERMISSION_PREFIX + permission;
this.speakPermission = PERMISSION_PREFIX + speakPermission;
this.mutable = mutable;
this.filter = filter;
this.defaultChannel = defaultChannel;
this.alias = alias;
this.distance = distance;
this.autojoin = autojoin;
this.bungee = bungee;
this.cooldown = cooldown;
this.format = format;
}
/**
* Get the name of the chat channel.
*
* @return {@link String}
*/
public String getName() {
return name;
}
/**
* Get the format of the chat channel.
*
* @return {@link String}
*/
public String getFormat() {
return format;
}
/**
* Get the cooldown of the chat channel in seconds.
*
* @return int
*/
public int getCooldown() {
return cooldown;
}
/**
* Get the prefix of the chat channel.
* @return String
*/
public String getPrefix() {
return prefix;
}
/**
* Check if the chat channel is BungeeCord enabled.
*
* @return {@link Boolean#TRUE} if the chat channel is BungeeCord enabled,
* {@link Boolean#FALSE} otherwise.
*/
public Boolean getBungee() {
return Boolean.valueOf(bungee);
}
/**
* Get the permissions node for the chat channel.
*
* @return {@link String}
*/
public String getPermission() {
return permission;
}
/**
* Check if autojoin is enabled for the chat channel.
*
* @return {@link Boolean#TRUE} if autojoin is enabled, {@link Boolean#FALSE}
* otherwise.
*/
public Boolean getAutojoin() {
return Boolean.valueOf(autojoin);
}
/**
* Check if the chat channel allows muting.
*
* @return {@link Boolean#TRUE} if muting is allowed, {@link Boolean#FALSE}
* otherwise.
*/
public Boolean isMutable() {
return Boolean.valueOf(mutable);
}
/**
* Get the formatted color of the chat channel.
*
* @return {@link String}. Returns {@link Format#DEFAULT_COLOR_CODE} if the
* color is invalid.
*/
public String getColor() {
if (Format.isValidColor(color)) {
return String.valueOf(ChatColor.valueOf(color.toUpperCase()));
}
if (Format.isValidHexColor(color)) {
return Format.convertHexColorCodeToBukkitColorCode(color);
}
return Format.DEFAULT_COLOR_CODE;
}
/**
* Get the raw color value of the chat channel.
*
* @return {@link String}
*/
public String getColorRaw() {
return color;
}
/**
* Get the formatted chat color of the chat channel.
*
* @return {@link String}. Returns {@link Format#DEFAULT_COLOR_CODE} if the chat
* color is invalid.
*/
public String getChatColor() {
if (chatColor.equalsIgnoreCase("None")) {
return chatColor;
}
if (Format.isValidColor(chatColor)) {
return String.valueOf(ChatColor.valueOf(chatColor.toUpperCase()));
}
if (Format.isValidHexColor(chatColor)) {
return Format.convertHexColorCodeToBukkitColorCode(chatColor);
}
return Format.DEFAULT_COLOR_CODE;
}
/**
* Get the raw chat color value of the chat channel.
*
* @return {@link String}
*/
public String getChatColorRaw() {
return chatColor;
}
/**
* Check if the chat channel is the default chat channel.
*
* @return {@link Boolean#TRUE} if the chat channel is the default chat channel,
* {@link Boolean#FALSE} otherwise.
*/
public Boolean isDefaultchannel() {
return Boolean.valueOf(defaultChannel);
}
/**
* Get the alias of the chat channel.
*
* @return {@link String}
*/
public String getAlias() {
return alias;
}
/**
* Get the distance of the chat channel in blocks.
*
* @return {@link Double}
*/
public Double getDistance() {
return Double.valueOf(distance);
}
/**
* Checks if the chat channel has a distance set.
*
* @return {@link Boolean#TRUE} if the distance is greater than zero,
* {@link Boolean#FALSE} otherwise.
*/
public Boolean hasDistance() {
return Boolean.valueOf(distance > 0);
}
/**
* Checks if the chat channel has a cooldown set.
*
* @return {@link Boolean#TRUE} if the cooldown is greater than zero,
* {@link Boolean#FALSE} otherwise.
*/
public Boolean hasCooldown() {
return Boolean.valueOf(cooldown > 0);
}
/**
* Checks if the chat channel has a permission set.
*
* @return {@link Boolean#TRUE} if the permission does not equal
* {@link ChatChannel#NO_PERMISSIONS}, {@link Boolean#FALSE} otherwise.
*/
public Boolean hasPermission() {
return Boolean.valueOf(!permission.equalsIgnoreCase(NO_PERMISSIONS));
}
/**
* Checks if the chat channel has a speak permission set.
*
* @return true if the speak permission does not equal
* {@link ChatChannel#NO_PERMISSIONS}, false otherwise.
*/
public boolean hasSpeakPermission() {
return !speakPermission.equalsIgnoreCase(NO_PERMISSIONS);
}
/**
* Get the speak permissions node for the chat channel.
*
* @return {@link String}
*/
public String getSpeakPermission() {
return speakPermission;
}
/**
* Checks if the chat channel has the filter enabled.
*
* @return {@link Boolean#TRUE} if the chat channel has the filter enabled,
* {@link Boolean#FALSE} otherwise.
*/
public Boolean isFiltered() {
return Boolean.valueOf(filter);
}
/**
* Compares the chat channel by name to determine equality.
*
* @param channel
* Object to compare for equality.
* @return true if the objects are equal, false otherwise.
*/
@Override
public boolean equals(Object channel) {
return channel instanceof ChatChannel && this.name.equals(((ChatChannel) channel).getName());
}
}
package venture.Aust1n46.chat.model;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.configuration.ConfigurationSection;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.service.VentureChatFormatService;
/**
* Chat channel object pojo. Class also contains static initialization methods
* for reading chat channels from the config file.
*
* @author Aust1n46
*/
public class ChatChannel {
private static final String PERMISSION_PREFIX = "venturechat.";
private static final String NO_PERMISSIONS = "venturechat.none";
private static boolean aliasesRegisteredAsCommands;
private static ChatChannel defaultChatChannel;
private static String defaultColor;
private static HashMap<String, ChatChannel> chatChannels;
private String name;
private String permission;
private String speakPermission;
private boolean mutable;
private String color;
private String chatColor;
private boolean defaultChannel;
private boolean autojoin;
private String alias;
private double distance;
private boolean filter;
private boolean bungee;
private String format;
private int cooldown;
private String prefix;
/**
* Read chat channels from config file and initialize channel array.
*/
public static void initialize(final VentureChat plugin, final VentureChatFormatService formatter, final boolean aliasesRegisteredAsCommands) {
chatChannels = new HashMap<String, ChatChannel>();
ChatChannel.aliasesRegisteredAsCommands = aliasesRegisteredAsCommands;
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("channels");
for (String key : cs.getKeys(false)) {
String color = cs.getString(key + ".color", "white");
String chatColor = cs.getString(key + ".chatcolor", "white");
String name = key;
String permission = cs.getString(key + ".permissions", "None");
String speakPermission = cs.getString(key + ".speak_permissions", "None");
boolean mutable = cs.getBoolean(key + ".mutable", false);
boolean filter = cs.getBoolean(key + ".filter", true);
boolean bungee = cs.getBoolean(key + ".bungeecord", false);
String format = cs.getString(key + ".format", "Default");
boolean defaultChannel = cs.getBoolean(key + ".default", false);
String alias = cs.getString(key + ".alias", "None");
double distance = cs.getDouble(key + ".distance", (double) 0);
int cooldown = cs.getInt(key + ".cooldown", 0);
boolean autojoin = cs.getBoolean(key + ".autojoin", false);
String prefix = cs.getString(key + ".channel_prefix");
ChatChannel chatChannel = new ChatChannel(name, color, chatColor, permission, speakPermission, mutable,
filter, defaultChannel, alias, distance, autojoin, bungee, cooldown, prefix, format);
chatChannels.put(name.toLowerCase(), chatChannel);
chatChannels.put(alias.toLowerCase(), chatChannel);
if (defaultChannel) {
defaultChatChannel = chatChannel;
defaultColor = color;
}
}
// Error handling for missing default channel in the config.
if(defaultChatChannel == null) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&e - &cNo default channel found!"));
defaultChatChannel = new ChatChannel("MissingDefault", "red", "red", "None", "None", false,
true, true, "md", 0, true, false, 0, "&f[&cMissingDefault&f]", "{venturechat_channel_prefix} {vault_prefix}{player_displayname}&c:");
defaultColor = defaultChatChannel.getColor();
chatChannels.put("missingdefault", defaultChatChannel);
chatChannels.put("md", defaultChatChannel);
}
}
public static boolean areAliasesRegisteredAsCommands() {
return aliasesRegisteredAsCommands;
}
/**
* Get list of chat channels.
*
* @return {@link Collection}&lt{@link ChatChannel}&gt
*/
public static Collection<ChatChannel> getChatChannels() {
return new HashSet<ChatChannel>(chatChannels.values());
}
/**
* Get a chat channel by name.
*
* @param channelName
* name of channel to get.
* @return {@link ChatChannel}
*/
public static ChatChannel getChannel(String channelName) {
return chatChannels.get(channelName.toLowerCase());
}
/**
* Checks if the chat channel exists.
*
* @param channelName
* name of channel to check.
* @return true if channel exists, false otherwise.
*/
public static boolean isChannel(String channelName) {
return getChannel(channelName) != null;
}
/**
* Get default chat channel color.
*
* @return {@link String}
*/
public static String getDefaultColor() {
return defaultColor;
}
/**
* Get default chat channel.
*
* @return {@link ChatChannel}
*/
public static ChatChannel getDefaultChannel() {
return defaultChatChannel;
}
/**
* Get list of chat channels with autojoin set to true.
*
* @return {@link List}&lt{@link ChatChannel}&gt
*/
public static List<ChatChannel> getAutojoinList() {
List<ChatChannel> joinlist = new ArrayList<ChatChannel>();
for (ChatChannel c : chatChannels.values()) {
if (c.getAutojoin()) {
joinlist.add(c);
}
}
return joinlist;
}
/**
* Parameterized constructor a {@link ChatChannel}.
*
* @param name
* @param color
* @param chatColor
* @param permission
* @param speakPermission
* @param mutable
* @param filter
* @param defaultChannel
* @param alias
* @param distance
* @param autojoin
* @param bungee
* @param cooldown
* @param format
*/
public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission,
boolean mutable, boolean filter, boolean defaultChannel, String alias, double distance, boolean autojoin,
boolean bungee, int cooldown, String prefix, String format) {
this.name = name;
this.color = color;
this.chatColor = chatColor;
this.permission = PERMISSION_PREFIX + permission;
this.speakPermission = PERMISSION_PREFIX + speakPermission;
this.mutable = mutable;
this.filter = filter;
this.defaultChannel = defaultChannel;
this.alias = alias;
this.distance = distance;
this.autojoin = autojoin;
this.bungee = bungee;
this.cooldown = cooldown;
this.format = format;
this.prefix = prefix;
}
/**
* Deprecated parameterized constructor a {@link ChatChannel}.
*
* @param name
* @param color
* @param chatColor
* @param permission
* @param speakPermission
* @param mutable
* @param filter
* @param defaultChannel
* @param alias
* @param distance
* @param autojoin
* @param bungee
* @param cooldown
* @param format
*/
@Deprecated
public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission,
Boolean mutable, Boolean filter, Boolean defaultChannel, String alias, Double distance, Boolean autojoin,
Boolean bungee, int cooldown, String format) {
this.name = name;
this.color = color;
this.chatColor = chatColor;
this.permission = PERMISSION_PREFIX + permission;
this.speakPermission = PERMISSION_PREFIX + speakPermission;
this.mutable = mutable;
this.filter = filter;
this.defaultChannel = defaultChannel;
this.alias = alias;
this.distance = distance;
this.autojoin = autojoin;
this.bungee = bungee;
this.cooldown = cooldown;
this.format = format;
}
/**
* Get the name of the chat channel.
*
* @return {@link String}
*/
public String getName() {
return name;
}
/**
* Get the format of the chat channel.
*
* @return {@link String}
*/
public String getFormat() {
return format;
}
/**
* Get the cooldown of the chat channel in seconds.
*
* @return int
*/
public int getCooldown() {
return cooldown;
}
/**
* Get the prefix of the chat channel.
* @return String
*/
public String getPrefix() {
return prefix;
}
/**
* Check if the chat channel is BungeeCord enabled.
*
* @return {@link Boolean#TRUE} if the chat channel is BungeeCord enabled,
* {@link Boolean#FALSE} otherwise.
*/
public Boolean getBungee() {
return Boolean.valueOf(bungee);
}
/**
* Get the permissions node for the chat channel.
*
* @return {@link String}
*/
public String getPermission() {
return permission;
}
/**
* Check if autojoin is enabled for the chat channel.
*
* @return {@link Boolean#TRUE} if autojoin is enabled, {@link Boolean#FALSE}
* otherwise.
*/
public Boolean getAutojoin() {
return Boolean.valueOf(autojoin);
}
/**
* Check if the chat channel allows muting.
*
* @return {@link Boolean#TRUE} if muting is allowed, {@link Boolean#FALSE}
* otherwise.
*/
public Boolean isMutable() {
return Boolean.valueOf(mutable);
}
/**
* Get the formatted color of the chat channel.
*
* @return {@link String}. Returns {@link VentureChatFormatService#DEFAULT_COLOR_CODE} if the
* color is invalid.
*/
public String getColor() {
if (FormatUtils.isValidColor(color)) {
return String.valueOf(ChatColor.valueOf(color.toUpperCase()));
}
if (FormatUtils.isValidHexColor(color)) {
return FormatUtils.convertHexColorCodeToBukkitColorCode(color);
}
return FormatUtils.DEFAULT_COLOR_CODE;
}
/**
* Get the raw color value of the chat channel.
*
* @return {@link String}
*/
public String getColorRaw() {
return color;
}
/**
* Get the formatted chat color of the chat channel.
*
* @return {@link String}. Returns {@link VentureChatFormatService#DEFAULT_COLOR_CODE} if the chat
* color is invalid.
*/
public String getChatColor() {
if (chatColor.equalsIgnoreCase("None")) {
return chatColor;
}
if (FormatUtils.isValidColor(chatColor)) {
return String.valueOf(ChatColor.valueOf(chatColor.toUpperCase()));
}
if (FormatUtils.isValidHexColor(chatColor)) {
return FormatUtils.convertHexColorCodeToBukkitColorCode(chatColor);
}
return FormatUtils.DEFAULT_COLOR_CODE;
}
/**
* Get the raw chat color value of the chat channel.
*
* @return {@link String}
*/
public String getChatColorRaw() {
return chatColor;
}
/**
* Check if the chat channel is the default chat channel.
*
* @return {@link Boolean#TRUE} if the chat channel is the default chat channel,
* {@link Boolean#FALSE} otherwise.
*/
public Boolean isDefaultchannel() {
return Boolean.valueOf(defaultChannel);
}
/**
* Get the alias of the chat channel.
*
* @return {@link String}
*/
public String getAlias() {
return alias;
}
/**
* Get the distance of the chat channel in blocks.
*
* @return {@link Double}
*/
public Double getDistance() {
return Double.valueOf(distance);
}
/**
* Checks if the chat channel has a distance set.
*
* @return {@link Boolean#TRUE} if the distance is greater than zero,
* {@link Boolean#FALSE} otherwise.
*/
public Boolean hasDistance() {
return Boolean.valueOf(distance > 0);
}
/**
* Checks if the chat channel has a cooldown set.
*
* @return {@link Boolean#TRUE} if the cooldown is greater than zero,
* {@link Boolean#FALSE} otherwise.
*/
public Boolean hasCooldown() {
return Boolean.valueOf(cooldown > 0);
}
/**
* Checks if the chat channel has a permission set.
*
* @return {@link Boolean#TRUE} if the permission does not equal
* {@link ChatChannel#NO_PERMISSIONS}, {@link Boolean#FALSE} otherwise.
*/
public Boolean hasPermission() {
return Boolean.valueOf(!permission.equalsIgnoreCase(NO_PERMISSIONS));
}
/**
* Checks if the chat channel has a speak permission set.
*
* @return true if the speak permission does not equal
* {@link ChatChannel#NO_PERMISSIONS}, false otherwise.
*/
public boolean hasSpeakPermission() {
return !speakPermission.equalsIgnoreCase(NO_PERMISSIONS);
}
/**
* Get the speak permissions node for the chat channel.
*
* @return {@link String}
*/
public String getSpeakPermission() {
return speakPermission;
}
/**
* Checks if the chat channel has the filter enabled.
*
* @return {@link Boolean#TRUE} if the chat channel has the filter enabled,
* {@link Boolean#FALSE} otherwise.
*/
public Boolean isFiltered() {
return Boolean.valueOf(filter);
}
/**
* Compares the chat channel by name to determine equality.
*
* @param channel
* Object to compare for equality.
* @return true if the objects are equal, false otherwise.
*/
@Override
public boolean equals(Object channel) {
return channel instanceof ChatChannel && this.name.equals(((ChatChannel) channel).getName());
}
}

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat;
package venture.Aust1n46.chat.model;
import com.comphenix.protocol.wrappers.WrappedChatComponent;

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.gui;
package venture.Aust1n46.chat.model;
import java.util.ArrayList;
import java.util.List;
@ -6,10 +6,9 @@ import java.util.List;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import mineverse.Aust1n46.chat.MineverseChat;
import venture.Aust1n46.chat.VentureChat;
public class GuiSlot {
private static MineverseChat plugin = MineverseChat.getInstance();
private static List<GuiSlot> guiSlots;
private String text;
@ -30,7 +29,7 @@ public class GuiSlot {
this.slot = slot;
}
public static void initialize() {
public static void initialize(final VentureChat plugin) {
guiSlots = new ArrayList<GuiSlot>();
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("venturegui");
for (String key : cs.getKeys(false)) {

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.json;
package venture.Aust1n46.chat.model;
import java.util.List;

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.json;
package venture.Aust1n46.chat.model;
import java.util.ArrayList;
import java.util.Collection;
@ -7,10 +7,9 @@ import java.util.List;
import org.bukkit.configuration.ConfigurationSection;
import mineverse.Aust1n46.chat.MineverseChat;
import venture.Aust1n46.chat.VentureChat;
public class JsonFormat {
private static MineverseChat plugin = MineverseChat.getInstance();
private static HashMap<String, JsonFormat> jsonFormats;
private List<JsonAttribute> jsonAttributes;
@ -23,7 +22,7 @@ public class JsonFormat {
this.jsonAttributes = jsonAttributes;
}
public static void initialize() {
public static void initialize(final VentureChat plugin) {
jsonFormats = new HashMap<String, JsonFormat>();
ConfigurationSection jsonFormatSection = plugin.getConfig().getConfigurationSection("jsonformatting");
for (String jsonFormat : jsonFormatSection.getKeys(false)) {

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.api;
package venture.Aust1n46.chat.model;
import java.util.ArrayList;
import java.util.Collection;
@ -8,9 +8,9 @@ import java.util.List;
import java.util.Set;
import java.util.UUID;
import mineverse.Aust1n46.chat.command.mute.MuteContainer;
import venture.Aust1n46.chat.controllers.commands.MuteContainer;
public class SynchronizedMineverseChatPlayer {
public class SynchronizedVentureChatPlayer {
private UUID uuid;
private Set<String> listening;
private HashMap<String, MuteContainer> mutes;
@ -20,7 +20,7 @@ public class SynchronizedMineverseChatPlayer {
private boolean spy;
private boolean messageToggle;
public SynchronizedMineverseChatPlayer(UUID uuid, Set<String> listening, HashMap<String, MuteContainer> mutes, Set<UUID> ignores, boolean spy, boolean messageToggle) {
public SynchronizedVentureChatPlayer(UUID uuid, Set<String> listening, HashMap<String, MuteContainer> mutes, Set<UUID> ignores, boolean spy, boolean messageToggle) {
this.uuid = uuid;
this.listening = listening;
this.mutes = mutes;
@ -29,7 +29,7 @@ public class SynchronizedMineverseChatPlayer {
this.messageToggle = messageToggle;
}
public SynchronizedMineverseChatPlayer(UUID uuid) {
public SynchronizedVentureChatPlayer(UUID uuid) {
this.uuid = uuid;
listening = new HashSet<String>();
mutes = new HashMap<String, MuteContainer>();
@ -62,11 +62,11 @@ public class SynchronizedMineverseChatPlayer {
this.messagePackets = 0;
}
public void addIgnore(SynchronizedMineverseChatPlayer smcp) {
public void addIgnore(SynchronizedVentureChatPlayer smcp) {
this.ignores.add(smcp.getUUID());
}
public void removeIgnore(SynchronizedMineverseChatPlayer smcp) {
public void removeIgnore(SynchronizedVentureChatPlayer smcp) {
this.ignores.remove(smcp.getUUID());
}

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.database;
package venture.Aust1n46.chat.model;
import java.util.HashMap;
import java.util.UUID;

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.api;
package venture.Aust1n46.chat.model;
import java.util.ArrayList;
import java.util.Collection;
@ -11,17 +11,19 @@ import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import mineverse.Aust1n46.chat.ChatMessage;
import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.mute.MuteContainer;
import mineverse.Aust1n46.chat.json.JsonFormat;
import lombok.AccessLevel;
import lombok.Data;
import lombok.Setter;
import venture.Aust1n46.chat.controllers.commands.MuteContainer;
/**
* Wrapper for {@link Player}
*
* @author Aust1n46
*/
public class MineverseChatPlayer {
@Data
public class VentureChatPlayer {
@Setter(value = AccessLevel.NONE)
private UUID uuid;
private String name;
private ChatChannel currentChannel;
@ -55,11 +57,11 @@ public class MineverseChatPlayer {
private boolean bungeeToggle;
@Deprecated
public MineverseChatPlayer(UUID uuid, String name, ChatChannel currentChannel, Set<UUID> ignores, Set<String> listening, HashMap<String, MuteContainer> mutes, Set<String> blockedCommands, boolean host, UUID party, boolean filter, boolean notifications, String nickname, String jsonFormat, boolean spy, boolean commandSpy, boolean rangedSpy, boolean messageToggle, boolean bungeeToggle) {
public VentureChatPlayer(UUID uuid, String name, ChatChannel currentChannel, Set<UUID> ignores, Set<String> listening, HashMap<String, MuteContainer> mutes, Set<String> blockedCommands, boolean host, UUID party, boolean filter, boolean notifications, String nickname, String jsonFormat, boolean spy, boolean commandSpy, boolean rangedSpy, boolean messageToggle, boolean bungeeToggle) {
this(uuid, name, currentChannel, ignores, listening, mutes, blockedCommands, host, party, filter, notifications, jsonFormat, spy, commandSpy, rangedSpy, messageToggle, bungeeToggle);
}
public MineverseChatPlayer(UUID uuid, String name, ChatChannel currentChannel, Set<UUID> ignores, Set<String> listening, HashMap<String, MuteContainer> mutes, Set<String> blockedCommands, boolean host, UUID party, boolean filter, boolean notifications, String jsonFormat, boolean spy, boolean commandSpy, boolean rangedSpy, boolean messageToggle, boolean bungeeToggle) {
public VentureChatPlayer(UUID uuid, String name, ChatChannel currentChannel, Set<UUID> ignores, Set<String> listening, HashMap<String, MuteContainer> mutes, Set<String> blockedCommands, boolean host, UUID party, boolean filter, boolean notifications, String jsonFormat, boolean spy, boolean commandSpy, boolean rangedSpy, boolean messageToggle, boolean bungeeToggle) {
this.uuid = uuid;
this.name = name;
this.currentChannel = currentChannel;
@ -91,7 +93,7 @@ public class MineverseChatPlayer {
this.bungeeToggle = bungeeToggle;
}
public MineverseChatPlayer(UUID uuid, String name) {
public VentureChatPlayer(UUID uuid, String name) {
this.uuid = uuid;
this.name = name;
this.currentChannel = ChatChannel.getDefaultChannel();
@ -124,35 +126,6 @@ public class MineverseChatPlayer {
this.bungeeToggle = true;
}
@Deprecated
public String getNickname() {
return this.online ? this.player.getDisplayName() : "";
}
@Deprecated
public void setNickname(String nick) {}
@Deprecated
public boolean hasNickname() {
return false;
}
public boolean getBungeeToggle() {
return this.bungeeToggle;
}
public void setBungeeToggle(boolean bungeeToggle) {
this.bungeeToggle = bungeeToggle;
}
public boolean getMessageToggle() {
return this.messageToggle;
}
public void setMessageToggle(boolean messageToggle) {
this.messageToggle = messageToggle;
}
public boolean getRangedSpy() {
if(isOnline()) {
if(!getPlayer().hasPermission("venturechat.rangedspy")) {
@ -162,42 +135,6 @@ public class MineverseChatPlayer {
}
return this.rangedSpy;
}
public void setRangedSpy(boolean rangedSpy) {
this.rangedSpy = rangedSpy;
}
public int getEditHash() {
return this.editHash;
}
public void setEditHash(int editHash) {
this.editHash = editHash;
}
public boolean isEditing() {
return this.editing;
}
public void setEditing(boolean editing) {
this.editing = editing;
}
public UUID getUUID() {
return this.uuid;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public ChatChannel getCurrentChannel() {
return this.currentChannel;
}
public boolean setCurrentChannel(ChatChannel channel) {
if(channel != null) {
@ -207,10 +144,6 @@ public class MineverseChatPlayer {
return false;
}
public Set<UUID> getIgnores() {
return this.ignores;
}
public void addIgnore(UUID ignore) {
this.ignores.add(ignore);
}
@ -317,46 +250,10 @@ public class MineverseChatPlayer {
return this.blockedCommands.contains(command);
}
public boolean isHost() {
return this.host;
}
public void setHost(boolean host) {
this.host = host;
}
public UUID getParty() {
return this.party;
}
public void setParty(UUID party) {
this.party = party;
}
public boolean hasParty() {
return this.party != null;
}
public boolean hasFilter() {
return this.filter;
}
public void setFilter(boolean filter) {
this.filter = filter;
}
public boolean hasNotifications() {
return this.notifications;
}
public void setNotifications(boolean notifications) {
this.notifications = notifications;
}
public boolean isOnline() {
return this.online;
}
public void setOnline(boolean online) {
this.online = online;
if(this.online) {
@ -371,14 +268,6 @@ public class MineverseChatPlayer {
return this.online ? this.player : null;
}
public boolean hasPlayed() {
return this.hasPlayed;
}
public void setHasPlayed(boolean played) {
this.hasPlayed = played;
}
public UUID getConversation() {
return this.conversation;
}

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.command;
package venture.Aust1n46.chat.model;
import java.util.List;

View File

@ -0,0 +1,62 @@
package venture.Aust1n46.chat.service;
import java.util.UUID;
import org.bukkit.Bukkit;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import mineverse.Aust1n46.chat.proxy.VentureChatProxySource;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
@Singleton
public class UUIDService {
@Inject
private VentureChat plugin;
/**
* Returns whether the passed UUID is a v3 UUID. Offline UUIDs are v3, online are v4.
*
* @param uuid the UUID to check
* @return whether the UUID is a v3 UUID & thus is offline
*/
public boolean uuidIsOffline(UUID uuid) {
return uuid.version() == 3;
}
public boolean shouldSkipOfflineUUID(UUID uuid) {
return (uuidIsOffline(uuid) && !plugin.getConfig().getBoolean("offline_server_acknowledgement", false));
}
public boolean shouldSkipOfflineUUIDProxy(UUID uuid, VentureChatProxySource source) {
return (uuidIsOffline(uuid) && !source.isOfflineServerAcknowledgementSet());
}
public void checkOfflineUUIDWarning(UUID uuid) {
if(shouldSkipOfflineUUID(uuid)) {
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Detected Offline UUID!"));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - If you are using BungeeCord, make sure you have properly setup IP Forwarding."));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - https://www.spigotmc.org/wiki/bungeecord-ip-forwarding/"));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - You can access this wiki page from the log file or just Google it."));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - If you're running a \"cracked\" server, player data might not be stored properly, and thus, you are on your own."));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - If you run your server in offline mode, you will probably lose your player data when switching to online mode!"));
Bukkit.getConsoleSender().sendMessage(FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - No player data will be saved in offline mode unless you set the \"cracked\" server acknowledgement in the config!"));
return;
}
}
public void checkOfflineUUIDWarningProxy(UUID uuid, VentureChatProxySource source) {
if(shouldSkipOfflineUUIDProxy(uuid, source)) {
source.sendConsoleMessage("&8[&eVentureChat&8]&c - Detected Offline UUID!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - If you are using BungeeCord, make sure you have properly setup IP Forwarding.");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - https://www.spigotmc.org/wiki/bungeecord-ip-forwarding/");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - You can access this wiki page from the log file or just Google it.");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - If you're running a \"cracked\" server, player data might not be stored properly, and thus, you are on your own.");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - If you run your server in offline mode, you will probably lose your player data when switching to online mode!");
source.sendConsoleMessage("&8[&eVentureChat&8]&c - No player data will be saved in offline mode unless you set the \"cracked\" server acknowledgement in the config!");
return;
}
}
}

View File

@ -1,4 +1,4 @@
package mineverse.Aust1n46.chat.database;
package venture.Aust1n46.chat.service;
import java.sql.Connection;
import java.sql.PreparedStatement;
@ -9,21 +9,28 @@ import java.util.Calendar;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.utilities.Format;
import mineverse.Aust1n46.chat.utilities.FormatUtils;
import venture.Aust1n46.chat.VentureChat;
/**
* Initializes and handles writing to the chat logging database.
*/
public class Database {
private static HikariDataSource dataSource = null;
@Singleton
public class VentureChatDatabaseService {
@Inject
private VentureChat plugin;
private HikariDataSource dataSource;
public static void initializeMySQL() {
@Inject
public void postConstruct() {
try {
ConfigurationSection mysqlConfig = MineverseChat.getInstance().getConfig().getConfigurationSection("mysql");
ConfigurationSection mysqlConfig = plugin.getConfig().getConfigurationSection("mysql");
if (mysqlConfig.getBoolean("enabled", false)) {
String host = mysqlConfig.getString("host");
int port = mysqlConfig.getInt("port");
@ -53,17 +60,16 @@ public class Database {
}
} catch (Exception exception) {
Bukkit.getConsoleSender().sendMessage(
Format.FormatStringAll("&8[&eVentureChat&8]&c - Database could not be loaded. Is it running?"));
FormatUtils.FormatStringAll("&8[&eVentureChat&8]&c - Database could not be loaded. Is it running?"));
}
}
public static boolean isEnabled() {
public boolean isEnabled() {
return dataSource != null;
}
public static void writeVentureChat(String uuid, String name, String server, String channel, String text,
public void writeVentureChat(String uuid, String name, String server, String channel, String text,
String type) {
MineverseChat plugin = MineverseChat.getInstance();
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = formatter.format(currentDate.getTime());

View File

@ -0,0 +1,174 @@
package venture.Aust1n46.chat.service;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import org.bukkit.entity.Player;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.model.SynchronizedVentureChatPlayer;
/**
* API class for looking up wrapped {@link VentureChatPlayer} objects from
* {@link Player}, {@link UUID}, or {@link String} user names.
*
* @author Aust1n46
*/
public final class VentureChatPlayerApiService {
private static HashMap<UUID, VentureChatPlayer> playerMap = new HashMap<UUID, VentureChatPlayer>();
private static HashMap<String, UUID> namesMap = new HashMap<String, UUID>();
private static HashMap<UUID, VentureChatPlayer> onlinePlayerMap = new HashMap<UUID, VentureChatPlayer>();
private static List<String> networkPlayerNames = new ArrayList<String>();
private static HashMap<UUID, SynchronizedVentureChatPlayer> proxyPlayerMap = new HashMap<UUID, SynchronizedVentureChatPlayer>();
public void addNameToMap(VentureChatPlayer mcp) {
namesMap.put(mcp.getName(), mcp.getUuid());
}
public void removeNameFromMap(String name) {
namesMap.remove(name);
}
public void clearNameMap() {
namesMap.clear();
}
public void addMineverseChatPlayerToMap(VentureChatPlayer mcp) {
playerMap.put(mcp.getUuid(), mcp);
}
public void clearMineverseChatPlayerMap() {
playerMap.clear();
}
public Collection<VentureChatPlayer> getMineverseChatPlayers() {
return playerMap.values();
}
public void addMineverseChatOnlinePlayerToMap(VentureChatPlayer mcp) {
onlinePlayerMap.put(mcp.getUuid(), mcp);
}
public void removeMineverseChatOnlinePlayerToMap(VentureChatPlayer mcp) {
onlinePlayerMap.remove(mcp.getUuid());
}
public void clearOnlineMineverseChatPlayerMap() {
onlinePlayerMap.clear();
}
public Collection<VentureChatPlayer> getOnlineMineverseChatPlayers() {
return onlinePlayerMap.values();
}
/**
* Get a MineverseChatPlayer wrapper from a Bukkit Player instance.
*
* @param player {@link Player} object.
* @return {@link VentureChatPlayer}
*/
public VentureChatPlayer getMineverseChatPlayer(Player player) {
return getMineverseChatPlayer(player.getUniqueId());
}
/**
* Get a MineverseChatPlayer wrapper from a UUID.
*
* @param uuid {@link UUID}.
* @return {@link VentureChatPlayer}
*/
public VentureChatPlayer getMineverseChatPlayer(UUID uuid) {
return playerMap.get(uuid);
}
/**
* Get a MineverseChatPlayer wrapper from a user name.
*
* @param name {@link String}.
* @return {@link VentureChatPlayer}
*/
public VentureChatPlayer getMineverseChatPlayer(String name) {
return getMineverseChatPlayer(namesMap.get(name));
}
/**
* Get a MineverseChatPlayer wrapper from a Bukkit Player instance. Only checks
* current online players. Much more efficient!
*
* @param player {@link Player} object.
* @return {@link VentureChatPlayer}
*/
public VentureChatPlayer getOnlineMineverseChatPlayer(Player player) {
return getOnlineMineverseChatPlayer(player.getUniqueId());
}
/**
* Get a MineverseChatPlayer wrapper from a UUID. Only checks current online
* players. Much more efficient!
*
* @param uuid {@link UUID}.
* @return {@link VentureChatPlayer}
*/
public VentureChatPlayer getOnlineMineverseChatPlayer(UUID uuid) {
return onlinePlayerMap.get(uuid);
}
/**
* Get a MineverseChatPlayer wrapper from a user name. Only checks current
* online players. Much more efficient!
*
* @param name {@link String}.
* @return {@link VentureChatPlayer}
*/
public VentureChatPlayer getOnlineMineverseChatPlayer(String name) {
return getOnlineMineverseChatPlayer(namesMap.get(name));
}
public List<String> getNetworkPlayerNames() {
return networkPlayerNames;
}
public void clearNetworkPlayerNames() {
networkPlayerNames.clear();
}
public void addNetworkPlayerName(String name) {
networkPlayerNames.add(name);
}
public void addSynchronizedMineverseChatPlayerToMap(SynchronizedVentureChatPlayer smcp) {
proxyPlayerMap.put(smcp.getUUID(), smcp);
}
// @Deprecated
// public static void clearBungeePlayerMap() {
// clearProxyPlayerMap();
// }
public void clearProxyPlayerMap() {
proxyPlayerMap.clear();
}
public Collection<SynchronizedVentureChatPlayer> getSynchronizedMineverseChatPlayers() {
return proxyPlayerMap.values();
}
/**
* Get a SynchronizedMineverseChatPlayer from a UUID.
*
* @param uuid {@link UUID}
* @return {@link SynchronizedVentureChatPlayer}
*/
public SynchronizedVentureChatPlayer getSynchronizedMineverseChatPlayer(UUID uuid) {
return proxyPlayerMap.get(uuid);
}
}

View File

@ -1,7 +1,7 @@
name: VentureChat
version: ${project.version}
api-version: 1.13
main: mineverse.Aust1n46.chat.MineverseChat
main: venture.Aust1n46.chat.VentureChat
depend: [Vault, ProtocolLib, PlaceholderAPI]
softdepend: [Towny, Factions, EssentialsDiscord]
author: Aust1n46

View File

@ -1,92 +0,0 @@
package mineverse.Aust1n46.chat.listeners;
import java.io.File;
import org.bukkit.Bukkit;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerQuitEvent;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.database.PlayerData;
/**
* Tests {@link LoginListener}.
*/
public class LoginListenerTest {
private static MockedStatic<MineverseChat> mockedMineverseChat;
private static MockedStatic<Bukkit> mockedBukkit;
private static MockedStatic<PlayerData> mockedPlayerData;
private static MockedStatic<MineverseChatAPI> mockedMineverseChatAPI;
private static MineverseChat mockPlugin;
private Player mockPlayer;
private MineverseChatPlayer mockMCP;
private ConsoleCommandSender mockConsoleSender;
private LoginListener testLoginListener;
private PlayerQuitEvent mockPlayerQuitEvent;
private static File mockDataFile;
@BeforeClass
public static void init() {
mockedMineverseChat = Mockito.mockStatic(MineverseChat.class);
mockPlugin = Mockito.mock(MineverseChat.class);
Mockito.when(MineverseChat.getInstance()).thenReturn(mockPlugin);
mockedBukkit = Mockito.mockStatic(Bukkit.class);
mockDataFile = Mockito.mock(File.class);
Mockito.when(mockPlugin.getDataFolder()).thenReturn(mockDataFile);
Mockito.when(mockDataFile.getAbsolutePath()).thenReturn("");
mockedPlayerData = Mockito.mockStatic(PlayerData.class);
mockedMineverseChatAPI = Mockito.mockStatic(MineverseChatAPI.class);
}
@AfterClass
public static void close() {
mockedMineverseChat.close();
mockedBukkit.close();
mockedPlayerData.close();
mockedMineverseChatAPI.close();
}
@Before
public void setUp() {
mockPlayer = Mockito.mock(Player.class);
mockMCP = Mockito.mock(MineverseChatPlayer.class);
mockConsoleSender = Mockito.mock(ConsoleCommandSender.class);
mockPlayerQuitEvent = Mockito.mock(PlayerQuitEvent.class);
Mockito.when(mockPlayerQuitEvent.getPlayer()).thenReturn(mockPlayer);
Mockito.when(MineverseChatAPI.getMineverseChatPlayer(Mockito.any(Player.class))).thenReturn(mockMCP);
Mockito.when(MineverseChatAPI.getOnlineMineverseChatPlayer(Mockito.any(Player.class))).thenReturn(mockMCP);
Mockito.when(Bukkit.getConsoleSender()).thenReturn(mockConsoleSender);
testLoginListener = new LoginListener();
}
@After
public void tearDown() {
mockPlugin = null;
}
@Test
public void testLoginWithNameChange() throws Exception {
Mockito.when(mockPlayer.getName()).thenReturn("NewName");
Mockito.when(mockMCP.getName()).thenReturn("OldName");
testLoginListener.handleNameChange(mockMCP, mockPlayer);
Mockito.verify(mockMCP, Mockito.times(1)).setName("NewName");
}
@Test
public void testPlayerQuit() {
testLoginListener.onPlayerQuit(mockPlayerQuitEvent);
Mockito.verify(mockMCP, Mockito.times(1)).clearMessages();
Mockito.verify(mockMCP, Mockito.times(1)).setOnline(false);
}
}

View File

@ -1,191 +0,0 @@
package mineverse.Aust1n46.chat.utilities;
import static mineverse.Aust1n46.chat.utilities.Format.BUKKIT_COLOR_CODE_PREFIX;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.configuration.file.FileConfiguration;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import mineverse.Aust1n46.chat.MineverseChat;
/**
* Tests {@link Format}.
*/
public class FormatTest {
private static MockedStatic<MineverseChat> mockedMineverseChat;
private static MineverseChat mockPlugin;
private FileConfiguration mockConfig;
private List<String> filters;
@BeforeClass
public static void init() {
mockedMineverseChat = Mockito.mockStatic(MineverseChat.class);
mockPlugin = Mockito.mock(MineverseChat.class);
Mockito.when(MineverseChat.getInstance()).thenReturn(mockPlugin);
}
@AfterClass
public static void close() {
mockedMineverseChat.close();
}
@Before
public void setUp() {
filters = new ArrayList<String>();
filters.add("ass,donut");
mockConfig = Mockito.mock(FileConfiguration.class);
Mockito.when(mockPlugin.getConfig()).thenReturn(mockConfig);
Mockito.when(mockConfig.getStringList("filters")).thenReturn(filters);
}
@After
public void tearDown() {
filters = new ArrayList<String>();
}
@Test
public void testGetLastCodeSingleColor() {
String input = BUKKIT_COLOR_CODE_PREFIX + "cHello";
String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "c";
String result = Format.getLastCode(input);
assertEquals(expectedResult, result);
}
@Test
public void testGetLastCodeColorAfterFormat() {
String input = BUKKIT_COLOR_CODE_PREFIX + "o" + BUKKIT_COLOR_CODE_PREFIX + "cHello";
String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "c";
String result = Format.getLastCode(input);
assertEquals(expectedResult, result);
}
@Test
public void testGetLastCodeColorBeforeFormat() {
String input = BUKKIT_COLOR_CODE_PREFIX + "c" + BUKKIT_COLOR_CODE_PREFIX + "oHello";
String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "c" + BUKKIT_COLOR_CODE_PREFIX + "o";
String result = Format.getLastCode(input);
assertEquals(expectedResult, result);
}
@Test
public void testFilterChat() {
String test = "I am an ass";
String expectedResult = "I am an donut";
String result = Format.FilterChat(test);
assertEquals(expectedResult, result);
}
@Test
public void testIsValidColor() {
String color = "red";
boolean result = Format.isValidColor(color);
assertTrue(result);
}
@Test
public void testIsInvalidColor() {
String color = "randomString";
boolean result = Format.isValidColor(color);
assertFalse(result);
}
@Test
public void testIsValidHexColor() {
String hexColor = "#ff00ff";
boolean result = Format.isValidHexColor(hexColor);
assertTrue(result);
}
@Test
public void testIsInvalidHexColor() {
String hexColor = "#random";
boolean result = Format.isValidHexColor(hexColor);
assertFalse(result);
}
@Test
public void testConvertHexColorCodeToBukkitColorCode() {
String hexColor = "#ff00ff";
String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "x" + BUKKIT_COLOR_CODE_PREFIX + "f"
+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "0" + BUKKIT_COLOR_CODE_PREFIX + "0"
+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "f";
String result = Format.convertHexColorCodeToBukkitColorCode(hexColor);
assertEquals(expectedResult, result);
}
@Test
public void testConvertHexColorCodeStringToBukkitColorCodeString() {
String input = "#ff00ffHello" + BUKKIT_COLOR_CODE_PREFIX + "cThere#00ff00Austin";
String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "x" + BUKKIT_COLOR_CODE_PREFIX + "f"
+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "0" + BUKKIT_COLOR_CODE_PREFIX + "0"
+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "fHello" + BUKKIT_COLOR_CODE_PREFIX
+ "cThere" + BUKKIT_COLOR_CODE_PREFIX + "x" + BUKKIT_COLOR_CODE_PREFIX + "0" + BUKKIT_COLOR_CODE_PREFIX
+ "0" + BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "0"
+ BUKKIT_COLOR_CODE_PREFIX + "0Austin";
String result = Format.convertHexColorCodeStringToBukkitColorCodeString(input);
assertEquals(expectedResult, result);
}
@Test
public void testFormatStringLegacyColor_NoColorCode() {
String input = "Hello There Austin";
String expectedResult = "Hello There Austin";
String result = Format.FormatStringLegacyColor(input);
assertEquals(expectedResult, result);
}
@Test
public void testFormatStringLegacyColor_LegacyCodeOnly() {
String input = "Hello &cThere Austin";
String expectedResult = "Hello " + BUKKIT_COLOR_CODE_PREFIX + "cThere Austin";
String result = Format.FormatStringLegacyColor(input);
assertEquals(expectedResult, result);
}
@Test
public void testFormatStringLegacyColor_SpigotHexCodeOnly() {
String input = "&x&f&f&f&f&f&fHello There Austin";
String expectedResult = "&x&f&f&f&f&f&fHello There Austin";
String result = Format.FormatStringLegacyColor(input);
assertEquals(expectedResult, result);
}
@Test
public void testFormatStringLegacyColor_BothColorCodes() {
String input = "&x&f&f&f&f&f&f&cHello There Austin";
String expectedResult = "&x&f&f&f&f&f&f" + BUKKIT_COLOR_CODE_PREFIX + "cHello There Austin";
String result = Format.FormatStringLegacyColor(input);
assertEquals(expectedResult, result);
}
}

View File

@ -0,0 +1,56 @@
package venture.Aust1n46.chat.initiators.listeners;
import static org.mockito.Mockito.when;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerQuitEvent;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import venture.Aust1n46.chat.Logger;
import venture.Aust1n46.chat.VentureChat;
import venture.Aust1n46.chat.controllers.PluginMessageController;
import venture.Aust1n46.chat.controllers.VentureChatSpigotFlatFileController;
import venture.Aust1n46.chat.model.VentureChatPlayer;
import venture.Aust1n46.chat.service.UUIDService;
import venture.Aust1n46.chat.service.VentureChatPlayerApiService;
@RunWith(MockitoJUnitRunner.class)
public class LoginListenerTest {
@Mock
private VentureChat plugin;
@Mock
private UUIDService uuidService;
@Mock
private VentureChatSpigotFlatFileController spigotFlatFileController;
@Mock
private PluginMessageController pluginMessageController;
@Mock
private VentureChatPlayerApiService playerApiService;
@Mock
private Logger log;
@InjectMocks
private LoginListener loginListener;
@Mock
private PlayerQuitEvent mockPlayerQuitEvent;
@Mock
private Player mockPlayer;
@Mock
private VentureChatPlayer mockVentureChatPlayer;
@Test
public void testPlayerQuit() {
when(mockPlayerQuitEvent.getPlayer()).thenReturn(mockPlayer);
when(playerApiService.getOnlineMineverseChatPlayer(mockPlayer)).thenReturn(mockVentureChatPlayer);
loginListener.onPlayerQuit(mockPlayerQuitEvent);
}
@Test
public void testPlayerJoin_successful() {
}
}