Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 16 additions & 13 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,32 @@
<parent>
<groupId>com.github.civclassic</groupId>
<artifactId>civclassic-parent</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</parent>

<groupId>vg.civcraft.mc.civchat2</groupId>
<artifactId>CivChat2</artifactId>
<packaging>jar</packaging>
<version>1.8.1</version>
<version>1.9.0</version>
<name>CivChat2</name>
<url>https://github.com/Civclassic/CivChat2</url>

<dependencies>
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper</artifactId>
<version>1.17.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.destroystokyo.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.16.4-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>vg.civcraft.mc.namelayer</groupId>
<groupId>com.github.civclassic</groupId>
<artifactId>NameLayer</artifactId>
<version>2.14.1</version>
<version>2.15.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>vg.civcraft.mc.civmodcore</groupId>
<groupId>com.github.civclassic</groupId>
<artifactId>CivModCore</artifactId>
<version>1.8.2</version>
<version>1.9.0</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand All @@ -48,6 +47,10 @@
<id>civ-github-repo</id>
<url>https://raw.githubusercontent.com/CivClassic/artifacts/master/</url>
</repository>
<repository>
<id>papermc</id>
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
</repositories>

</project>
7 changes: 7 additions & 0 deletions src/main/java/vg/civcraft/mc/civchat2/CivChat2.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import vg.civcraft.mc.civchat2.commands.CivChatCommandManager;
import vg.civcraft.mc.civchat2.database.CivChatDAO;
import vg.civcraft.mc.civchat2.listeners.CivChat2Listener;
import vg.civcraft.mc.civchat2.listeners.KillListener;
Expand All @@ -28,6 +29,7 @@ public class CivChat2 extends ACivMod {
private CivChat2SettingsManager settingsManager;
private CivChat2FileLogger fileLog;
private CivChatDAO databaseManager;
private CivChatCommandManager commandManager;

@Override
public void onEnable() {
Expand All @@ -43,6 +45,7 @@ public void onEnable() {
settingsManager = new CivChat2SettingsManager();
chatMan = new CivChat2Manager(instance);
log.debug("Debug Enabled");
commandManager = new CivChatCommandManager(this);
registerNameLayerPermissions();
registerCivChatEvents();
}
Expand Down Expand Up @@ -76,6 +79,10 @@ public void registerNameLayerPermissions() {
"Allows sending messages to the group chat");
}

private void registerCompletions() {

}

public static CivChat2 getInstance() {
return instance;
}
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/vg/civcraft/mc/civchat2/CivChat2Manager.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
import vg.civcraft.mc.civchat2.utility.CivChat2Config;
import vg.civcraft.mc.civchat2.utility.CivChat2FileLogger;
import vg.civcraft.mc.civchat2.utility.ScoreboardHUD;
import vg.civcraft.mc.civmodcore.util.TextUtil;
import vg.civcraft.mc.civmodcore.chat.ChatUtils;
import vg.civcraft.mc.civmodcore.utilities.TextUtil;
import vg.civcraft.mc.namelayer.GroupManager;
import vg.civcraft.mc.namelayer.NameAPI;
import vg.civcraft.mc.namelayer.group.Group;
Expand Down Expand Up @@ -412,12 +413,12 @@ public Group getGroupChatting(Player player) {

public String parse(String text) {

return TextUtil.parse(text);
return ChatUtils.parseColor(text);
}

public String parse(String text, Object... args) {

return TextUtil.parse(text, args);
return String.format(ChatUtils.parseColor(text), args);
}

public void setCustomName(UUID player, String name) {
Expand Down
23 changes: 7 additions & 16 deletions src/main/java/vg/civcraft/mc/civchat2/commands/Afk.java
Original file line number Diff line number Diff line change
@@ -1,31 +1,22 @@
package vg.civcraft.mc.civchat2.commands;

import java.util.LinkedList;
import java.util.List;
import org.bukkit.command.CommandSender;
import co.aikar.commands.BaseCommand;
import co.aikar.commands.annotation.CommandAlias;
import co.aikar.commands.annotation.Description;
import org.bukkit.entity.Player;
import vg.civcraft.mc.civchat2.ChatStrings;
import vg.civcraft.mc.civchat2.CivChat2;
import vg.civcraft.mc.civmodcore.command.CivCommand;
import vg.civcraft.mc.civmodcore.command.StandaloneCommand;

@CivCommand(id = "afk")
public class Afk extends StandaloneCommand {
public class Afk extends BaseCommand {

@Override
public boolean execute(CommandSender sender, String[] args) {
Player player = (Player) sender;
@CommandAlias("afk")
@Description("Toggle afk status")
public void execute(Player player) {
boolean isAfk = CivChat2.getInstance().getCivChat2Manager().togglePlayerAfk(player);
if (isAfk) {
player.sendMessage(ChatStrings.chatAfk);
} else {
player.sendMessage(ChatStrings.chatNotAfk);
}
return true;
}

@Override
public List<String> tabComplete(CommandSender sender, String[] args) {
return new LinkedList<>();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package vg.civcraft.mc.civchat2.commands;

import co.aikar.commands.BukkitCommandCompletionContext;
import co.aikar.commands.CommandCompletions;
import javax.annotation.Nonnull;
import org.bukkit.plugin.Plugin;
import vg.civcraft.mc.civmodcore.commands.CommandManager;
import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter;

public class CivChatCommandManager extends CommandManager {

public CivChatCommandManager(Plugin plugin) {
super(plugin);
init();
}

@Override
public void registerCommands() {
registerCommand(new Afk());
registerCommand(new Exit());
registerCommand(new GlobalMute());
registerCommand(new GroupChat());
registerCommand(new Ignore());
registerCommand(new IgnoreGroup());
registerCommand(new IgnoreList());
registerCommand(new Reply());
registerCommand(new Tell());
registerCommand(new WhoAmI());
}

@Override
public void registerCompletions(@Nonnull CommandCompletions<BukkitCommandCompletionContext> completions) {
super.registerCompletions(completions);
completions.registerCompletion("CC_Groups", (context) -> GroupTabCompleter
.complete(context.getInput(), null, context.getPlayer()));
}
}
34 changes: 12 additions & 22 deletions src/main/java/vg/civcraft/mc/civchat2/commands/Exit.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,43 +2,33 @@

import static vg.civcraft.mc.civchat2.ChatStrings.localChatFormat;


import co.aikar.commands.BaseCommand;
import co.aikar.commands.annotation.CommandAlias;
import co.aikar.commands.annotation.Description;
import co.aikar.commands.annotation.Optional;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import vg.civcraft.mc.civchat2.ChatStrings;
import vg.civcraft.mc.civchat2.CivChat2;
import vg.civcraft.mc.civchat2.CivChat2Manager;
import vg.civcraft.mc.civmodcore.command.CivCommand;
import vg.civcraft.mc.civmodcore.command.StandaloneCommand;

@CivCommand(id = "exit")
public class Exit extends StandaloneCommand {
public class Exit extends BaseCommand {

@Override
public boolean execute(CommandSender sender, String[] args) {
@CommandAlias("exit")
@Description("Exit private or group chats")
public void execute(Player player, @Optional String message) {
CivChat2Manager chatMan = CivChat2.getInstance().getCivChat2Manager();
Player player = (Player) sender;
if (args.length == 0) {
if (message == null) {
chatMan.removeChannel(player);
chatMan.removeGroupChat(player);
player.sendMessage(ChatStrings.chatMovedToGlobal);
return true;
return;
}
StringBuilder chatMsg = new StringBuilder();
for (int i = 0; i < args.length; i++) {
chatMsg.append(args[i]);
chatMsg.append(" ");
}
chatMsg.append(message);
Set<Player> players = new HashSet<>(CivChat2.getInstance().getServer().getOnlinePlayers());
chatMan.broadcastMessage(player, chatMsg.toString(), localChatFormat, players);
return true;
}

@Override
public List<String> tabComplete(CommandSender sender, String[] args) {
return new LinkedList<>();
}
}
79 changes: 33 additions & 46 deletions src/main/java/vg/civcraft/mc/civchat2/commands/GlobalMute.java
Original file line number Diff line number Diff line change
@@ -1,78 +1,65 @@
package vg.civcraft.mc.civchat2.commands;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import co.aikar.commands.BaseCommand;
import co.aikar.commands.annotation.CommandAlias;
import co.aikar.commands.annotation.CommandCompletion;
import co.aikar.commands.annotation.CommandPermission;
import co.aikar.commands.annotation.Description;
import co.aikar.commands.annotation.Syntax;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import vg.civcraft.mc.civchat2.CivChat2;
import vg.civcraft.mc.civmodcore.command.CivCommand;
import vg.civcraft.mc.civmodcore.command.StandaloneCommand;
import vg.civcraft.mc.civmodcore.playersettings.impl.LongSetting;
import vg.civcraft.mc.civmodcore.util.ConfigParsing;
import vg.civcraft.mc.civmodcore.util.TextUtil;
import vg.civcraft.mc.civmodcore.config.ConfigHelper;
import vg.civcraft.mc.civmodcore.players.settings.impl.LongSetting;
import vg.civcraft.mc.civmodcore.utilities.TextUtil;
import vg.civcraft.mc.namelayer.NameAPI;

@CivCommand(id = "globalmute")
public class GlobalMute extends StandaloneCommand {
public class GlobalMute extends BaseCommand {

@Override
public boolean execute(CommandSender sender, String[] args) {
UUID player = NameAPI.getUUID(args [1]);
@CommandAlias("globalmute")
@CommandPermission("civchat2.globalmute")
@Syntax("<set|check|remove> <player> [time]")
@Description("Applies, checks or removes a players global mute timer")
@CommandCompletion("set|check|remove @allplayers @nothing")
public void execute(CommandSender sender, String getSetOrCheck, String targetPlayer, String muteTime) {
UUID player = NameAPI.getUUID(targetPlayer);
if (player == null) {
sender.sendMessage(ChatColor.RED + "The player " + args[1] + " does not exist");
return true;
sender.sendMessage(ChatColor.RED + "The player " + targetPlayer + " does not exist");
return;
}
LongSetting banSetting = CivChat2.getInstance().getCivChat2SettingsManager().getGlobalChatMuteSetting();
switch (args[0].toLowerCase()) {
switch (getSetOrCheck.toLowerCase()) {
case "set":
if (args.length < 3) {
if (muteTime == null) {
sender.sendMessage(ChatColor.RED + "You need to supply a ban timer");
return false;
return;
}
long time = ConfigParsing.parseTime(args [2]);
long time = ConfigHelper.parseTime(muteTime);
if (time <= 0) {
sender.sendMessage(ChatColor.RED + "Invalid ban time frame");
return false;
return;
}
banSetting.setValue(player, System.currentTimeMillis() + time);
sender.sendMessage(ChatColor.GREEN + args [1] + " will be banned for " + TextUtil.formatDuration(time, TimeUnit.MILLISECONDS));
return true;
sender.sendMessage(ChatColor.GREEN + targetPlayer + " will be banned for " + TextUtil
.formatDuration(time, TimeUnit.MILLISECONDS));
return;
case "remove":
banSetting.setValue(player, 0L);
return true;
return;
case "check":
case "get":
long timeForUnban = banSetting.getValue(player);
timeForUnban -= System.currentTimeMillis();
if (timeForUnban <= 0) {
sender.sendMessage(ChatColor.GREEN + args [1] + " is not chat muted");
return true;
sender.sendMessage(ChatColor.GREEN + targetPlayer + " is not chat muted");
return;
}
sender.sendMessage(ChatColor.GREEN + args [1] + " is banned for another " + TextUtil.formatDuration(timeForUnban, TimeUnit.MILLISECONDS));
return true;
sender.sendMessage(ChatColor.GREEN + targetPlayer + " is banned for another " + TextUtil.formatDuration(timeForUnban, TimeUnit.MILLISECONDS));
return;
default:
sender.sendMessage(ChatColor.RED + args[0] + " is not a valid action");
return false;
sender.sendMessage(ChatColor.RED + getSetOrCheck + " is not a valid action");
}
}

@Override
public List<String> tabComplete(CommandSender sender, String[] args) {
switch (args.length) {
case 0:
return doTabComplete("", Arrays.asList("set", "remove", "check", "get"), false);
case 1:
return doTabComplete(args[0], Arrays.asList("set", "remove", "check", "get"), false);
case 2:
return doTabComplete(args[1], Bukkit.getOnlinePlayers(), Player::getName, false);
default:
return Collections.emptyList();
}
}

}
Loading