Skip to content
This repository was archived by the owner on Jan 31, 2022. It is now read-only.

Commit 930bb56

Browse files
committed
Рефакторинг
Signed-off-by: Андрей <terentev.andrey.2002@gmail.com>
1 parent b4b65f0 commit 930bb56

10 files changed

Lines changed: 96 additions & 18 deletions

File tree

src/main/java/ru/nukkitx/events/EventListener.java

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,17 @@
1414
import cn.nukkit.form.window.FormWindowCustom;
1515
import cn.nukkit.form.window.FormWindowModal;
1616
import cn.nukkit.form.window.FormWindowSimple;
17+
import ru.nukkitx.forms.CustomFormResponse;
1718
import ru.nukkitx.forms.Form;
19+
import ru.nukkitx.forms.ModalFormResponse;
20+
import ru.nukkitx.forms.SimpleFormResponse;
1821

1922
import java.util.ArrayList;
23+
import java.util.List;
2024

2125
public class EventListener implements Listener {
2226

27+
@SuppressWarnings("deprecation")
2328
@EventHandler(priority = EventPriority.HIGH)
2429
public void formResponded(PlayerFormRespondedEvent event) {
2530
Player player = event.getPlayer();
@@ -35,27 +40,49 @@ public void formResponded(PlayerFormRespondedEvent event) {
3540
Object data;
3641

3742
if (event.wasClosed()) {
38-
data = null;
39-
temp.handle(player, window, data, Form.paramsForm.get(player.getName()));
43+
if(temp instanceof CustomFormResponse){
44+
((CustomFormResponse) temp).handle(player, window, null);
45+
46+
}else if(temp instanceof ModalFormResponse) {
47+
((ModalFormResponse) temp).handle(player, window, -1);
48+
49+
}else if(temp instanceof SimpleFormResponse){
50+
((SimpleFormResponse) temp).handle(player, window, -1);
51+
52+
}else temp.handle(player, window, null, Form.paramsForm.get(player.getName()));
53+
4054
return;
4155
}
4256

4357
if (window instanceof FormWindowSimple) {
4458
data = ((FormResponseSimple) response).getClickedButtonId();
45-
temp.handle(player, window, data, Form.paramsForm.get(player.getName()));
59+
60+
if(temp instanceof SimpleFormResponse)
61+
((SimpleFormResponse) temp).handle(player, window, (int) data);
62+
else
63+
temp.handle(player, window, data, Form.paramsForm.get(player.getName()));
64+
4665
return;
4766
}
4867

4968
if (window instanceof FormWindowCustom) {
5069
data = new ArrayList<>(((FormResponseCustom) response).getResponses().values());
51-
temp.handle(player, window, data, Form.paramsForm.get(player.getName()));
70+
71+
if(temp instanceof CustomFormResponse)
72+
((CustomFormResponse) temp).handle(player, window, (List<Object>)data);
73+
else
74+
temp.handle(player, window, data, Form.paramsForm.get(player.getName()));
75+
5276
return;
5377
}
5478

5579
if (window instanceof FormWindowModal) {
5680
data = ((FormResponseModal) response).getClickedButtonId();
57-
temp.handle(player, window, data, Form.paramsForm.get(player.getName()));
58-
return;
81+
82+
if(temp instanceof ModalFormResponse)
83+
((ModalFormResponse) temp).handle(player, window, (int) data);
84+
else
85+
temp.handle(player, window, data, Form.paramsForm.get(player.getName()));
5986
}
6087
}
6188
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ru.nukkitx.forms;
2+
3+
import cn.nukkit.Player;
4+
import cn.nukkit.form.window.FormWindow;
5+
6+
import java.util.List;
7+
8+
public interface CustomFormResponse extends FormResponse {
9+
10+
void handle(Player targetPlayer, FormWindow targetForm, List<Object> data);
11+
12+
}

src/main/java/ru/nukkitx/forms/Form.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,19 @@ public abstract class Form {
1010
public static HashMap<String, HashMap<String, Object>> paramsForm = new HashMap<>();
1111
protected FormWindow form;
1212

13-
public final void send(Player player) {
13+
public void send(Player player) {
1414
player.showFormWindow(form);
1515
}
1616

17-
public final void send(Player player, FormResponse response) {
17+
@Deprecated
18+
public void send(Player player, FormResponse response) {
1819
playersForm.put(player.getName(), response);
1920
paramsForm.put(player.getName(), null);
2021
player.showFormWindow(form);
2122
}
2223

23-
public final void send(Player player, FormResponse response, HashMap<String, Object> params) {
24+
@Deprecated
25+
public void send(Player player, FormResponse response, HashMap<String, Object> params) {
2426
playersForm.put(player.getName(), response);
2527
paramsForm.put(player.getName(), params);
2628
player.showFormWindow(form);

src/main/java/ru/nukkitx/forms/FormResponse.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,6 @@
77

88
public interface FormResponse {
99

10-
/*
11-
*
12-
* player - Игрок.
13-
* window - Форма, полученного результата.
14-
* data - Результат формы (является null, если форма была закрыта)
15-
*
16-
*/
17-
10+
@Deprecated
1811
void handle(Player player, FormWindow window, Object data, HashMap<String, Object> params);
1912
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package ru.nukkitx.forms;
2+
3+
import cn.nukkit.Player;
4+
import cn.nukkit.form.window.FormWindow;
5+
6+
public interface ModalFormResponse extends FormResponse {
7+
8+
void handle(Player targetPlayer, FormWindow targetForm, int data);
9+
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package ru.nukkitx.forms;
2+
3+
import cn.nukkit.Player;
4+
import cn.nukkit.form.window.FormWindow;
5+
6+
public interface SimpleFormResponse extends FormResponse {
7+
8+
void handle(Player targetPlayer, FormWindow targetForm, int data);
9+
10+
}

src/main/java/ru/nukkitx/forms/elements/CustomForm.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package ru.nukkitx.forms.elements;
22

3+
import cn.nukkit.Player;
34
import cn.nukkit.form.element.*;
45
import cn.nukkit.form.window.FormWindowCustom;
6+
import ru.nukkitx.forms.CustomFormResponse;
57
import ru.nukkitx.forms.Form;
68

79
import java.util.List;
@@ -20,6 +22,12 @@ public CustomForm(String title) {
2022
form = new FormWindowCustom(title);
2123
}
2224

25+
public void send(Player player, CustomFormResponse response){
26+
playersForm.put(player.getName(), response);
27+
paramsForm.put(player.getName(), null);
28+
player.showFormWindow(form);
29+
}
30+
2331
public CustomForm setTitle(String value) {
2432
((FormWindowCustom) form).setTitle(value);
2533
return this;

src/main/java/ru/nukkitx/forms/elements/ModalForm.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package ru.nukkitx.forms.elements;
22

3+
import cn.nukkit.Player;
34
import cn.nukkit.form.window.FormWindowModal;
45
import ru.nukkitx.forms.Form;
6+
import ru.nukkitx.forms.ModalFormResponse;
57

68
public class ModalForm extends Form {
79

@@ -29,6 +31,12 @@ public ModalForm(String title, String content, String trueButton, String falseBu
2931
form = new FormWindowModal(title, content, trueButton, falseButton);
3032
}
3133

34+
public void send(Player player, ModalFormResponse response){
35+
playersForm.put(player.getName(), response);
36+
paramsForm.put(player.getName(), null);
37+
player.showFormWindow(form);
38+
}
39+
3240
public ModalForm setTitle(String value) {
3341
((FormWindowModal) form).setTitle(value);
3442

src/main/java/ru/nukkitx/forms/elements/SimpleForm.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package ru.nukkitx.forms.elements;
22

3+
import cn.nukkit.Player;
34
import cn.nukkit.form.element.ElementButton;
45
import cn.nukkit.form.element.ElementButtonImageData;
56
import cn.nukkit.form.window.FormWindowSimple;
67
import ru.nukkitx.forms.Form;
8+
import ru.nukkitx.forms.SimpleFormResponse;
79

810
public class SimpleForm extends Form {
911

@@ -23,6 +25,12 @@ public SimpleForm(String title, String content) {
2325
form = new FormWindowSimple(title, content);
2426
}
2527

28+
public void send(Player player, SimpleFormResponse response) {
29+
playersForm.put(player.getName(), response);
30+
paramsForm.put(player.getName(), null);
31+
player.showFormWindow(form);
32+
}
33+
2634
public SimpleForm setTitle(String value) {
2735
((FormWindowSimple) form).setTitle(value);
2836
return this;

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: FormAPI
22
main: ru.nukkitx.FormAPI
33
api: "1.0.9"
4-
version: "1.0"
4+
version: "1.2"
55
author: qPexLegendary
66
load: STARTUP
77
authors:

0 commit comments

Comments
 (0)