Skip to content

Commit d6da4d1

Browse files
committed
made a separate method for async form sending
1 parent 7c5b538 commit d6da4d1

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

src/main/java/ru/contentforge/formconstructor/FormConstructor.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import cn.nukkit.event.player.PlayerFormRespondedEvent;
77
import cn.nukkit.plugin.PluginBase;
88
import ru.contentforge.formconstructor.form.Form;
9-
import ru.contentforge.formconstructor.task.FormHandlingAsyncTask;
9+
import ru.contentforge.formconstructor.task.FormHandlingTask;
1010

1111
public class FormConstructor extends PluginBase implements Listener {
1212

@@ -19,11 +19,15 @@ public void onEnable() {
1919
void onFormResponded(PlayerFormRespondedEvent event){
2020
if(!(event.getWindow() instanceof Form)) return;
2121

22-
getServer().getScheduler().scheduleAsyncTask(this, new FormHandlingAsyncTask(
22+
Form form = (Form) event.getWindow();
23+
FormHandlingTask handler = new FormHandlingTask(
2324
event.getResponse(),
2425
(Form) event.getWindow(),
2526
event.getPlayer()
26-
));
27+
);
28+
29+
if(form.isAsync()) getServer().getScheduler().scheduleAsyncTask(this, handler);
30+
else handler.onRun();
2731
}
2832

2933
}

src/main/java/ru/contentforge/formconstructor/form/Form.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,19 @@
22

33
import cn.nukkit.Player;
44
import cn.nukkit.form.window.FormWindow;
5+
import lombok.Getter;
56

67
abstract public class Form extends FormWindow {
78

9+
@Getter protected transient boolean async = false;
10+
811
public void send(Player player){
12+
async = false;
13+
player.showFormWindow(this);
14+
}
15+
16+
public void sendAsync(Player player){
17+
async = true;
918
player.showFormWindow(this);
1019
}
1120

src/main/java/ru/contentforge/formconstructor/task/FormHandlingAsyncTask.java renamed to src/main/java/ru/contentforge/formconstructor/task/FormHandlingTask.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
import ru.contentforge.formconstructor.form.response.ModalFormResponse;
1111
import ru.contentforge.formconstructor.form.response.SimpleFormResponse;
1212

13-
public class FormHandlingAsyncTask extends AsyncTask {
13+
public class FormHandlingTask extends AsyncTask {
1414

1515
private final FormResponse response;
1616
private final Form form;
1717
private final Player player;
1818

19-
public FormHandlingAsyncTask(FormResponse response, Form form, Player player){
19+
public FormHandlingTask(FormResponse response, Form form, Player player){
2020
this.response = response;
2121
this.form = form;
2222
this.player = player;

src/main/resourses/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: FormConstructor
22
author: qPexLegendary
3-
version: 1.1.2
3+
version: 1.1.3
44
description: "Library for easy creating and handling of forms"
55
api: 1.0.9
66
main: ru.contentforge.formconstructor.FormConstructor

0 commit comments

Comments
 (0)