diff options
author | Cow <cow@volloeko.de> | 2020-03-03 00:26:40 +0100 |
---|---|---|
committer | Cow <cow@volloeko.de> | 2020-03-03 00:26:40 +0100 |
commit | 508f872ba076f4e767ff2c374656bc47637eb229 (patch) | |
tree | 18f6b3505e878bca7c39ce8415f110917264c222 /src/main/java/eu/olli/cowmoonication/util/Utils.java | |
parent | ea5963ad660c91640ec72bddd046d2e465f55f3f (diff) | |
download | Cowlection-508f872ba076f4e767ff2c374656bc47637eb229.tar.gz Cowlection-508f872ba076f4e767ff2c374656bc47637eb229.tar.bz2 Cowlection-508f872ba076f4e767ff2c374656bc47637eb229.zip |
Replaced best friend add and remove commands with a config gui
Diffstat (limited to 'src/main/java/eu/olli/cowmoonication/util/Utils.java')
-rw-r--r-- | src/main/java/eu/olli/cowmoonication/util/Utils.java | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/main/java/eu/olli/cowmoonication/util/Utils.java b/src/main/java/eu/olli/cowmoonication/util/Utils.java new file mode 100644 index 0000000..d10c2ed --- /dev/null +++ b/src/main/java/eu/olli/cowmoonication/util/Utils.java @@ -0,0 +1,58 @@ +package eu.olli.cowmoonication.util; + +import eu.olli.cowmoonication.Cowmoonication; +import net.minecraft.client.Minecraft; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.IChatComponent; +import net.minecraftforge.client.event.ClientChatReceivedEvent; +import net.minecraftforge.common.MinecraftForge; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Utils { + public static final Pattern VALID_USERNAME = Pattern.compile("^[\\w]{1,16}$"); + private static final Pattern USELESS_JSON_CONTENT_PATTERN = Pattern.compile("\"[A-Za-z]+\":false,?"); + private final Cowmoonication main; + private String[] aboveChatMessage; + private long aboveChatMessageExpiration; + + public Utils(Cowmoonication main) { + this.main = main; + } + + public void sendMessage(String text) { + sendMessage(new ChatComponentText(text)); + } + + public void sendMessage(IChatComponent chatComponent) { + ClientChatReceivedEvent event = new ClientChatReceivedEvent((byte) 1, chatComponent); + MinecraftForge.EVENT_BUS.post(event); + if (!event.isCanceled()) { + Minecraft.getMinecraft().thePlayer.addChatMessage(event.message); + } + } + + public void sendAboveChatMessage(String... text) { + aboveChatMessage = text; + aboveChatMessageExpiration = Minecraft.getSystemTime() + 5000; + } + + public String[] getAboveChatMessage() { + if (aboveChatMessageExpiration < Minecraft.getSystemTime()) { + // message expired + aboveChatMessage = null; + } + return aboveChatMessage; + } + + public boolean isValidMcName(String username) { + return VALID_USERNAME.matcher(username).matches(); + } + + public String cleanChatComponent(IChatComponent chatComponent) { + String component = IChatComponent.Serializer.componentToJson(chatComponent); + Matcher jsonMatcher = USELESS_JSON_CONTENT_PATTERN.matcher(component); + return jsonMatcher.replaceAll(""); + } +} |