aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2021-06-29 20:53:45 +0100
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2021-06-29 20:53:45 +0100
commit74e8b6e1611224f278ede65a680737ddaee8a134 (patch)
treee8151e3f053eacb2ca8be28728e73fc49da41650 /bukkit/src
parentc8bef615fd0a117daa0919e9927a0512e2c3d0a4 (diff)
Allow color string to be null (closes #197)
Diffstat (limited to 'bukkit/src')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java22
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/Chat.java11
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/CodedColorAdapter.java7
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/ColorAdapter.java7
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/HexColorAdapter.java2
5 files changed, 32 insertions, 17 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java
index f0b62f1e..93c4aaf6 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java
@@ -4,6 +4,7 @@ import com.leonardobishop.quests.bukkit.hook.itemgetter.ItemGetter;
import com.leonardobishop.quests.common.config.QuestsConfig;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.inventory.ItemStack;
+import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.util.HashMap;
@@ -46,47 +47,48 @@ public class BukkitQuestsConfig implements QuestsConfig {
}
@Override
- public String getString(String path) {
- return config.getString(path);
+ public @NotNull String getString(@NotNull String path) {
+ String value = config.getString(path);
+ return value == null ? path : value;
}
@Override
- public String getString(String path, String def) {
+ public String getString(@NotNull String path, String def) {
return config.getString(path, def);
}
@Override
- public boolean getBoolean(String path) {
+ public boolean getBoolean(@NotNull String path) {
return cachedBooleans.computeIfAbsent(path, s -> config.getBoolean(path));
}
@Override
- public boolean getBoolean(String path, boolean def) {
+ public boolean getBoolean(@NotNull String path, boolean def) {
return cachedBooleans.computeIfAbsent(path, s -> config.getBoolean(path, def));
}
@Override
- public int getInt(String path) {
+ public int getInt(@NotNull String path) {
return config.getInt(path);
}
@Override
- public int getInt(String path, int def) {
+ public int getInt(@NotNull String path, int def) {
return config.getInt(path, def);
}
@Override
- public List<String> getStringList(String path) {
+ public List<String> getStringList(@NotNull String path) {
return config.getStringList(path);
}
@Override
- public List<String> getStringList(String path, List<String> def) {
+ public List<String> getStringList(@NotNull String path, List<String> def) {
List<String> list = config.getStringList(path);
return list.isEmpty() ? def : list;
}
- public ItemStack getItem(String path) {
+ public ItemStack getItem(@NotNull String path) {
return new ItemStack(cachedItemStacks.computeIfAbsent(path, s -> itemGetter.getItem(path, config)));
}
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/Chat.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/Chat.java
index a2125a74..9f81b08b 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/Chat.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/Chat.java
@@ -3,6 +3,8 @@ package com.leonardobishop.quests.bukkit.util.chat;
import com.leonardobishop.quests.common.config.ConfigProblem;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
+import org.jetbrains.annotations.Contract;
+import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
@@ -22,11 +24,13 @@ public class Chat {
}
}
- public static String color(String s) {
+ @Contract("null -> null")
+ public static String color(@Nullable String s) {
return colorAdapter.color(s);
}
- public static List<String> color(List<String> s) {
+ @Contract("null -> null")
+ public static List<String> color(@Nullable List<String> s) {
if (s == null || s.size() == 0) return s;
List<String> colored = new ArrayList<>();
@@ -36,7 +40,8 @@ public class Chat {
return colored;
}
- public static String strip(String s) {
+ @Contract("null -> null")
+ public static String strip(@Nullable String s) {
return colorAdapter.strip(s);
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/CodedColorAdapter.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/CodedColorAdapter.java
index f71ffaa1..877a79e0 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/CodedColorAdapter.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/CodedColorAdapter.java
@@ -1,16 +1,19 @@
package com.leonardobishop.quests.bukkit.util.chat;
import org.bukkit.ChatColor;
+import org.jetbrains.annotations.Nullable;
public class CodedColorAdapter implements ColorAdapter {
@Override
- public String color(String s) {
+ public String color(@Nullable String s) {
+ if (s == null) return null;
return ChatColor.translateAlternateColorCodes('&', s);
}
@Override
- public String strip(String s) {
+ public String strip(@Nullable String s) {
+ if (s == null) return null;
return ChatColor.stripColor(s);
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/ColorAdapter.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/ColorAdapter.java
index 5d0ff6bc..b443c8b4 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/ColorAdapter.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/ColorAdapter.java
@@ -1,9 +1,12 @@
package com.leonardobishop.quests.bukkit.util.chat;
+import org.jetbrains.annotations.Contract;
+import org.jetbrains.annotations.Nullable;
+
public interface ColorAdapter {
- String color(String s);
+ @Contract("null -> null") String color(@Nullable String s);
- String strip(String s);
+ @Contract("null -> null") String strip(@Nullable String s);
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/HexColorAdapter.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/HexColorAdapter.java
index d506b466..25fbd697 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/HexColorAdapter.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/HexColorAdapter.java
@@ -11,6 +11,7 @@ public class HexColorAdapter implements ColorAdapter {
@Override
public String color(String s) {
+ if (s == null) return null;
Matcher matcher = HEX_PATTERN.matcher(s);
while (matcher.find()) {
final ChatColor hexColor;
@@ -29,6 +30,7 @@ public class HexColorAdapter implements ColorAdapter {
@Override
public String strip(String s) {
+ if (s == null) return null;
return ChatColor.stripColor(s);
}