Skip to content

Commit 9d6b7c4

Browse files
committed
various improvements
1 parent 954f8e7 commit 9d6b7c4

7 files changed

Lines changed: 99 additions & 58 deletions

File tree

CustomNPCsBridge/build.gradle

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,38 @@ buildscript {
22
repositories {
33
jcenter()
44
maven {
5-
name = "forge"
6-
url = "https://files.minecraftforge.net/maven"
5+
name = 'gradle-plugins'
6+
url = 'https://plugins.gradle.org/m2'
77
}
88
maven {
9-
url = "https://plugins.gradle.org/m2/"
9+
name = 'sponge'
10+
url = 'https://repo.spongepowered.org/maven'
1011
}
1112
maven {
12-
url = "https://jitpack.io"
13+
name = 'forge'
14+
url = 'http://files.minecraftforge.net/maven'
1315
}
1416
}
1517
dependencies {
16-
classpath "net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT"
17-
classpath "gradle.plugin.org.spongepowered:spongegradle:0.8.1"
18+
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
19+
classpath 'gradle.plugin.org.spongepowered:spongegradle:0.8.1'
1820
}
1921
}
2022

21-
apply plugin: "net.minecraftforge.gradle.forge"
22-
apply plugin: "org.spongepowered.plugin"
23+
apply plugin: 'java'
24+
apply plugin: 'net.minecraftforge.gradle.forge'
25+
apply plugin: 'org.spongepowered.plugin'
2326

24-
group = "ru.glassspirit"
25-
version = "0.1"
26-
archivesBaseName = "NT-RPG-CustomNPCsBridge"
27+
group = 'ru.glassspirit'
28+
version = '0.3'
29+
archivesBaseName = 'NT-RPG-CustomNPCs-Bridge'
2730

28-
minecraft {
29-
version = "2759"
30-
runDir = "run"
31+
sourceCompatibility = targetCompatibility = 1.8
32+
compileJava.options.encoding = compileTestJava.options.encoding = 'UTF-8'
3133

34+
minecraft {
35+
forgeVersion = '1.12.2-14.23.5.2811'
36+
runDir = 'run'
3237
mappings = "stable_39"
3338
}
3439

@@ -38,6 +43,11 @@ repositories {
3843
}
3944

4045
dependencies {
41-
compileOnly 'org.spongepowered:spongeapi:7.1.0'
42-
compileOnly 'com.github.Sponge-RPG-dev:NT-Rpg:1.0.12-SNAPSHOT'
43-
}
46+
implementation('org.spongepowered:spongeforge:1.12.2-2768-7.1.5:dev') {
47+
exclude module: 'testmods'
48+
}
49+
implementation 'com.github.Sponge-RPG-dev:NT-RPG:2.0.0-SNAPSHOT-9'
50+
51+
testCompile "junit:junit:4.11"
52+
}
53+

CustomNPCsBridge/libs/CustomNPCs_1.12.208sep18snapshot2-deobf.jar renamed to CustomNPCsBridge/libs/CustomNPCs_1.12.204Mar19snapshot-deobf.jar

9.86 MB
Binary file not shown.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package ru.glassspirit.customnpcsbridge;
2+
3+
import ninja.leaping.configurate.objectmapping.Setting;
4+
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
5+
6+
@ConfigSerializable
7+
public class Configuration {
8+
9+
@Setting(value = "quests_exp_rpg", comment = "NT-RPG experience for completing quests")
10+
public boolean QUESTS_EXP_RPG = true;
11+
12+
@Setting(value = "quests_exp_minecraft", comment = "Minecraft experience for completing quests")
13+
public boolean QUESTS_EXP_MINECRAFT = false;
14+
15+
@Setting(value = "npc_kills_exp_rpg", comment = "NT-RPG experience for killing mobs")
16+
public boolean NPC_KILLS_EXP_RPG = true;
17+
18+
}

CustomNPCsBridge/src/main/java/ru/glassspirit/customnpcsbridge/CustomNPCsBridge.java

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.google.inject.Inject;
44
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
55
import ninja.leaping.configurate.loader.ConfigurationLoader;
6+
import ninja.leaping.configurate.objectmapping.ObjectMapper;
67
import org.slf4j.Logger;
78
import org.spongepowered.api.config.DefaultConfig;
89
import org.spongepowered.api.event.Listener;
@@ -16,29 +17,27 @@
1617
id = "nt-rpg-customnpcs-bridge",
1718
name = "NT-RPG CustomNPCs Bridge",
1819
description = "Bridge plugin that connects NT-RPG plugin and CustomNPCs mod",
19-
version = "0.1",
20+
version = "0.3",
2021
authors = {"GlassSpirit"},
2122
dependencies = {
22-
@Dependency(id = "nt-rpg")
23+
@Dependency(id = "nt-rpg"),
24+
@Dependency(id = "customnpcs")
2325
}
2426
)
2527
public class CustomNPCsBridge {
2628

27-
public static final String QUESTS_EXP_NODE = "quests_exp";
28-
public static final String NPC_KILLS_EXP_NODE = "npc_kills_exp";
29-
30-
public static boolean questsGiveExp;
31-
public static boolean npcKillsGiveExp;
32-
3329
@Inject
3430
private Logger logger;
3531

3632
@Inject
3733
@DefaultConfig(sharedRoot = true)
3834
private ConfigurationLoader<CommentedConfigurationNode> config;
3935

36+
public static Configuration configuration;
37+
4038
@Listener
4139
public void onGameInitialization(GameInitializationEvent event) {
40+
configuration = new Configuration();
4241
loadConfig();
4342
}
4443

@@ -51,28 +50,19 @@ public void onGameReload(GameReloadEvent event) {
5150
public void onGameAboutToStartServer(GameAboutToStartServerEvent event) {
5251
try {
5352
Class.forName("noppes.npcs.api.NpcAPI");
54-
new CustomNPCsEventListener().setup();
55-
logger.info("CustomNPCs event listener registered!");
53+
new CustomNPCsEventListener();
54+
logger.info("CustomNPCs found! Event listener registered.");
5655
} catch (ClassNotFoundException e) {
5756
logger.error("CustomNPCs not found!", e);
5857
}
5958
}
6059

6160
private void loadConfig() {
6261
try {
62+
ObjectMapper.BoundInstance configMapper = ObjectMapper.forObject(configuration);
6363
CommentedConfigurationNode node = config.load();
64-
if (node.getNode(QUESTS_EXP_NODE).isVirtual()) {
65-
node.getNode(QUESTS_EXP_NODE).setComment("Should players get experience for completing quests?");
66-
node.getNode(QUESTS_EXP_NODE).setValue(true);
67-
}
68-
if (node.getNode(NPC_KILLS_EXP_NODE).isVirtual()) {
69-
node.getNode(NPC_KILLS_EXP_NODE).setComment("Should players get experience for killing NPCs?");
70-
node.getNode(NPC_KILLS_EXP_NODE).setValue(true);
71-
}
64+
configMapper.serialize(node);
7265
config.save(node);
73-
74-
questsGiveExp = node.getNode(QUESTS_EXP_NODE).getBoolean(true);
75-
npcKillsGiveExp = node.getNode(NPC_KILLS_EXP_NODE).getBoolean(true);
7666
} catch (Exception e) {
7767
logger.error("Could not load config", e);
7868
}

CustomNPCsBridge/src/main/java/ru/glassspirit/customnpcsbridge/CustomNPCsEventListener.java

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class CustomNPCsEventListener {
1818

1919
private CharacterService characterService;
2020

21-
public void setup() {
21+
public CustomNPCsEventListener() {
2222
if (NpcAPI.IsAvailable()) {
2323
NpcAPI.Instance().events().register(this);
2424
characterService = IoC.get().build(CharacterService.class);
@@ -27,29 +27,36 @@ public void setup() {
2727

2828
@SubscribeEvent
2929
public void onNpcQuestCompletion(QuestEvent.QuestTurnedInEvent event) {
30-
IActiveCharacter character = characterService.getCharacter(UUID.fromString(event.player.getUUID()));
31-
if (character != null) {
32-
characterService.addExperiences(character, event.expReward, ExperienceSources.QUESTING);
33-
Log.info(String.format("Adding %s experience to %s for completing quest \"%s\"",
34-
event.expReward,
35-
character.getPlayer().getName(),
36-
event.quest.getName()),
37-
DebugLevel.BALANCE);
30+
if (CustomNPCsBridge.configuration.QUESTS_EXP_RPG) {
31+
IActiveCharacter character = characterService.getCharacter(UUID.fromString(event.player.getUUID()));
32+
if (character != null && !character.isStub()) {
33+
characterService.addExperiences(character, event.expReward, ExperienceSources.QUESTING);
34+
Log.info(String.format("Adding %s experience to %s for completing quest \"%s\"",
35+
event.expReward,
36+
character.getPlayer().getName(),
37+
event.quest.getName()),
38+
DebugLevel.BALANCE);
39+
}
40+
}
41+
if (!CustomNPCsBridge.configuration.QUESTS_EXP_MINECRAFT) {
42+
event.expReward = 0;
3843
}
3944
}
4045

4146
@SubscribeEvent
4247
public void onNpcDeath(NpcEvent.DiedEvent event) {
43-
if (event.damageSource.getTrueSource().typeOf(EntityType.PLAYER)) {
44-
IActiveCharacter character = characterService.getCharacter(UUID.fromString(event.damageSource.getTrueSource().getUUID()));
45-
if (character != null) {
46-
int experience = event.npc.getInventory().getExpRNG();
47-
characterService.addExperiences(character, experience, ExperienceSources.PVE);
48-
Log.info(String.format("Adding %s experience to %s for killing npc \"%s\"",
49-
experience,
50-
character.getPlayer().getName(),
51-
event.npc.getName()),
52-
DebugLevel.BALANCE);
48+
if (CustomNPCsBridge.configuration.NPC_KILLS_EXP_RPG) {
49+
if (event.damageSource.getTrueSource().typeOf(EntityType.PLAYER)) {
50+
IActiveCharacter character = characterService.getCharacter(UUID.fromString(event.damageSource.getTrueSource().getUUID()));
51+
if (character != null && !character.isStub()) {
52+
int experience = event.npc.getInventory().getExpRNG();
53+
characterService.addExperiences(character, experience, ExperienceSources.PVE);
54+
Log.info(String.format("Adding %s experience to %s for killing npc \"%s\"",
55+
experience,
56+
character.getPlayer().getName(),
57+
event.npc.getName()),
58+
DebugLevel.BALANCE);
59+
}
5360
}
5461
}
5562
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[
2+
{
3+
"modid": "nt-rpg-customnpcs-bridge",
4+
"name": "NT-RPG CustomNPCs Bridge",
5+
"version": "0.3",
6+
"description": "Bridge plugin that connects NT-RPG plugin and CustomNPCs mod",
7+
"dependencies": [
8+
"spongeapi@7.1.0",
9+
"nt-rpg"
10+
],
11+
"requiredMods": [
12+
"spongeapi@7.1.0",
13+
"customnpcs"
14+
]
15+
}
16+
]

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip

0 commit comments

Comments
 (0)