Skip to content

Commit 663c45e

Browse files
committed
add back permission skills
1 parent ed7cdd5 commit 663c45e

5 files changed

Lines changed: 65 additions & 10 deletions

File tree

.run/RunServer.run.xml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/server-spigot" />
66
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
77
<option name="ALTERNATIVE_JRE_PATH" value="1.8" />
8-
<method v="2">
9-
<option name="RunConfigurationTask" enabled="true" run_configuration_name="NT-RPG [build]" run_configuration_type="GradleRunConfiguration" />
10-
</method>
8+
<method v="2" />
119
</configuration>
1210
</component>

API/src/main/java/cz/neumimto/rpg/api/skills/types/PermissionSkill.java

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,26 @@
1616

1717
package cz.neumimto.rpg.api.skills.types;
1818

19+
import com.typesafe.config.Config;
1920
import cz.neumimto.rpg.api.entity.players.IActiveCharacter;
21+
import cz.neumimto.rpg.api.permissions.PermissionService;
2022
import cz.neumimto.rpg.api.skills.PlayerSkillContext;
23+
import cz.neumimto.rpg.api.skills.SkillData;
2124
import cz.neumimto.rpg.api.skills.SkillExecutionType;
2225
import cz.neumimto.rpg.api.skills.SkillResult;
26+
import cz.neumimto.rpg.api.skills.tree.SkillTree;
27+
import cz.neumimto.rpg.api.skills.utils.SkillLoadingErrors;
28+
29+
import javax.inject.Inject;
30+
import java.util.HashSet;
31+
import java.util.List;
32+
import java.util.Set;
2333

2434
public class PermissionSkill extends AbstractSkill<IActiveCharacter> {
2535

36+
@Inject
37+
private PermissionService permissionService;
38+
2639
@Override
2740
public SkillResult onPreUse(IActiveCharacter character, PlayerSkillContext esi) {
2841
return SkillResult.CANCELLED;
@@ -36,16 +49,48 @@ public SkillExecutionType getSkillExecutionType() {
3649
@Override
3750
public void skillLearn(IActiveCharacter IActiveCharacter, PlayerSkillContext context) {
3851
super.skillLearn(IActiveCharacter, context);
52+
PermissionData permissionData = (PermissionData) context.getSkillData();
53+
if (permissionData.permissions != null) {
54+
permissionService.addPermissions(IActiveCharacter, permissionData.permissions);
55+
}
3956
}
4057

4158
@Override
42-
public void skillUpgrade(IActiveCharacter IActiveCharacter, int level, PlayerSkillContext context) {
43-
super.skillUpgrade(IActiveCharacter, level, context);
59+
public void skillRefund(IActiveCharacter IActiveCharacter, PlayerSkillContext context) {
60+
super.skillRefund(IActiveCharacter, context);
61+
PermissionData permissionData = (PermissionData) context.getSkillData();
62+
if (permissionData.permissions != null) {
63+
permissionService.removePermissions(IActiveCharacter, permissionData.permissions);
64+
}
4465
}
4566

4667
@Override
47-
public void skillRefund(IActiveCharacter IActiveCharacter, PlayerSkillContext context) {
48-
super.skillRefund(IActiveCharacter, context);
68+
public <T extends SkillData> void loadSkillData(T skillData, SkillTree context, SkillLoadingErrors errors, Config c) {
69+
PermissionData permissionData = (PermissionData) skillData;
70+
List<String> permissions = c.getStringList("Permissions");
71+
if (permissions != null) {
72+
permissionData.permissions = new HashSet<>(permissions);
73+
}
4974
}
5075

76+
@Override
77+
public SkillData constructSkillData() {
78+
return new PermissionData(getId());
79+
}
80+
81+
public class PermissionData extends SkillData {
82+
private Set<String> permissions;
83+
84+
public PermissionData(String skill) {
85+
super(skill);
86+
}
87+
88+
public Set<String> getPermissions() {
89+
return permissions;
90+
}
91+
92+
public void setPermissions(Set<String> permissions) {
93+
this.permissions = permissions;
94+
}
95+
}
5196
}

Common/src/main/java/cz/neumimto/rpg/common/configuration/SkillTreeLoaderImpl.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import cz.neumimto.rpg.api.Rpg;
2424
import cz.neumimto.rpg.api.classes.ClassService;
2525
import cz.neumimto.rpg.api.configuration.SkillTreeDao;
26-
import cz.neumimto.rpg.api.effects.model.mappers.SingleValueModelMapper;
2726
import cz.neumimto.rpg.api.gui.ISkillTreeInterfaceModel;
2827
import cz.neumimto.rpg.api.localization.LocalizationService;
2928
import cz.neumimto.rpg.api.logging.Log;
@@ -40,7 +39,6 @@
4039
import cz.neumimto.rpg.common.skills.SkillConfigLoader;
4140
import cz.neumimto.rpg.common.skills.SkillConfigLoaders;
4241
import cz.neumimto.rpg.common.skills.SkillExecutor;
43-
import org.apache.commons.lang3.math.NumberUtils;
4442

4543
import javax.inject.Inject;
4644
import javax.inject.Singleton;
@@ -49,7 +47,6 @@
4947
import java.nio.file.Files;
5048
import java.nio.file.Path;
5149
import java.nio.file.Paths;
52-
import java.util.Optional;
5350
import java.util.*;
5451

5552
import static cz.neumimto.rpg.api.logging.Log.*;

Common/src/main/java/cz/neumimto/rpg/common/skills/SkillConfigLoaders.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import cz.neumimto.rpg.api.skills.*;
44
import cz.neumimto.rpg.api.skills.tree.SkillTreeSpecialization;
55
import cz.neumimto.rpg.api.skills.types.CharacterAttributeSkill;
6+
import cz.neumimto.rpg.api.skills.types.PermissionSkill;
67
import cz.neumimto.rpg.common.skills.types.ItemAccessSkill;
78

89
import java.util.HashMap;
@@ -19,6 +20,7 @@ public class SkillConfigLoaders {
1920
static SkillConfigLoader WRAPPER = new SkillConfigLoader("wrapper", WrappedSkill.class);
2021
static SkillConfigLoader REPEATING = new SkillConfigLoader("repeating", RepeatingSkill.class);
2122
static SkillConfigLoader UPGRADE = new SkillConfigLoader("upgrade", SkillUpgrade.class);
23+
static SkillConfigLoader PERMISSION = new SkillConfigLoader("permission", PermissionSkill.class);
2224

2325
private static Map<String, SkillConfigLoader> internalCache = new HashMap<>();
2426

@@ -32,6 +34,7 @@ public class SkillConfigLoaders {
3234
register(WRAPPER);
3335
register(REPEATING);
3436
register(UPGRADE);
37+
register(PERMISSION);
3538
}
3639

3740
public static Optional<SkillConfigLoader> getById(String id) {

Common/src/main/resources/assets/nt-rpg/defaults/skilltrees/magetree.conf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,4 +403,16 @@ Skills: [
403403
manacost: 10
404404
}
405405
}
406+
{
407+
SkillId: "myexample:giveperm01"
408+
Name: PermExample
409+
MinPlayerLevel: 100
410+
MaxSkillLevel: 1
411+
SkillTreeId: 16
412+
Icon: "minecraft:web"
413+
ModelId: 999
414+
Permissions: [
415+
"some.permission.xxx.yyy"
416+
]
417+
}
406418
]

0 commit comments

Comments
 (0)