aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorolim <bobq4582@gmail.com>2024-02-20 12:39:15 +0000
committerolim <bobq4582@gmail.com>2024-02-20 12:39:15 +0000
commite82a97b83041cf552dae3379e6071204c8993f9e (patch)
treeffd7b7c749dce1bdd028f17ed2d9a8ec1ccc9852 /src/main/java
parent5a86e887a527d41fd36e8988b7414921990da1d0 (diff)
downloadSkyblocker-e82a97b83041cf552dae3379e6071204c8993f9e.tar.gz
Skyblocker-e82a97b83041cf552dae3379e6071204c8993f9e.tar.bz2
Skyblocker-e82a97b83041cf552dae3379e6071204c8993f9e.zip
add defalut rules on first load
add rule to clean hub chat and for mining ability when first loaded as examples of what the user can do
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRule.java15
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandler.java13
3 files changed, 32 insertions, 3 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRule.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRule.java
index f2ecefc6..93897988 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRule.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRule.java
@@ -47,6 +47,21 @@ public class ChatRule {
this.customSound = null;
}
+ public ChatRule(String name, Boolean enabled, Boolean isPartialMatch, Boolean isRegex, Boolean isIgnoreCase, String filter, String validLocations, Boolean hideMessage, Boolean showActionBar, Boolean showAnnouncement, String replaceMessage, SoundEvent customSound) {
+ this.name = name;
+ this.enabled = enabled;
+ this.isPartialMatch = isPartialMatch;
+ this.isRegex = isRegex;
+ this.isIgnoreCase = isIgnoreCase;
+ this.filter = filter;
+ this.validLocations = validLocations;
+ this.hideMessage = hideMessage;
+ this.showActionBar = showActionBar;
+ this.showAnnouncement = showAnnouncement;
+ this.replaceMessage = replaceMessage;
+ this.customSound = customSound;
+ }
+
protected String getName() {
return name;
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java
index 59e2efed..92cd72d7 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRuleConfigScreen.java
@@ -155,6 +155,7 @@ public class ChatRuleConfigScreen extends Screen {
locationsInput = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, currentPos.leftInt() + lineXOffset, currentPos.rightInt(), 200, 20, Text.of(""));
locationsInput.setText(chatRule.getValidLocations());
MutableText locationToolTip = Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.locations.@Tooltip");
+ locationToolTip.append("\n");
ChatRulesHandler.locationsList.forEach(location -> locationToolTip.append(" " + location + ",\n"));
locationsInput.setTooltip(Tooltip.of(locationToolTip));
currentPos = IntIntPair.of(currentPos.leftInt(),currentPos.rightInt() + SPACER_Y);
@@ -300,10 +301,12 @@ public class ChatRuleConfigScreen extends Screen {
context.drawTextWithShadow(this.textRenderer,Text.translatable("text.autoconfig.skyblocker.option.messages.chatRules.screen.ruleScreen.replace"), replaceMessageLabelTextPos.leftInt(), replaceMessageLabelTextPos.rightInt() + yOffset, 0xFFFFFF);
}
+ /**
+ * Saves and returns to parent screen
+ */
@Override
public void close() {
- //todo add checks to see if valid rule e.g. has name
- //and if valid save a
+
if (client != null ) {
save();
client.setScreen(parent);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandler.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandler.java
index bde55aed..aa9343d8 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandler.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesHandler.java
@@ -9,6 +9,7 @@ import de.hysky.skyblocker.utils.Http;
import de.hysky.skyblocker.utils.Utils;
import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents;
import net.minecraft.client.MinecraftClient;
+import net.minecraft.sound.SoundEvents;
import net.minecraft.text.MutableText;
import net.minecraft.text.Style;
import net.minecraft.text.Text;
@@ -55,13 +56,23 @@ public class ChatRulesHandler {
LOGGER.info("[Skyblocker] Loaded chat rules");
} catch (NoSuchFileException e) {
- //todo create default chat rules
+ registerDefaultChatRules();
LOGGER.warn("[Skyblocker] chat rule file not found, using default rules. This is normal when using for the first time.");
} catch (IOException e) {
LOGGER.error("[Skyblocker] Failed to load shortcuts file", e);
}
}
+ private static void registerDefaultChatRules() {
+ //clean hub chat
+ ChatRule cleanHubRule = new ChatRule("Clean Hub Chat", false, true, true, true, "(selling)|(buying)|(lowb)|(visit)|(/p)|(/ah)|(my ah)", "hub", true, false, false, "", null);
+ //mining Ability
+ ChatRule miningAbilityRule = new ChatRule("Mining Ability Alert", false, true, false, true, "is now available!", "Crystal Hollows, Dwarven Mines", false, false, true, "&1Ability", SoundEvents.ENTITY_ARROW_HIT_PLAYER);
+
+ chatRuleList.add(cleanHubRule);
+ chatRuleList.add(miningAbilityRule);
+ }
+
private static void loadLocations() {
try {
String response = Http.sendGetRequest("https://api.hypixel.net/v2/resources/games");