Skip to content
This repository was archived by the owner on Oct 12, 2024. It is now read-only.

Commit bdd25b9

Browse files
committed
fix: polymorphic filter settings serialization
1 parent c0d5cd3 commit bdd25b9

File tree

4 files changed

+69
-35
lines changed

4 files changed

+69
-35
lines changed

common/src/main/java/net/william278/huskchat/config/ConfigProvider.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -195,24 +195,11 @@ default void loadLocales() {
195195

196196
default void loadUserCache() {
197197
final Path cacheFile = getConfigDirectory().resolve("user_cache.yml");
198-
updateOldCache(cacheFile);
199198
setUserCache(cacheFile.toFile().exists()
200199
? YamlConfigurations.load(cacheFile, UserCache.Editor.class)
201200
: new UserCache.Editor());
202201
}
203202

204-
// Old config migration (v2.x)
205-
private void updateOldCache(@NotNull Path newFile) {
206-
final Path oldCache = getConfigDirectory().resolve("spies.yml");
207-
if (oldCache.toFile().exists()) {
208-
try {
209-
Files.move(oldCache, newFile);
210-
} catch (Throwable e) {
211-
getPlugin().log(Level.SEVERE, "An error occurred moving the old cache file", e);
212-
}
213-
}
214-
}
215-
216203
default void editUserCache(@NotNull Consumer<UserCache.Editor> userCache) {
217204
userCache.accept((UserCache.Editor) getUserCache());
218205
YamlConfigurations.save(

common/src/main/java/net/william278/huskchat/filter/ChatFilter.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
package net.william278.huskchat.filter;
2121

2222
import de.exlll.configlib.Configuration;
23+
import de.exlll.configlib.Polymorphic;
24+
import de.exlll.configlib.PolymorphicTypes;
2325
import lombok.*;
2426
import net.william278.huskchat.user.OnlineUser;
2527
import org.jetbrains.annotations.NotNull;
@@ -66,6 +68,16 @@ public abstract class ChatFilter {
6668
@SuppressWarnings("FieldMayBeFinal")
6769
@Getter
6870
@Configuration
71+
@Polymorphic
72+
@PolymorphicTypes({
73+
@PolymorphicTypes.Type(type = FilterSettings.class, alias = "filter"),
74+
@PolymorphicTypes.Type(type = CapsFilter.CapsFilterSettings.class, alias = "caps"),
75+
@PolymorphicTypes.Type(type = ProfanityFilterer.ProfanityFilterSettings.class, alias = "profanity"),
76+
@PolymorphicTypes.Type(type = SpamFilter.SpamFilterSettings.class, alias = "spam"),
77+
@PolymorphicTypes.Type(type = RepeatFilter.RepeatFilterSettings.class, alias = "repeat"),
78+
@PolymorphicTypes.Type(type = RegexFilter.RegexFilterSettings.class, alias = "regex"),
79+
@PolymorphicTypes.Type(type = EmojiReplacer.EmojiReplacerSettings.class, alias = "emoji"),
80+
})
6981
@NoArgsConstructor(access = AccessLevel.PACKAGE)
7082
public static class FilterSettings {
7183
protected boolean enabled = true;

docs/Config-Files.md

Lines changed: 56 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -221,55 +221,90 @@ channels:
221221
# ┗╸ Channels Help: https://william278.net/docs/huskchat/filters-and-replacers/
222222

223223
filters:
224-
REPEAT:
224+
CAPS:
225+
type: caps
225226
enabled: true
226227
channels:
227-
- global
228-
- local
228+
- global
229+
- local
229230
private_messages: true
230231
broadcast_messages: false
232+
max_caps_percentage: 0.4
231233
ADVERTISING:
234+
type: filter
232235
enabled: true
233236
channels:
234-
- global
235-
- local
237+
- global
238+
- local
236239
private_messages: true
237240
broadcast_messages: false
238-
CAPS:
241+
ASCII:
242+
type: filter
239243
enabled: true
240244
channels:
241-
- global
242-
- local
245+
- global
246+
- local
243247
private_messages: true
244248
broadcast_messages: false
245-
SPAM:
246-
enabled: true
249+
PROFANITY:
250+
type: profanity
251+
enabled: false
247252
channels:
248-
- global
249-
- local
253+
- global
254+
- local
250255
private_messages: true
251256
broadcast_messages: false
252-
ASCII:
257+
library_path: ''
258+
mode: AUTOMATIC
259+
tolerance: 0.78
260+
REGEX:
261+
type: regex
262+
enabled: false
263+
channels:
264+
- global
265+
- local
266+
private_messages: true
267+
broadcast_messages: false
268+
patterns: []
269+
REPEAT:
270+
type: repeat
253271
enabled: true
254272
channels:
255-
- global
256-
- local
273+
- global
274+
- local
257275
private_messages: true
258276
broadcast_messages: false
259-
PROFANITY:
260-
enabled: false
277+
previous_messages_to_check: 5
278+
SPAM:
279+
type: spam
280+
enabled: true
261281
channels:
262-
- global
263-
- local
282+
- global
283+
- local
264284
private_messages: true
265285
broadcast_messages: false
286+
period_seconds: 4
287+
messages_per_period: 3
266288
replacers:
267289
EMOJI:
290+
type: emoji
268291
enabled: true
269292
channels:
270-
- global
271-
- local
293+
- global
294+
- local
272295
private_messages: true
273296
broadcast_messages: false
297+
case_insensitive: false
298+
emoji:
299+
':heart:':
300+
':smile:':
301+
:-(:
302+
:-):
303+
<3:
304+
':frown:':
305+
':star:':
306+
':fire:': 🔥
307+
:(:
308+
:):
274309
```
275310
</details>

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ org.gradle.parallel=true
44
org.gradle.daemon=true
55
javaVersion=17
66

7-
plugin_version=3.0.2
7+
plugin_version=3.0.3
88
plugin_archive=huskchat
99
plugin_description=A simple & customizable no-frills Minecraft chat system
1010

0 commit comments

Comments
 (0)