forked from Upstream/mmocore
merged
This commit is contained in:
commit
f172d52cac
33
.gitlab-ci.yml
Normal file
33
.gitlab-ci.yml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
image: maven:3-openjdk-8-slim
|
||||||
|
|
||||||
|
variables:
|
||||||
|
MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
|
||||||
|
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- apt-get update -qq
|
||||||
|
# Setup SSH deploy keys
|
||||||
|
- 'which ssh-agent || ( apt-get install -qq openssh-client )'
|
||||||
|
- eval $(ssh-agent -s)
|
||||||
|
- ssh-add <(echo "$SSH_PRIVATE_KEY")
|
||||||
|
- mkdir -p ~/.ssh
|
||||||
|
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
|
||||||
|
|
||||||
|
cache:
|
||||||
|
paths:
|
||||||
|
- .m2/repository/
|
||||||
|
- target/
|
||||||
|
|
||||||
|
build:
|
||||||
|
stage: build
|
||||||
|
script:
|
||||||
|
- mvn $MAVEN_CLI_OPTS package
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
stage: deploy
|
||||||
|
script:
|
||||||
|
- mvn $MAVEN_CLI_OPTS deploy
|
||||||
|
- ssh lumine@proxy.mythiccraft.io -p 2222 "mkdir -p /tmp/builds/$CI_JOB_ID && exit"
|
||||||
|
- scp -rp -o StrictHostKeyChecking=no -o Port=2222 ./target/ lumine@proxy.mythiccraft.io:/tmp/builds/$CI_JOB_ID/
|
||||||
|
only:
|
||||||
|
- master
|
9
.m2/settings.xml
Normal file
9
.m2/settings.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<settings>
|
||||||
|
<servers>
|
||||||
|
<server>
|
||||||
|
<id>nexus</id>
|
||||||
|
<username>${env.M2_REPO_USER}</username>
|
||||||
|
<password>${env.M2_REPO_PASS}</password>
|
||||||
|
</server>
|
||||||
|
</servers>
|
||||||
|
</settings>
|
BIN
lib/PlaceholderAPI.jar
Normal file
BIN
lib/PlaceholderAPI.jar
Normal file
Binary file not shown.
13
pom.xml
13
pom.xml
@ -4,7 +4,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>net.Indyuce</groupId>
|
<groupId>net.Indyuce</groupId>
|
||||||
<artifactId>MMOCore</artifactId>
|
<artifactId>MMOCore</artifactId>
|
||||||
<version>1.4.2-SNAPSHOT</version>
|
<version>1.4.3</version>
|
||||||
<name>MMOCore</name>
|
<name>MMOCore</name>
|
||||||
<description>Offer your players a brand new RPG experience.</description>
|
<description>Offer your players a brand new RPG experience.</description>
|
||||||
|
|
||||||
@ -66,10 +66,6 @@
|
|||||||
<id>sk89q-repo</id>
|
<id>sk89q-repo</id>
|
||||||
<url>https://maven.enginehub.org/repo/</url>
|
<url>https://maven.enginehub.org/repo/</url>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
|
||||||
<id>placeholderapi</id>
|
|
||||||
<url>http://repo.extendedclip.com/content/repositories/placeholderapi/</url>
|
|
||||||
</repository>
|
|
||||||
</repositories>
|
</repositories>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
@ -160,5 +156,12 @@
|
|||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
<version>5.1.41</version>
|
<version>5.1.41</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>me.clip</groupId>
|
||||||
|
<artifactId>placeholderapi</artifactId>
|
||||||
|
<version>2.10.7</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${basedir}/lib/PlaceholderAPI.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
@ -150,7 +150,7 @@ public class PlayerQuests {
|
|||||||
|
|
||||||
// close current objective progress if quest is active
|
// close current objective progress if quest is active
|
||||||
if (hasCurrent())
|
if (hasCurrent())
|
||||||
current.closeObjectiveProgress();
|
current.getProgress().close();
|
||||||
|
|
||||||
// apply newer quest
|
// apply newer quest
|
||||||
current = quest == null ? null : quest.generateNewProgress(playerData);
|
current = quest == null ? null : quest.generateNewProgress(playerData);
|
||||||
|
@ -43,16 +43,12 @@ public class QuestProgress {
|
|||||||
return quest.getObjectives().get(objective);
|
return quest.getObjectives().get(objective);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void closeObjectiveProgress() {
|
|
||||||
objectiveProgress.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void completeObjective() {
|
public void completeObjective() {
|
||||||
objective++;
|
objective++;
|
||||||
closeObjectiveProgress();
|
objectiveProgress.close();
|
||||||
|
|
||||||
// apply triggers
|
// apply triggers
|
||||||
objectiveProgress.getObjective().getTriggers().forEach(trigger -> trigger.apply(getPlayer()));
|
objectiveProgress.getObjective().getTriggers().forEach(trigger -> trigger.schedule(getPlayer()));
|
||||||
|
|
||||||
// end quest
|
// end quest
|
||||||
if (objective >= quest.getObjectives().size())
|
if (objective >= quest.getObjectives().size())
|
||||||
|
@ -10,7 +10,7 @@ public abstract class Trigger {
|
|||||||
private final long delay;
|
private final long delay;
|
||||||
|
|
||||||
public Trigger(MMOLineConfig config) {
|
public Trigger(MMOLineConfig config) {
|
||||||
delay = config.contains("delay") ? (long) (config.getDouble("delay") * 20) : 0;
|
delay = config.contains("delay") ? (long) (config.getDouble("delay") * 20.) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasDelay() {
|
public boolean hasDelay() {
|
||||||
@ -22,8 +22,16 @@ public abstract class Trigger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void schedule(PlayerData player) {
|
public void schedule(PlayerData player) {
|
||||||
|
if (delay <= 0)
|
||||||
|
apply(player);
|
||||||
|
else
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> apply(player), delay);
|
Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> apply(player), delay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* this method must not be used directly when executing triggers after quest
|
||||||
|
* objectives for example, because this method does NOT take into account
|
||||||
|
* trigger delay
|
||||||
|
*/
|
||||||
public abstract void apply(PlayerData player);
|
public abstract void apply(PlayerData player);
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,19 @@
|
|||||||
package net.Indyuce.mmocore.comp.placeholder;
|
package net.Indyuce.mmocore.comp.placeholder;
|
||||||
|
|
||||||
|
import net.asangarin.hexcolors.ColorParse;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPI;
|
import me.clip.placeholderapi.PlaceholderAPI;
|
||||||
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
|
|
||||||
public class PlaceholderAPIParser implements PlaceholderParser {
|
public class PlaceholderAPIParser implements PlaceholderParser {
|
||||||
public PlaceholderAPIParser() {
|
public PlaceholderAPIParser() {
|
||||||
new RPGPlaceholders().register();
|
PlaceholderExpansion expansion = new RPGPlaceholders();
|
||||||
|
expansion.getPlaceholderAPI().getLocalExpansionManager().register(expansion);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String parse(OfflinePlayer player, String string) {
|
public String parse(OfflinePlayer player, String string) {
|
||||||
return PlaceholderAPI.setPlaceholders(player, string.replace("%player%", player.getName()));
|
return new ColorParse('&', PlaceholderAPI.setPlaceholders(player, string.replace("%player%", player.getName()))).toChatColor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
package net.Indyuce.mmocore.comp.placeholder;
|
package net.Indyuce.mmocore.comp.placeholder;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.attribute.Attribute;
|
import org.bukkit.attribute.Attribute;
|
||||||
import org.bukkit.entity.Player;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
import net.Indyuce.mmocore.MMOCore;
|
import net.Indyuce.mmocore.MMOCore;
|
||||||
@ -14,9 +17,7 @@ import net.Indyuce.mmocore.api.player.stats.StatType;
|
|||||||
import net.Indyuce.mmocore.api.quest.PlayerQuests;
|
import net.Indyuce.mmocore.api.quest.PlayerQuests;
|
||||||
import net.mmogroup.mmolib.api.util.AltChar;
|
import net.mmogroup.mmolib.api.util.AltChar;
|
||||||
|
|
||||||
public class RPGPlaceholders
|
public class RPGPlaceholders extends PlaceholderExpansion {
|
||||||
extends PlaceholderExpansion /** implements Relational */
|
|
||||||
{
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAuthor() {
|
public String getAuthor() {
|
||||||
@ -34,7 +35,7 @@ public class RPGPlaceholders
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String onPlaceholderRequest(Player player, String identifier) {
|
public String onRequest(@Nullable OfflinePlayer player, @NotNull String identifier) {
|
||||||
|
|
||||||
if (identifier.equals("level"))
|
if (identifier.equals("level"))
|
||||||
return "" + PlayerData.get(player).getLevel();
|
return "" + PlayerData.get(player).getLevel();
|
||||||
@ -48,8 +49,10 @@ public class RPGPlaceholders
|
|||||||
else if (identifier.equals("combat"))
|
else if (identifier.equals("combat"))
|
||||||
return String.valueOf(PlayerData.get(player).isInCombat());
|
return String.valueOf(PlayerData.get(player).isInCombat());
|
||||||
|
|
||||||
else if (identifier.equals("health"))
|
else if (identifier.equals("health")) {
|
||||||
return StatType.MAX_HEALTH.format(player.getHealth());
|
Validate.isTrue(player.isOnline(), "Player must be online");
|
||||||
|
return StatType.MAX_HEALTH.format(player.getPlayer().getHealth());
|
||||||
|
}
|
||||||
|
|
||||||
else if (identifier.equals("class"))
|
else if (identifier.equals("class"))
|
||||||
return PlayerData.get(player).getProfess().getName();
|
return PlayerData.get(player).getProfess().getName();
|
||||||
@ -73,8 +76,10 @@ public class RPGPlaceholders
|
|||||||
return "" + PlayerData.get(player).getCollectionSkills()
|
return "" + PlayerData.get(player).getCollectionSkills()
|
||||||
.getLevel(identifier.substring(11).replace(" ", "-").replace("_", "-").toLowerCase());
|
.getLevel(identifier.substring(11).replace(" ", "-").replace("_", "-").toLowerCase());
|
||||||
|
|
||||||
else if (identifier.equals("max_health"))
|
else if (identifier.equals("max_health")) {
|
||||||
return StatType.MAX_HEALTH.format(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
|
Validate.isTrue(player.isOnline(), "Player must be online");
|
||||||
|
return StatType.MAX_HEALTH.format(player.getPlayer().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
|
||||||
|
}
|
||||||
|
|
||||||
else if (identifier.equals("experience"))
|
else if (identifier.equals("experience"))
|
||||||
return "" + PlayerData.get(player).getExperience();
|
return "" + PlayerData.get(player).getExperience();
|
||||||
@ -95,15 +100,16 @@ public class RPGPlaceholders
|
|||||||
return "" + PlayerData.get(player).getAttributeReallocationPoints();
|
return "" + PlayerData.get(player).getAttributeReallocationPoints();
|
||||||
|
|
||||||
else if (identifier.startsWith("attribute_"))
|
else if (identifier.startsWith("attribute_"))
|
||||||
return String.valueOf(PlayerData.get(player).getAttributes()
|
return String.valueOf(PlayerData.get(player).getAttributes().getAttribute(
|
||||||
.getAttribute(MMOCore.plugin.attributeManager.get(identifier.substring(10).toLowerCase().replace("_", "-"))));
|
MMOCore.plugin.attributeManager.get(identifier.substring(10).toLowerCase().replace("_", "-"))));
|
||||||
|
|
||||||
else if (identifier.equals("mana"))
|
else if (identifier.equals("mana"))
|
||||||
return MMOCore.plugin.configManager.decimal.format(PlayerData.get(player).getMana());
|
return MMOCore.plugin.configManager.decimal.format(PlayerData.get(player).getMana());
|
||||||
|
|
||||||
else if (identifier.equals("mana_bar")) {
|
else if (identifier.equals("mana_bar")) {
|
||||||
PlayerData data = PlayerData.get(player);
|
PlayerData data = PlayerData.get(player);
|
||||||
return data.getProfess().getManaDisplay().generateBar(data.getMana(), data.getStats().getStat(StatType.MAX_MANA));
|
return data.getProfess().getManaDisplay().generateBar(data.getMana(),
|
||||||
|
data.getStats().getStat(StatType.MAX_MANA));
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (identifier.equals("stamina"))
|
else if (identifier.equals("stamina"))
|
||||||
@ -115,7 +121,8 @@ public class RPGPlaceholders
|
|||||||
double ratio = 20 * data.getStamina() / data.getStats().getStat(StatType.MAX_STAMINA);
|
double ratio = 20 * data.getStamina() / data.getStats().getStat(StatType.MAX_STAMINA);
|
||||||
for (double j = 1; j < 20; j++)
|
for (double j = 1; j < 20; j++)
|
||||||
format += (ratio >= j ? MMOCore.plugin.configManager.staminaFull
|
format += (ratio >= j ? MMOCore.plugin.configManager.staminaFull
|
||||||
: ratio >= j - .5 ? MMOCore.plugin.configManager.staminaHalf : MMOCore.plugin.configManager.staminaEmpty)
|
: ratio >= j - .5 ? MMOCore.plugin.configManager.staminaHalf
|
||||||
|
: MMOCore.plugin.configManager.staminaEmpty)
|
||||||
+ AltChar.listSquare;
|
+ AltChar.listSquare;
|
||||||
return format;
|
return format;
|
||||||
}
|
}
|
||||||
@ -133,7 +140,8 @@ public class RPGPlaceholders
|
|||||||
PlayerData data = PlayerData.get(player);
|
PlayerData data = PlayerData.get(player);
|
||||||
double ratio = 20 * data.getStellium() / data.getStats().getStat(StatType.MAX_STELLIUM);
|
double ratio = 20 * data.getStellium() / data.getStats().getStat(StatType.MAX_STELLIUM);
|
||||||
for (double j = 1; j < 20; j++)
|
for (double j = 1; j < 20; j++)
|
||||||
format += (ratio >= j ? ChatColor.BLUE : ratio >= j - .5 ? ChatColor.AQUA : ChatColor.WHITE) + AltChar.listSquare;
|
format += (ratio >= j ? ChatColor.BLUE : ratio >= j - .5 ? ChatColor.AQUA : ChatColor.WHITE)
|
||||||
|
+ AltChar.listSquare;
|
||||||
return format;
|
return format;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,8 +153,8 @@ public class RPGPlaceholders
|
|||||||
else if (identifier.equals("quest_progress")) {
|
else if (identifier.equals("quest_progress")) {
|
||||||
PlayerQuests data = PlayerData.get(player).getQuestData();
|
PlayerQuests data = PlayerData.get(player).getQuestData();
|
||||||
return data.hasCurrent()
|
return data.hasCurrent()
|
||||||
? MMOCore.plugin.configManager.decimal
|
? MMOCore.plugin.configManager.decimal.format((int) (double) data.getCurrent().getObjectiveNumber()
|
||||||
.format((int) (double) data.getCurrent().getObjectiveNumber() / data.getCurrent().getQuest().getObjectives().size() * 100)
|
/ data.getCurrent().getQuest().getObjectives().size() * 100)
|
||||||
: "0";
|
: "0";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,12 +41,13 @@ public class FishingListener implements Listener {
|
|||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
FishHook hook = event.getHook();
|
FishHook hook = event.getHook();
|
||||||
|
|
||||||
if (event.getState() == State.BITE && !fishing.contains(player.getUniqueId())) {
|
if (event.getState() == State.BITE && !fishing.contains(player.getUniqueId()) && !player.hasMetadata("NPC")) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* checks for drop tables. if no drop table, just plain vanilla
|
* checks for drop tables. if no drop table, just plain vanilla
|
||||||
* fishing OTHERWISE initialize fishing, register other listener.
|
* fishing OTHERWISE initialize fishing, register other listener.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
FishingDropTable table = MMOCore.plugin.fishingManager.calculateDropTable(player);
|
FishingDropTable table = MMOCore.plugin.fishingManager.calculateDropTable(player);
|
||||||
if (table == null)
|
if (table == null)
|
||||||
return;
|
return;
|
||||||
@ -118,7 +119,7 @@ public class FishingListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void a(PlayerFishEvent event) {
|
public void a(PlayerFishEvent event) {
|
||||||
if (event.getPlayer().equals(player) && (event.getState() == State.CAUGHT_FISH || event.getState() == State.FAILED_ATTEMPT || (MMOLib.plugin.getVersion().isStrictlyHigher(1, 12) ? event.getState() == State.valueOf("REEL_IN") : false))) {
|
if (event.getPlayer().equals(player) && !player.hasMetadata("NPC") && (event.getState() == State.CAUGHT_FISH || event.getState() == State.FAILED_ATTEMPT || (MMOLib.plugin.getVersion().isStrictlyHigher(1, 12) ? event.getState() == State.valueOf("REEL_IN") : false))) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* lose the catch if the current fish is gone!
|
* lose the catch if the current fish is gone!
|
||||||
|
Loading…
Reference in New Issue
Block a user