Skip to content

Commit

Permalink
Further change due to the last commit
Browse files Browse the repository at this point in the history
  • Loading branch information
glorydark committed May 20, 2023
1 parent fb380be commit 6080ab5
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 32 deletions.
3 changes: 0 additions & 3 deletions src/main/java/glorydark/customform/CustomFormMain.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
package glorydark.customform;

import cn.nukkit.Player;
import cn.nukkit.Server;
import cn.nukkit.command.Command;
import cn.nukkit.command.CommandSender;
import cn.nukkit.lang.TranslationContainer;
import cn.nukkit.plugin.Plugin;
import cn.nukkit.plugin.PluginBase;
import cn.nukkit.potion.Effect;
import cn.nukkit.scheduler.NukkitRunnable;
import cn.nukkit.utils.Config;
import cn.nukkit.utils.TextFormat;
import glorydark.customform.chestMenu.ChestMenuListener;
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/glorydark/customform/chestMenu/ChestMenuMain.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,12 @@ public static boolean registerMinecartChestMenu(String identifier, Map<String, O
chestMenuComponent.setSuccessMessages((List<String>) component.getOrDefault("success_messages", new ArrayList<>()));
chestMenuComponent.setSuccessCommands((List<String>) component.getOrDefault("success_commands", new ArrayList<>()));
if(component.containsKey("requirements")){
List<Requirements> conditions = new ArrayList<>();
Map<String, Object> conditionData = (Map<String, Object>) component.get("conditions");
for(List<Map<String, Object>> object: (List<List<Map<String, Object>>>)conditionData.get("data")){
conditions.add(FormCreator.buildRequirements(object, (Boolean) conditionData.getOrDefault("chargeable", true)));
List<Requirements> requirements = new ArrayList<>();
Map<String, Object> requirementData = (Map<String, Object>) component.get("requirements");
for(List<Map<String, Object>> object: (List<List<Map<String, Object>>>)requirementData.get("data")){
requirements.add(FormCreator.buildRequirements(object, (Boolean) requirementData.getOrDefault("chargeable", true)));
}
chestMenuComponent.setRequirements(conditions);
chestMenuComponent.setRequirements(requirements);
}
menu.addComponent((Integer) component.get("slot"), chestMenuComponent);
}
Expand Down
38 changes: 19 additions & 19 deletions src/main/java/glorydark/customform/forms/FormCreator.java
Original file line number Diff line number Diff line change
Expand Up @@ -132,41 +132,41 @@ public static void showScriptForm(Player player, ScriptForm script, String ident
}

/*
By this function, you can build up a condition set.
A condition set consists of Tips_ConditionData and ConditionData.
You can see some provided method inside the Conditions.class.
By this function, you can build up a requirement set.
A requirement set consists of Tips_RequirementsData and EconomyRequirementsData.
You can see some provided method inside the Requirements.class.
* If you want to add a new type of condition,
please make some tiny modifications inside the Conditions.class.
* If you want to add a new type of requirement,
please make some tiny modifications inside the Requirement.class.
*/
public static Requirements buildRequirements(List<Map<String, Object>> conditionList, boolean chargeable){
public static Requirements buildRequirements(List<Map<String, Object>> requirementConfig, boolean chargeable){
Requirements requirements = new Requirements(new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), chargeable);
for(Map<String, Object> map: conditionList){
for(Map<String, Object> map: requirementConfig){
String type = (String) map.get("type");
EconomyRequirementData data = null;
TipsRequirementData tips_data = null;
switch (type){
case "EconomyAPI":
// This is the way we deal with EconomyAPI-type condition
// This is the way we deal with EconomyAPI-type requirements
data = new EconomyRequirementData(null, 0d, new Object());
data.setType(EconomyRequirementType.EconomyAPI);
data.setAmount(Double.parseDouble(map.get("cost").toString()));
break;
case "Points":
// This is the way we deal with Points-type condition
// This is the way we deal with Points-type requirements
data = new EconomyRequirementData(null, 0d, new Object());
data.setType(EconomyRequirementType.Points);
data.setAmount(Double.parseDouble(map.get("cost").toString()));
break;
case "DCurrency":
// This is the way we deal with DCurrency-type condition
// This is the way we deal with DCurrency-type requirements
data = new EconomyRequirementData(null, 0d, new Object());
data.setType(EconomyRequirementType.DCurrency);
data.setAmount(Double.parseDouble(map.get("cost").toString()));
data.setExtraData(new String[]{(String) map.get("currencyType")});
break;
case "Tips":
// This is the way we deal with Tips-type condition
// This is the way we deal with Tips-type requirements
String identifier = (String) map.get("identifier");
String comparedSign = (String) map.get("compared_sign");
Object comparedValue = map.get("compared_value");
Expand Down Expand Up @@ -233,12 +233,12 @@ public static ScriptForm getScriptFormByMap(Map<String, Object> config){
for (Map<String, Object> component : (List<Map<String, Object>>) config.getOrDefault("components", new ArrayList<>())) {
SimpleResponseExecuteData data = new SimpleResponseExecuteData((List<String>) component.getOrDefault("commands", new ArrayList<>()), (List<String>) component.getOrDefault("messages", new ArrayList<>()), (List<String>) component.getOrDefault("failed_commands", new ArrayList<>()), (List<String>) component.getOrDefault("failed_messages", new ArrayList<>()));
if(component.containsKey("requirements")) {
List<Requirements> conditions = new ArrayList<>();
Map<String, Object> conditionData = (Map<String, Object>) component.get("conditions");
for(List<Map<String, Object>> object: (List<List<Map<String, Object>>>)conditionData.get("data")){
conditions.add(buildRequirements(object, (Boolean) conditionData.getOrDefault("chargeable", true)));
List<Requirements> requirementsList = new ArrayList<>();
Map<String, Object> requirementData = (Map<String, Object>) component.get("requirementsList");
for(List<Map<String, Object>> object: (List<List<Map<String, Object>>>)requirementData.get("data")){
requirementsList.add(buildRequirements(object, (Boolean) requirementData.getOrDefault("chargeable", true)));
}
data.setRequirements(conditions);
data.setRequirements(requirementsList);
}
simpleResponseExecuteDataList.add(data);
}
Expand Down Expand Up @@ -274,9 +274,9 @@ public static ScriptForm getScriptFormByMap(Map<String, Object> config){
SimpleResponseExecuteData data = new SimpleResponseExecuteData((List<String>) component.getOrDefault("commands", new ArrayList<>()), (List<String>) component.getOrDefault("messages", new ArrayList<>()), (List<String>) component.getOrDefault("failed_commands", new ArrayList<>()), (List<String>) component.getOrDefault("failed_messages", new ArrayList<>()));
if(component.containsKey("requirements")) {
List<Requirements> requirements = new ArrayList<>();
Map<String, Object> conditionData = (Map<String, Object>) component.get("conditions");
for(List<Map<String, Object>> object: (List<List<Map<String, Object>>>)conditionData.get("data")){
requirements.add(buildRequirements(object, (Boolean) conditionData.getOrDefault("chargeable", true)));
Map<String, Object> requirementData = (Map<String, Object>) component.get("requirements");
for(List<Map<String, Object>> object: (List<List<Map<String, Object>>>)requirementData.get("data")){
requirements.add(buildRequirements(object, (Boolean) requirementData.getOrDefault("chargeable", true)));
}
data.setRequirements(requirements);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ public boolean isAllQualified(Player player, Object... params){
return false;
}
}
// Deal with Tips_ConditionData
for(TipsRequirementData datum: tipsRequirementData){
if(!datum.isQualified(player)){
datum.sendFailedMsg(player, (datum.getComparedValue() instanceof Double || datum.getComparedValue() instanceof Integer), params[0]);
Expand All @@ -97,10 +96,6 @@ public void reduceAllCosts(Player player, int multiply){
}
}

public List<EconomyRequirementData> getBaseConditionData() {
return economyRequirementData;
}

public boolean isChargeable() {
return chargeable;
}
Expand Down

0 comments on commit 6080ab5

Please sign in to comment.