Skip to content

Commit d71246a

Browse files
committed
Thread-safe form handling
1 parent 40b80f9 commit d71246a

File tree

1 file changed

+23
-21
lines changed

1 file changed

+23
-21
lines changed

src/main/java/ru/contentforge/formconstructor/task/FormHandlingTask.java

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,27 +24,29 @@ public FormHandlingTask(FormResponse response, Form form, Player player){
2424

2525
@Override
2626
public void onRun() {
27-
if(response instanceof ModalFormResponse){
28-
((ModalFormResponse) response).handle(player);
29-
return;
27+
synchronized (form) {
28+
if (response instanceof ModalFormResponse) {
29+
((ModalFormResponse) response).handle(player);
30+
return;
31+
}
32+
33+
if (response == null && form instanceof CloseableForm) {
34+
OnCloseFormHandler noneHandler = ((CloseableForm) form).getOnCloseHandler();
35+
if (noneHandler != null) noneHandler.handle(player);
36+
return;
37+
}
38+
39+
if (response instanceof SimpleFormResponse) {
40+
((SimpleFormResponse) form.getResponse()).handle(player);
41+
return;
42+
}
43+
44+
if (response instanceof CustomFormResponse) {
45+
((CustomFormResponse) form.getResponse()).handle(player);
46+
return;
47+
}
48+
49+
//...
3050
}
31-
32-
if(response == null && form instanceof CloseableForm){
33-
OnCloseFormHandler noneHandler = ((CloseableForm) form).getOnCloseHandler();
34-
if(noneHandler != null) noneHandler.handle(player);
35-
return;
36-
}
37-
38-
if(response instanceof SimpleFormResponse){
39-
((SimpleFormResponse) form.getResponse()).handle(player);
40-
return;
41-
}
42-
43-
if(response instanceof CustomFormResponse){
44-
((CustomFormResponse) form.getResponse()).handle(player);
45-
return;
46-
}
47-
48-
//...
4951
}
5052
}

0 commit comments

Comments
 (0)