Skip to content

Commit e74298f

Browse files
committed
persistent example update
1 parent dbcaeeb commit e74298f

6 files changed

Lines changed: 119 additions & 6 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
folia_version=1.21.11-R0.1-SNAPSHOT
2-
sapi_version=1.2.0
2+
sapi_version=1.2.4
33
version=1

src/main/java/com/unfamoussoul/test/Test.java

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,42 @@
11
package com.unfamoussoul.test;
22

33
import com.unfamoussoul.sapi.SAPI;
4+
import com.unfamoussoul.sapi.api.serialize.Persistent;
45
import com.unfamoussoul.sapi.module.SAPIModule;
6+
import com.unfamoussoul.test.command.RememberCommand;
7+
import com.unfamoussoul.test.command.RemindCommand;
58
import com.unfamoussoul.test.command.TestCommand;
69
import com.unfamoussoul.test.config.Config;
710
import com.unfamoussoul.test.listener.EventListener;
811

12+
import java.util.*;
13+
914
@SuppressWarnings("unused")
1015
public class Test extends SAPIModule {
1116

1217
private Config config;
1318

19+
@Persistent(value = "player_phrases")
20+
private final Map<UUID, List<String>> playerPhrases = new HashMap<>();
21+
1422
public Test(SAPI plugin) {
1523
super(plugin);
1624
}
1725

1826
@Override
1927
public void onEnable() {
20-
setVersion(1);
21-
setKey("key");
22-
2328
config = new Config(getConfigHandler("config.yml"));
2429
loadLocale(plugin.getDefaultLanguage(), "en_US", "ru_RU");
2530

31+
for (String l : getLocale().getTranslations().keySet()) {
32+
getPlugin().getLogger().severe(l);
33+
}
34+
35+
initPersistentFields();
36+
2637
addCommand(new TestCommand());
38+
addCommand(new RememberCommand(this));
39+
addCommand(new RemindCommand(this));
2740
addListener(new EventListener(this));
2841
}
2942

@@ -32,6 +45,14 @@ public void onDisable() {
3245
plugin.getLogger().warning("test+++");
3346
}
3447

48+
public void addPhrase(UUID playerId, String phrase) {
49+
playerPhrases.computeIfAbsent(playerId, k -> new ArrayList<>()).add(phrase);
50+
}
51+
52+
public List<String> getPhrases(UUID playerId) {
53+
return playerPhrases.getOrDefault(playerId, Collections.emptyList());
54+
}
55+
3556
public Config getConfig() {
3657
return config;
3758
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.unfamoussoul.test.command;
2+
3+
import com.mojang.brigadier.arguments.StringArgumentType;
4+
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
5+
import com.unfamoussoul.sapi.api.command.DynamicCommand;
6+
import com.unfamoussoul.test.Test;
7+
import io.papermc.paper.command.brigadier.CommandSourceStack;
8+
import io.papermc.paper.command.brigadier.Commands;
9+
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
10+
import org.bukkit.entity.Player;
11+
12+
public class RememberCommand extends DynamicCommand {
13+
14+
private final Test module;
15+
16+
public RememberCommand(Test module) {
17+
super("remember");
18+
this.module = module;
19+
register(remember());
20+
}
21+
22+
private LiteralArgumentBuilder<CommandSourceStack> remember() {
23+
return Commands.literal("remember")
24+
.then(Commands.argument("text", StringArgumentType.greedyString())
25+
.executes(context -> {
26+
if (!(context.getSource().getSender() instanceof Player player)) return 1;
27+
28+
String text = StringArgumentType.getString(context, "text");
29+
module.addPhrase(player.getUniqueId(), text);
30+
player.sendMessage(module.getLocale().message(player, "test.remember.success", Placeholder.unparsed("0", String.valueOf(text.length()))));
31+
32+
return 1;
33+
}));
34+
}
35+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.unfamoussoul.test.command;
2+
3+
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
4+
import com.unfamoussoul.sapi.api.command.DynamicCommand;
5+
import com.unfamoussoul.test.Test;
6+
import io.papermc.paper.command.brigadier.CommandSourceStack;
7+
import io.papermc.paper.command.brigadier.Commands;
8+
import net.kyori.adventure.text.Component;
9+
import net.kyori.adventure.text.ComponentBuilder;
10+
import net.kyori.adventure.text.TextComponent;
11+
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
12+
import org.bukkit.entity.Player;
13+
14+
import java.util.List;
15+
import java.util.UUID;
16+
17+
public class RemindCommand extends DynamicCommand {
18+
19+
private final Test module;
20+
21+
public RemindCommand(Test module) {
22+
super("remind");
23+
this.module = module;
24+
register(remind());
25+
}
26+
27+
private LiteralArgumentBuilder<CommandSourceStack> remind() {
28+
return Commands.literal("remind")
29+
.executes(context -> {
30+
if (!(context.getSource().getSender() instanceof Player player)) return 1;
31+
32+
UUID playerId = player.getUniqueId();
33+
List<String> phrases = module.getPhrases(playerId);
34+
35+
if (phrases.isEmpty()) {
36+
player.sendMessage(module.getLocale().message(player, "test.remind.empty"));
37+
return 1;
38+
}
39+
40+
ComponentBuilder<TextComponent, TextComponent.Builder> componentBuilder = Component.text();
41+
for (String phrase : phrases) {
42+
componentBuilder.append(module.getLocale().message(player, "test.remind.line", Placeholder.parsed("0", phrase)));
43+
}
44+
45+
player.sendMessage(module.getLocale().message(player, "test.remind.headers", Placeholder.component("0", componentBuilder.build())));
46+
return 1;
47+
});
48+
}
49+
}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
{
2-
"test.welcome": "<rainbow><0>, welcome to the CUM zone. Only CUM inside anime girls"
2+
"test.welcome": "<rainbow><0>, welcome to the CUM zone. Only CUM inside anime girls",
3+
"test.remind.empty": "I can't remember a thing :(",
4+
"test.remind.header": "I remembered you said this: <0>",
5+
"test.remind.line": "\n - \"<0>\"",
6+
"test.remember.success": "Remembered <0> symbols!"
37
}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
{
2-
"test.welcome": "<rainbow>Добро пожаловать на сервер Шизофрения, <0>"
2+
"test.welcome": "<rainbow>Добро пожаловать на сервер Шизофрения, <0>",
3+
"test.remind.empty": "Я ничего не запомнил :(",
4+
"test.remind.headers": "Я помню, что вы сказали: <0>",
5+
"test.remind.line": "\n - \"<0>\"",
6+
"test.remember.success": "Запомнил <0> символов!"
37
}

0 commit comments

Comments
 (0)