Skip to content

Commit

Permalink
made a separate method for async form sending
Browse files Browse the repository at this point in the history
  • Loading branch information
ScarletRedMan committed Jan 31, 2022
1 parent 7c5b538 commit d6da4d1
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import cn.nukkit.event.player.PlayerFormRespondedEvent;
import cn.nukkit.plugin.PluginBase;
import ru.contentforge.formconstructor.form.Form;
import ru.contentforge.formconstructor.task.FormHandlingAsyncTask;
import ru.contentforge.formconstructor.task.FormHandlingTask;

public class FormConstructor extends PluginBase implements Listener {

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

getServer().getScheduler().scheduleAsyncTask(this, new FormHandlingAsyncTask(
Form form = (Form) event.getWindow();
FormHandlingTask handler = new FormHandlingTask(
event.getResponse(),
(Form) event.getWindow(),
event.getPlayer()
));
);

if(form.isAsync()) getServer().getScheduler().scheduleAsyncTask(this, handler);
else handler.onRun();
}

}
9 changes: 9 additions & 0 deletions src/main/java/ru/contentforge/formconstructor/form/Form.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,19 @@

import cn.nukkit.Player;
import cn.nukkit.form.window.FormWindow;
import lombok.Getter;

abstract public class Form extends FormWindow {

@Getter protected transient boolean async = false;

public void send(Player player){
async = false;
player.showFormWindow(this);
}

public void sendAsync(Player player){
async = true;
player.showFormWindow(this);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
import ru.contentforge.formconstructor.form.response.ModalFormResponse;
import ru.contentforge.formconstructor.form.response.SimpleFormResponse;

public class FormHandlingAsyncTask extends AsyncTask {
public class FormHandlingTask extends AsyncTask {

private final FormResponse response;
private final Form form;
private final Player player;

public FormHandlingAsyncTask(FormResponse response, Form form, Player player){
public FormHandlingTask(FormResponse response, Form form, Player player){
this.response = response;
this.form = form;
this.player = player;
Expand Down
2 changes: 1 addition & 1 deletion src/main/resourses/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: FormConstructor
author: qPexLegendary
version: 1.1.2
version: 1.1.3
description: "Library for easy creating and handling of forms"
api: 1.0.9
main: ru.contentforge.formconstructor.FormConstructor

0 comments on commit d6da4d1

Please sign in to comment.