-
-
Notifications
You must be signed in to change notification settings - Fork 343
/
Copy pathOrder.java
122 lines (111 loc) · 3.8 KB
/
Order.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*
* This file is part of SpongeAPI, licensed under the MIT License (MIT).
*
* Copyright (c) SpongePowered <https://www.spongepowered.org>
* Copyright (c) contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package org.spongepowered.api.event;
/**
* Order that {@link Listener}d methods may be registered at.
*
* <p>Event handlers are called the order given in the following table.</p>
*
* <table>
* <caption>Order Recommendations</caption>
* <tr><td>Order</td>
* <td>Recommendation</td></tr>
* <tr><td>PRE</td>
* <td>Initialisation and registration actions</td></tr>
* <tr><td>AFTER_PRE</td>
* <td>Immediate responses to actions in PRE</td></tr>
* <tr><td>FIRST</td>
* <td>
* Cancellation by protection plugins for informational purposes
* </td>
* </tr>
* <tr><td>EARLY</td>
* <td>Standard actions that should happen before other plugins react to
* the event</td>
* </tr>
* <tr><td>DEFAULT</td>
* <td>The default action order</td></tr>
* <tr><td>LATE</td>
* <td>Standard actions that should happen after other plugins react to
* the event</td>
* </tr>
* <tr><td>LAST</td>
* <td>Final cancellation by protection plugins</td></tr>
* <tr><td>BEFORE_POST</td>
* <td>Actions that need to respond to cancelled events before POST</td>
* </tr>
* <tr><td>POST</td>
* <td>Actions that need to react to the final and stable effects of
* event</td>
* </tr>
* </table>
*/
public enum Order {
/**
* The order point of PRE handles setting up things that need to be done
* before other things are handled.
*/
PRE,
/**
* The order point of AFTER_PRE handles things that need to be done after
* PRE.
*/
AFTER_PRE,
/**
* The order point of FIRST handles cancellation by protection plugins for
* informational responses.
*/
FIRST,
/**
* The order point of EARLY handles standard actions that need to be done
* before other plugins.
*/
EARLY,
/**
* The order point of DEFAULT handles just standard event handlings, you
* should use this unless you know you need otherwise.
*/
DEFAULT,
/**
* The order point of LATE handles standard actions that need to be done
* after other plugins.
*/
LATE,
/**
* The order point of LAST handles last minute cancellations by protection
* plugins.
*/
LAST,
/**
* The order point of BEFORE_POST handles preparation for things needing
* to be done in post.
*/
BEFORE_POST,
/**
* The order point of POST handles last minute things and monitoring
* of events for rollback or logging.
*/
POST
}