Skip to content

Commit ea36e7f

Browse files
authored
1.0.1: Implement form handlers and add properties to pom.xml (#3)
* Add properties in pom.xml * Use new form handlers instead of event
1 parent 6004adc commit ea36e7f

3 files changed

Lines changed: 16 additions & 32 deletions

File tree

pom.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@
66

77
<groupId>ms.kevi</groupId>
88
<artifactId>plotplugin</artifactId>
9-
<version>1.0.0</version>
9+
<version>1.0.1</version>
10+
11+
<properties>
12+
<maven.compiler.source>17</maven.compiler.source>
13+
<maven.compiler.target>17</maven.compiler.target>
14+
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
15+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
16+
</properties>
1017

1118
<repositories>
1219
<repository>

src/main/java/ms/kevi/plotplugin/command/defaults/TeleportCommand.java

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,70 +17,47 @@
1717
package ms.kevi.plotplugin.command.defaults;
1818

1919
import cn.nukkit.Player;
20-
import cn.nukkit.event.EventHandler;
21-
import cn.nukkit.event.Listener;
22-
import cn.nukkit.event.player.PlayerFormRespondedEvent;
2320
import cn.nukkit.form.element.ElementButton;
24-
import cn.nukkit.form.response.FormResponse;
25-
import cn.nukkit.form.response.FormResponseSimple;
21+
import cn.nukkit.form.handler.FormResponseHandler;
2622
import cn.nukkit.form.window.FormWindowSimple;
2723
import ms.kevi.plotplugin.PlotPlugin;
2824
import ms.kevi.plotplugin.command.PlotCommand;
2925
import ms.kevi.plotplugin.command.SubCommand;
3026
import ms.kevi.plotplugin.lang.TranslationKey;
3127
import ms.kevi.plotplugin.manager.PlotManager;
3228

33-
import java.util.HashMap;
3429
import java.util.Map;
35-
import java.util.function.Consumer;
3630

3731
/**
3832
* @author Kevims KCodeYT
3933
* @version 1.0
4034
*/
4135
public class TeleportCommand extends SubCommand {
4236

43-
private final Map<Player, Map<Integer, Consumer<FormResponse>>> map;
44-
4537
public TeleportCommand(PlotPlugin plugin, PlotCommand parent) {
4638
super(plugin, parent, "teleport", "tp");
4739
this.setPermission("plot.command.admin.teleport");
48-
49-
this.map = new HashMap<>();
50-
51-
this.plugin.getServer().getPluginManager().registerEvents(new Listener() {
52-
@EventHandler
53-
public void onResponded(PlayerFormRespondedEvent event) {
54-
final Map<Integer, Consumer<FormResponse>> map;
55-
if((map = TeleportCommand.this.map.get(event.getPlayer())) != null) {
56-
final Consumer<FormResponse> consumer = map.get(event.getFormID());
57-
if(consumer != null) consumer.accept(event.getResponse());
58-
}
59-
}
60-
}, this.plugin);
6140
}
6241

6342
@Override
6443
public boolean execute(Player player, String[] args) {
65-
Map<Integer, Consumer<FormResponse>> map;
66-
if((map = this.map.get(player)) == null)
67-
this.map.put(player, map = new HashMap<>());
68-
6944
final Map<String, PlotManager> plotManagers = this.plugin.getPlotManagerMap();
7045
final FormWindowSimple window = new FormWindowSimple(this.translate(player, TranslationKey.TELEPORT_FORM_TITLE), "");
7146

7247
for(String levelName : plotManagers.keySet())
7348
window.addButton(new ElementButton(levelName));
7449

75-
map.put(player.showFormWindow(window), response -> {
76-
if(response instanceof FormResponseSimple) {
77-
final PlotManager plotManager = plotManagers.get(((FormResponseSimple) response).getClickedButton().getText());
50+
window.addHandler(FormResponseHandler.withoutPlayer(ignored -> {
51+
if(!window.wasClosed()) {
52+
final PlotManager plotManager = plotManagers.get(window.getResponse().getClickedButton().getText());
7853
if(plotManager == null) return;
7954

8055
player.teleport(plotManager.getLevel().getSpawnLocation());
8156
player.sendMessage(this.translate(player, TranslationKey.TELEPORT_SUCCESS, plotManager.getLevel().getFolderName()));
8257
}
83-
});
58+
}));
59+
60+
player.showFormWindow(window);
8461
return false;
8562
}
8663

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: Plots
2-
version: "1.0.0"
2+
version: "1.0.1"
33
api: [ "1.0.13" ]
44
author: Kevims
55
main: ms.kevi.plotplugin.PlotPlugin

0 commit comments

Comments
 (0)