diff --git a/.travis.yml b/.travis.yml
index a3dfe4a..191dd29 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,17 +7,15 @@ before_install: | # Wget BuildTools and run if cached folder not found
# grep so that download counts don't appear in log files
java -jar BuildTools.jar --rev 1.12.2 | grep -vE "[^/ ]*/[^/ ]*\s*KB\s*$" | grep -v "^\s*$"
fi
- cp ci/settings.xml $HOME/.m2/
language: java
jdk:
- - oraclejdk8
+ - oraclejdk11
sudo: true
-dist: trusty # Needed for Java 8, although we might not need Java 8
deploy:
- provider: releases
api_key:
secure: "F5YiEuD6LyRENUDMCslcSl0O0dg4IDk+nNeb4X2VLYlmb8dW9beMuIgjH8efTMeaQ3D/ntIkN0Dtf2GKvpOduhwkSbAgw4WM028X60SY9f2hmpEO3LmM4T1tKoDlI1T3BmhYP4KeTKBYn+etV1mSPbT07vUybCm/vGzvr96yMZGNFEoKsWLaEu7dZfBFULj4tXOwrLh/KO6BsdAHvZcGKWNVupPq3YoUVT0dpGcUudf5cpn+aaqMwyd709zgMbyCuqf+c5Udps43q4EKvr9z7TWxFUkGTPVVAcUVygJsi2ytuyA8TLMPq/KhYe9htnkNUnizbqv/j49xww0gVaD7OJXENJ4hAUTV4sdn1DXG45JXW+dir3V7YzbRYn3M+eCuKB2O77SXRZBkxcGtTMtCmghP9/tcRAQlXDXnxu7oAnlUVp17g/+aFApvlzZEZVx2N+fkyEe7JrUFlRCixtHyrmTLWhyV0Px9p0FHJpvSSCL0S0UKVAT/sNHYHhD5gouK7owEomEbG58XCsRDH6Et7RuDksB98ekK8brZp6S7dNIS2CVuVx1vIkXC8PzUGcpJQoztvEYUE20Axahh5s8AkE9n/O9jzs9ajcfYaHhWzYeUZzHdHllOYF9l6VoCUitTk4Sl8eJifSq3GzI+T6wGMBepZHLpe230MvBIrqGZ+Vg="
- file: 'Chroma-Core/target/Chroma-Core.jar'
+ file: 'target/Chroma-Chat.jar'
on:
tags: true
skip_cleanup: true
diff --git a/ci/settings.xml b/ci/settings.xml
deleted file mode 100644
index a0cab53..0000000
--- a/ci/settings.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
- github
-
-
-
-
- github
-
-
-
- github
- GitHub Towny Apache Maven Packages
- https://maven.pkg.github.com/TownyAdvanced/Towny
-
-
-
-
-
-
-
- github
- NorbiPeti
- ${env.GHTOKEN}
-
-
-
diff --git a/pom.xml b/pom.xml
index bb80e60..be66478 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,12 +12,6 @@
src/main/java
-
- src
-
- **/*.java
-
-
src/main/resources
diff --git a/src/main/java/buttondevteam/chat/commands/SnapCommand.java b/src/main/java/buttondevteam/chat/commands/SnapCommand.java
index 13d7cad..f4e3396 100644
--- a/src/main/java/buttondevteam/chat/commands/SnapCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/SnapCommand.java
@@ -10,7 +10,10 @@ import org.bukkit.command.CommandSender;
import java.util.ArrayList;
import java.util.Random;
-@CommandClass(modOnly = true)
+@CommandClass(modOnly = true, helpText = {
+ "Snap",
+ "Perfectly balanced as all things should be."
+})
public class SnapCommand extends ICommand2MC {
@Command2.Subcommand
public void def(CommandSender sender) {
diff --git a/src/main/java/buttondevteam/chat/components/announce/AnnouncerComponent.java b/src/main/java/buttondevteam/chat/components/announce/AnnouncerComponent.java
index 2201f27..b984929 100644
--- a/src/main/java/buttondevteam/chat/components/announce/AnnouncerComponent.java
+++ b/src/main/java/buttondevteam/chat/components/announce/AnnouncerComponent.java
@@ -4,6 +4,7 @@ import buttondevteam.chat.PluginMain;
import buttondevteam.core.component.channel.Channel;
import buttondevteam.lib.TBMCSystemChatEvent;
import buttondevteam.lib.architecture.Component;
+import buttondevteam.lib.architecture.ComponentMetadata;
import buttondevteam.lib.architecture.ConfigData;
import buttondevteam.lib.architecture.ListConfigData;
import buttondevteam.lib.chat.TBMCChatAPI;
@@ -12,6 +13,7 @@ import org.bukkit.Bukkit;
/**
* Displays the configured messages at the set interval when someone is online.
*/
+@ComponentMetadata(enabledByDefault = false)
public class AnnouncerComponent extends Component implements Runnable {
/**
* The messages to display to players.
diff --git a/src/main/java/buttondevteam/chat/components/formatter/ChatProcessing.java b/src/main/java/buttondevteam/chat/components/formatter/ChatProcessing.java
index c31f3b4..f80b9e8 100644
--- a/src/main/java/buttondevteam/chat/components/formatter/ChatProcessing.java
+++ b/src/main/java/buttondevteam/chat/components/formatter/ChatProcessing.java
@@ -75,7 +75,7 @@ public class ChatProcessing {
.onmatch((match, builder, section) -> {
String text, link;
if (section.Matches.size() < 2 || (text = section.Matches.get(0)).length() == 0 || (link = section.Matches.get(1)).length() == 0)
- return "";
+ return "[MISSING LINK]"; //Doesn't actually happen, because of the regex
builder.setOpenlink(link);
return text;
}).build()),
diff --git a/src/main/java/buttondevteam/chat/components/formatter/formatting/ChatFormatter.java b/src/main/java/buttondevteam/chat/components/formatter/formatting/ChatFormatter.java
index 2426b16..53a13fa 100644
--- a/src/main/java/buttondevteam/chat/components/formatter/formatting/ChatFormatter.java
+++ b/src/main/java/buttondevteam/chat/components/formatter/formatting/ChatFormatter.java
@@ -166,16 +166,6 @@ public final class ChatFormatter {
i = 0;
}
sortSections(sections);
- if (i == 0) continue;
- for (int j = i - 1; j <= i + 1; j++) {
- if (j < sections.size() && sections.get(j).End < sections.get(j).Start) {
- DebugCommand.SendDebugMessage("Removing section: " + sections.get(j));
- ChatFormatUtils.sendMessageWithPointer(str, sections.get(j).Start, sections.get(j).End);
- sections.remove(j);
- j--;
- i = 0;
- }
- }
}
}
diff --git a/src/main/java/buttondevteam/chat/components/formatter/formatting/FormatSettings.java b/src/main/java/buttondevteam/chat/components/formatter/formatting/FormatSettings.java
index e0bfa4c..ee739b2 100644
--- a/src/main/java/buttondevteam/chat/components/formatter/formatting/FormatSettings.java
+++ b/src/main/java/buttondevteam/chat/components/formatter/formatting/FormatSettings.java
@@ -27,7 +27,6 @@ public class FormatSettings {
if (field.getBoolean(settings))
field.setBoolean(this, true); //Set to true if either of them are true
} else if (field.get(settings) != null) {
- //System.out.println("Setting " + field.getType() + " " + field.getName() + " from " + field.get(this) + " to " + field.get(settings));
field.set(this, field.get(settings));
}
}
diff --git a/src/main/java/buttondevteam/chat/components/formatter/formatting/StringMatchProvider.java b/src/main/java/buttondevteam/chat/components/formatter/formatting/StringMatchProvider.java
index a9a1184..0b09961 100644
--- a/src/main/java/buttondevteam/chat/components/formatter/formatting/StringMatchProvider.java
+++ b/src/main/java/buttondevteam/chat/components/formatter/formatting/StringMatchProvider.java
@@ -12,7 +12,7 @@ public class StringMatchProvider extends MatchProviderBase {
@ToString.Exclude
private final FormatSettings settings;
private int nextIndex = 0;
- private boolean ignoreCase;
+ private final boolean ignoreCase;
/**
* Matches the given strings in the order given
diff --git a/src/main/java/buttondevteam/chat/components/formatter/formatting/TellrawPart.java b/src/main/java/buttondevteam/chat/components/formatter/formatting/TellrawPart.java
index 2425574..7d4160c 100644
--- a/src/main/java/buttondevteam/chat/components/formatter/formatting/TellrawPart.java
+++ b/src/main/java/buttondevteam/chat/components/formatter/formatting/TellrawPart.java
@@ -14,7 +14,7 @@ public final class TellrawPart implements Serializable {
private boolean underlined;
private boolean strikethrough;
private boolean obfuscated;
- private List extra = new ArrayList<>();
+ private final List extra = new ArrayList<>();
private String text;
private TellrawEvent hoverEvent;
private TellrawEvent clickEvent;
diff --git a/src/main/java/buttondevteam/chat/components/fun/PressCommand.java b/src/main/java/buttondevteam/chat/components/fun/PressCommand.java
index bba1e45..bfb88c7 100644
--- a/src/main/java/buttondevteam/chat/components/fun/PressCommand.java
+++ b/src/main/java/buttondevteam/chat/components/fun/PressCommand.java
@@ -8,6 +8,7 @@ import buttondevteam.lib.chat.Command2;
import buttondevteam.lib.chat.CommandClass;
import buttondevteam.lib.chat.ICommand2MC;
import buttondevteam.lib.chat.TBMCChatAPI;
+import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@@ -44,5 +45,7 @@ public class PressCommand extends ICommand2MC implements Listener {
command = event.getCommand();
pressers = new HashSet<>();
startTicks = event.getRestartTicks();
+ if (Bukkit.getOnlinePlayers().size() > 0)
+ TBMCChatAPI.SendSystemMessage(Channel.GlobalChat, Channel.RecipientTestResult.ALL, "§b-- Do /press to reset the timer. You may only press once.", command.getComponent().getRestartBroadcast());
}
}
diff --git a/src/main/java/buttondevteam/chat/components/towncolors/TownColorComponent.java b/src/main/java/buttondevteam/chat/components/towncolors/TownColorComponent.java
index 94a0b18..ea31970 100644
--- a/src/main/java/buttondevteam/chat/components/towncolors/TownColorComponent.java
+++ b/src/main/java/buttondevteam/chat/components/towncolors/TownColorComponent.java
@@ -51,7 +51,7 @@ public class TownColorComponent extends Component implements Listene
public static final Map NationColor = new HashMap<>();
/**
- * The amount of town colors allowed. If more than one is used, players can change how many letters to be in a specific color using /u ncolor.
+ * The amount of town colors allowed. If more than one is used (or nation colors are enabled), players can change how many letters to be in a specific color using /u ncolor.
*/
public final ConfigData colorCount = getConfig().getData("colorCount", (byte) 1, cc -> ((Integer) cc).byteValue(), Byte::intValue);
diff --git a/src/main/java/buttondevteam/chat/components/towny/TownyComponent.java b/src/main/java/buttondevteam/chat/components/towny/TownyComponent.java
index 7d76f99..f6cb6d6 100644
--- a/src/main/java/buttondevteam/chat/components/towny/TownyComponent.java
+++ b/src/main/java/buttondevteam/chat/components/towny/TownyComponent.java
@@ -26,6 +26,7 @@ import java.util.stream.Collectors;
/**
* This component manages the town and nation chat. It's also needed for the TownColorComponent.
* It provides the TC and NC channels, and posts Towny messages (global, town, nation) to the correct channels for other platforms like Discord.
+ * You can disable /tc and /nc in Chroma-Core's config if you only want to use the TownColorComponent.
*/
public class TownyComponent extends Component {
public static TownyDataSource dataSource;
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index c0de79a..471b26e 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,18 +1,14 @@
name: Chroma-Chat
main: buttondevteam.chat.PluginMain
-version: '1.0'
+version: '${noprefix.version}'
commands:
u:
- description: Auto-flair system. Accept or ignore flair.
- ooc:
- description: Send message Out-of-Character.
- alias: nrp
+ description: The main command for Chroma-Chat.
unlol:
description: Unlaugh the last laugh.
alias: unlaugh
mwiki:
description: Search the wiki.
- dontrunthiscmd: null
tableflip:
description: Flip a table.
unflip:
@@ -34,9 +30,9 @@ commands:
description: Me command with Chroma support.
author: NorbiPeti
depend:
-- Essentials
+ - Essentials
- Vault
-- ChromaCore
+ - Chroma-Core
soft-depend:
- Dynmap-Towny
- Towny
diff --git a/src/test/java/buttondevteam/chat/components/formatter/ChatFormatIT.java b/src/test/java/buttondevteam/chat/components/formatter/ChatFormatIT.java
index 92bfbda..dfcf080 100644
--- a/src/test/java/buttondevteam/chat/components/formatter/ChatFormatIT.java
+++ b/src/test/java/buttondevteam/chat/components/formatter/ChatFormatIT.java
@@ -10,7 +10,10 @@ import buttondevteam.chat.components.formatter.formatting.TellrawEvent.ClickActi
import buttondevteam.chat.components.formatter.formatting.TellrawEvent.HoverAction;
import buttondevteam.core.TestPrepare;
import buttondevteam.core.component.channel.Channel;
+import buttondevteam.lib.TBMCCoreAPI;
import buttondevteam.lib.chat.Color;
+import buttondevteam.lib.player.TBMCPlayer;
+import buttondevteam.lib.player.TBMCPlayerBase;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.command.CommandSender;
import org.junit.Assert;
@@ -20,6 +23,7 @@ import org.mockito.Mockito;
import java.util.ArrayList;
import java.util.List;
+import java.util.function.Function;
@RunWith(ObjectTestRunner.class)
public class ChatFormatIT {
@@ -29,6 +33,7 @@ public class ChatFormatIT {
final CommandSender sender = Mockito.mock(CommandSender.class);
DebugCommand.DebugMode = true;
PluginMain.permission = Mockito.mock(Permission.class);
+ TBMCCoreAPI.RegisterUserClass(TBMCPlayerBase.class, TBMCPlayer::new);
List