Skip to content

Commit 7d504c2

Browse files
committed
4.47.1
1 parent 18ec446 commit 7d504c2

File tree

12 files changed

+146
-24
lines changed

12 files changed

+146
-24
lines changed

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,3 @@ dependency-reduced-pom.xml
4040
.recommenders
4141
.idea/
4242
target/
43-
/src/main/java/ce/ajneb97/api/ExampleAction.java
44-
/src/main/java/ce/ajneb97/api/ConditionalEventsAction.java
45-
/src/main/java/ce/ajneb97/managers/APIManager.java

src/main/java/ce/ajneb97/ConditionalEvents.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public class ConditionalEvents extends JavaPlugin {
4242
private VerifyManager verifyManager;
4343
private UpdateCheckerManager updateCheckerManager;
4444
private CommandRegisterManager commandRegisterManager;
45+
private APIManager apiManager;
4546

4647
private PlayerDataSaveTask playerDataSaveTask;
4748

@@ -57,6 +58,7 @@ public void onEnable(){
5758
this.playerManager = new PlayerManager(this);
5859
this.configsManager = new ConfigsManager(this);
5960
this.configsManager.configure();
61+
this.apiManager = new APIManager(this);
6062
registerEvents();
6163
registerCommands();
6264

@@ -66,6 +68,8 @@ public void onEnable(){
6668
this.commandRegisterManager = new CommandRegisterManager(this);
6769
commandRegisterManager.registerCommands();
6870

71+
72+
6973
reloadPlayerDataSaveTask();
7074

7175
ConditionalEventsAPI api = new ConditionalEventsAPI(this);
@@ -188,6 +192,10 @@ public CommandRegisterManager getCommandRegisterManager() {
188192
return commandRegisterManager;
189193
}
190194

195+
public APIManager getApiManager() {
196+
return apiManager;
197+
}
198+
191199
public void updateMessage(UpdateCheckerResult result){
192200
if(!result.isError()){
193201
String latestVersion = result.getLatestVersion();

src/main/java/ce/ajneb97/api/ConditionalEventsAPI.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import ce.ajneb97.model.CEEvent;
66
import ce.ajneb97.utils.TimeUtils;
77
import org.bukkit.entity.Player;
8+
import org.bukkit.plugin.java.JavaPlugin;
89

910
public class ConditionalEventsAPI {
1011

@@ -46,4 +47,12 @@ public static String getOneTimeReady(Player player, String event){
4647
return "no";
4748
}
4849
}
50+
51+
public static void registerApiActions(JavaPlugin p, ConditionalEventsAction... actions){
52+
plugin.getApiManager().registerApiActions(p,actions);
53+
}
54+
55+
public static void unregisterApiActions(JavaPlugin p){
56+
plugin.getApiManager().unregisterApiActions(p);
57+
}
4958
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package ce.ajneb97.api;
2+
3+
import org.bukkit.entity.Player;
4+
import org.bukkit.plugin.java.JavaPlugin;
5+
6+
public abstract class ConditionalEventsAction {
7+
8+
protected String name;
9+
protected JavaPlugin plugin;
10+
11+
public ConditionalEventsAction(String name){
12+
this.name = name;
13+
}
14+
public abstract void execute(Player player, String actionLine);
15+
16+
public String getName() {
17+
return name;
18+
}
19+
20+
public JavaPlugin getPlugin() {
21+
return plugin;
22+
}
23+
24+
public void setPlugin(JavaPlugin plugin) {
25+
this.plugin = plugin;
26+
}
27+
}

src/main/java/ce/ajneb97/configs/ConfigsManager.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,21 +116,29 @@ public void configureEvents(){
116116

117117
String actionTypeText = null;
118118
ActionType actionType = null;
119+
String actionApiType = null;
119120
try{
120121
if(action.equalsIgnoreCase("close_inventory")){
121122
actionTypeText = action;
122123
}else{
123124
actionTypeText = action.substring(0,action.indexOf(":"));
124125
}
125126

126-
actionType = ActionType.valueOf(actionTypeText.toUpperCase());
127+
//Check API actions
128+
if(plugin.getApiManager().getApiAction(actionTypeText) != null){
129+
actionType = ActionType.API;
130+
actionApiType = actionTypeText;
131+
}else{
132+
actionType = ActionType.valueOf(actionTypeText.toUpperCase());
133+
}
127134
}catch(Exception e){
128135
continue;
129136
}
130137

131138
String actionLine = action.replace(actionTypeText+": ","");
132139

133140
CEAction ceAction = new CEAction(actionType,actionLine,targeter);
141+
ceAction.setApiType(actionApiType);
134142
ceActions.add(ceAction);
135143
}
136144

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package ce.ajneb97.managers;
2+
3+
import ce.ajneb97.ConditionalEvents;
4+
import ce.ajneb97.api.ConditionalEventsAction;
5+
import org.bukkit.Bukkit;
6+
import org.bukkit.entity.Player;
7+
import org.bukkit.plugin.java.JavaPlugin;
8+
9+
import java.util.ArrayList;
10+
11+
public class APIManager {
12+
13+
private ConditionalEvents plugin;
14+
private ArrayList<ConditionalEventsAction> apiActions;
15+
public APIManager(ConditionalEvents plugin){
16+
this.plugin = plugin;
17+
apiActions = new ArrayList<>();
18+
}
19+
20+
public void registerApiActions(JavaPlugin plugin, ConditionalEventsAction... actions){
21+
for(ConditionalEventsAction a : actions){
22+
a.setPlugin(plugin);
23+
Bukkit.getConsoleSender().sendMessage(ConditionalEvents.prefix+
24+
MessagesManager.getColoredMessage(" &7Custom API Action &a"+a.getName()+" &7registered from plugin &e"+a.getPlugin().getName()));
25+
apiActions.add(a);
26+
}
27+
this.plugin.getConfigsManager().configureEvents();
28+
this.plugin.getVerifyManager().verifyEvents();
29+
}
30+
31+
public void unregisterApiActions(JavaPlugin plugin){
32+
apiActions.removeIf(a -> a.getPlugin() == plugin);
33+
this.plugin.getConfigsManager().configureEvents();
34+
this.plugin.getVerifyManager().verifyEvents();
35+
}
36+
37+
public ConditionalEventsAction getApiAction(String actionName){
38+
for(ConditionalEventsAction action : apiActions){
39+
if(action.getName().equals(actionName)){
40+
return action;
41+
}
42+
}
43+
return null;
44+
}
45+
46+
public void executeAction(String actionName, Player player, String actionLine){
47+
ConditionalEventsAction action = getApiAction(actionName);
48+
if(action != null){
49+
action.execute(player,actionLine);
50+
}
51+
}
52+
}

src/main/java/ce/ajneb97/managers/VerifyManager.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,19 @@ public void verifyEvents() {
9595
}
9696

9797
try{
98-
String actionTypeText = action.substring(0,action.indexOf(":"));
99-
ActionType.valueOf(actionTypeText.toUpperCase());
98+
String actionTypeText;
99+
if(action.equalsIgnoreCase("close_inventory")){
100+
actionTypeText = action;
101+
}else{
102+
actionTypeText = action.substring(0,action.indexOf(":"));
103+
}
104+
105+
//Check API actions
106+
if(plugin.getApiManager().getApiAction(actionTypeText) != null){
107+
continue;
108+
}else{
109+
ActionType.valueOf(actionTypeText.toUpperCase());
110+
}
100111
}catch(Exception e){
101112
errors.add(new CEErrorAction(key, actionOriginal, (i+1), groupName));
102113
}

src/main/java/ce/ajneb97/model/actions/ActionType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,6 @@ public enum ActionType {
4646
SET_EVENT_XP,
4747
DISCORDSRV_EMBED,
4848
CALL_EVENT,
49-
EXECUTE_ACTION_GROUP
49+
EXECUTE_ACTION_GROUP,
50+
API
5051
}

src/main/java/ce/ajneb97/model/actions/CEAction.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
package ce.ajneb97.model.actions;
22

3-
import ce.ajneb97.utils.ActionUtils;
4-
import org.bukkit.entity.Player;
5-
6-
import javax.swing.*;
7-
83
public class CEAction {
94

105
private ActionType type;
6+
private String apiType; //Just for API events.
117
private ActionTargeter targeter;
128
private String actionLine;
139

@@ -41,5 +37,11 @@ public void setTargeter(ActionTargeter targeter) {
4137
this.targeter = targeter;
4238
}
4339

40+
public String getApiType() {
41+
return apiType;
42+
}
4443

44+
public void setApiType(String apiType) {
45+
this.apiType = apiType;
46+
}
4547
}

src/main/java/ce/ajneb97/model/internal/ExecutedEvent.java

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ private void executeActionsFinal(){
126126
for(int i=currentActionPos;i<actions.size();i++){
127127
CEAction action = actions.get(i);
128128
ActionType actionType = action.getType();
129+
String apiType = action.getApiType();
129130

130131
//Replace variables
131132
String actionLine = action.getActionLine();
@@ -143,22 +144,22 @@ private void executeActionsFinal(){
143144

144145
if(targeterType.equals(ActionTargeterType.TO_ALL)) {
145146
for(Player globalPlayer : Bukkit.getOnlinePlayers()) {
146-
executeActionsFromToTarget(variablesProperties,globalPlayer,actionLine,actionType,isDebugActions,targeter,debugManager);
147+
executeActionsFromToTarget(variablesProperties,globalPlayer,actionLine,actionType,apiType,isDebugActions,targeter,debugManager);
147148
}
148149
}else if(targeterType.equals(ActionTargeterType.TO_TARGET)){
149-
executeActionsFromToTarget(variablesProperties,target,actionLine,actionType,isDebugActions,targeter,debugManager);
150+
executeActionsFromToTarget(variablesProperties,target,actionLine,actionType,apiType,isDebugActions,targeter,debugManager);
150151
}else if(targeterType.equals(ActionTargeterType.TO_WORLD)){
151152
String world = parametersLine;
152153
for(Player globalPlayer : Bukkit.getOnlinePlayers()) {
153154
if(globalPlayer.getWorld().getName().equals(world)){
154-
executeActionsFromToTarget(variablesProperties,globalPlayer,actionLine,actionType,isDebugActions,targeter,debugManager);
155+
executeActionsFromToTarget(variablesProperties,globalPlayer,actionLine,actionType,apiType,isDebugActions,targeter,debugManager);
155156
}
156157
}
157158
}else if(targeterType.equals(ActionTargeterType.TO_PLAYER)){
158159
String playerName = parametersLine;
159160
Player onlinePlayer = Bukkit.getPlayer(playerName);
160161
if(onlinePlayer != null){
161-
executeActionsFromToTarget(variablesProperties,onlinePlayer,actionLine,actionType,isDebugActions,targeter,debugManager);
162+
executeActionsFromToTarget(variablesProperties,onlinePlayer,actionLine,actionType,apiType,isDebugActions,targeter,debugManager);
162163
}
163164
}else if(targeterType.equals(ActionTargeterType.TO_RANGE)){
164165
String[] sep = parametersLine.split(";");
@@ -177,7 +178,7 @@ private void executeActionsFinal(){
177178
}
178179
}
179180
for(Player globalPlayer : globalPlayers){
180-
executeActionsFromToTarget(variablesProperties,globalPlayer,actionLine,actionType,isDebugActions,targeter,debugManager);
181+
executeActionsFromToTarget(variablesProperties,globalPlayer,actionLine,actionType,apiType,isDebugActions,targeter,debugManager);
181182
}
182183
}else if(targeterType.equals(ActionTargeterType.TO_CONDITION)) {
183184
String toConditionGroup = parametersLine;
@@ -197,7 +198,7 @@ private void executeActionsFinal(){
197198
}
198199
}
199200
for(Player globalPlayer : players){
200-
executeActionsFromToTarget(variablesProperties,globalPlayer,actionLine,actionType,isDebugActions,targeter,debugManager);
201+
executeActionsFromToTarget(variablesProperties,globalPlayer,actionLine,actionType,apiType,isDebugActions,targeter,debugManager);
201202
}
202203
}
203204
else {
@@ -206,7 +207,7 @@ private void executeActionsFinal(){
206207
if(isDebugActions){
207208
debugManager.sendActionMessage(event.getName(), actionLine, player, actionType, targeter);
208209
}
209-
executeAction(player,actionType,actionLine);
210+
executeAction(player,actionType,apiType,actionLine);
210211
}
211212

212213
if(onWait){
@@ -217,17 +218,17 @@ private void executeActionsFinal(){
217218
}
218219

219220
private void executeActionsFromToTarget(VariablesProperties variablesProperties,Player player,String actionLine,ActionType actionType,
220-
boolean isDebugActions,ActionTargeter targeter,DebugManager debugManager){
221+
String apiType,boolean isDebugActions,ActionTargeter targeter,DebugManager debugManager){
221222
//Replaces %to:<variable>% variables
222223
variablesProperties.setToTarget(player);
223224
String toActionLine = VariablesUtils.replaceAllVariablesInLine(actionLine,variablesProperties,false);
224225
if(isDebugActions){
225226
debugManager.sendActionMessage(event.getName(), toActionLine, player, actionType, targeter);
226227
}
227-
executeAction(player,actionType,toActionLine);
228+
executeAction(player,actionType,apiType,toActionLine);
228229
}
229230

230-
private void executeAction(Player player,ActionType type,String actionLine){
231+
private void executeAction(Player player,ActionType type,String apiType,String actionLine){
231232
//Non player actions
232233
switch(type){
233234
case CONSOLE_MESSAGE:
@@ -297,6 +298,9 @@ private void executeAction(Player player,ActionType type,String actionLine){
297298
case EXECUTE_ACTION_GROUP:
298299
ActionUtils.executeActionGroup(actionLine,this,plugin);
299300
return;
301+
case API:
302+
plugin.getApiManager().executeAction(apiType,player,actionLine);
303+
return;
300304
}
301305

302306
//Player actions

0 commit comments

Comments
 (0)