Skip to content

Commit

Permalink
Merge pull request #418 from VolmitSoftware/Development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
NextdoorPsycho committed Apr 26, 2023
2 parents a353be7 + ff7a198 commit dc04725
Show file tree
Hide file tree
Showing 51 changed files with 1,349 additions and 1,539 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ plugins {
id "de.undercouch.download" version "5.0.1"
}

version '1.8.0-1.19.4'
version '1.9.0-1.19.4'
def nmsVersion = "1.19.4" //[NMS]
def apiVersion = '1.19'
def specialSourceVersion = '1.11.0' //[NMS]
Expand Down
12 changes: 5 additions & 7 deletions src/main/java/com/volmit/adapt/Adapt.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
import java.io.File;
import java.io.InputStreamReader;
import java.net.URL;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
Expand Down Expand Up @@ -107,26 +108,23 @@ public static void printInformation() {

@SneakyThrows
public static void autoUpdateCheck() {
try {
URL url = new URL("https://raw.githubusercontent.com/VolmitSoftware/Adapt/main/build.gradle");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine;
try (BufferedReader in = new BufferedReader(new InputStreamReader(new URL("https://raw.githubusercontent.com/VolmitSoftware/Adapt/main/build.gradle").openStream()))) {
info("Checking for updates...");
String inputLine;
while ((inputLine = in.readLine()) != null) {
if (inputLine.contains("version '")) {
String version = inputLine.remove("version '").remove("'").remove("// Needs to be version specific").remove(" ");
String version = inputLine.replace("version '", "").replace("'", "").replace("// Needs to be version specific", "").replace(" ", "");
if (instance.getDescription().getVersion().contains("development")) {
info("Development build detected. Skipping update check.");
return;
} else if (!version.equals(instance.getDescription().getVersion())) {
info("Please update your Adapt plugin to the latest version! (Current: " + instance.getDescription().getVersion() + " Latest: " + version + ")");
info(MessageFormat.format("Please update your Adapt plugin to the latest version! (Current: {0} Latest: {1})", instance.getDescription().getVersion(), version));
} else {
info("You are running the latest version of Adapt!");
}
break;
}
}
in.close();
} catch (Throwable e) {
error("Failed to check for updates.");
}
Expand Down
19 changes: 19 additions & 0 deletions src/main/java/com/volmit/adapt/api/adaptation/Adaptation.java
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ default boolean setStorage(Player p, String key, Object value) {
}

default boolean canUse(AdaptPlayer player) {
Adapt.verbose("Checking if " + player.getPlayer().getName() + " can use " + getName() + "...");
AdaptAdaptationUseEvent e = new AdaptAdaptationUseEvent(!Bukkit.isPrimaryThread(), player, this);
Bukkit.getServer().getPluginManager().callEvent(e);
return (!e.isCancelled());
Expand All @@ -86,6 +87,15 @@ default boolean canUse(Player player) {
return canUse(getPlayer(player));
}

default boolean hasBlacklistPermission(Player p, Adaptation a) {
if (p.isOp()) { // If the player is an operator, bypass the permission check
return false;
}
String blacklistPermission = "adapt.blacklist." + a.getName().replaceAll("-", "");
Adapt.verbose("Checking if player " + p.getName() + " has blacklist permission " + blacklistPermission);

return p.hasPermission(blacklistPermission);
}

default String getStorageString(Player p, String key, String defaultValue) {
return getStorage(p, key, defaultValue);
Expand Down Expand Up @@ -235,6 +245,15 @@ default boolean hasAdaptation(Player p) {
Adapt.verbose("Player " + p.getName() + " don't have adaptation - " + this.getName() + " permission.");
return false;
}

if (hasBlacklistPermission(p, this)) {
Adapt.verbose("Player " + p.getName() + " has blacklist permission for adaptation " + this.getName());
return false;
}
if (!canUse(p)) {
Adapt.verbose("Player " + p.getName() + " can't use adaptation, This is an API restriction" + this.getName());
return false;
}
Adapt.verbose("Player " + p.getName() + " used adaptation " + this.getName());
return true;
} else {
Expand Down
39 changes: 38 additions & 1 deletion src/main/java/com/volmit/adapt/api/skill/SimpleSkill.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import art.arcane.amulet.io.FileWatcher;
import com.google.gson.Gson;
import com.volmit.adapt.Adapt;
import com.volmit.adapt.AdaptConfig;
import com.volmit.adapt.api.adaptation.Adaptation;
import com.volmit.adapt.api.advancement.AdaptAdvancement;
import com.volmit.adapt.api.recipe.AdaptRecipe;
Expand All @@ -34,8 +35,12 @@
import com.volmit.adapt.util.advancements.advancement.AdvancementVisibility;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;

import java.io.File;
import java.io.IOException;
Expand Down Expand Up @@ -152,13 +157,45 @@ public void registerAdvancement(AdaptAdvancement a) {
}

public boolean checkValidEntity(EntityType e) {
// Adapt.verbose("EntityType " + e.name() + "wasChecked");
if (!e.isAlive()) {
return false;
}
return !ItemListings.getInvalidDamageableEntities().contains(e);
}

protected boolean shouldReturnForPlayer(Player p) {
Adapt.verbose("Checking " + p.getName() + " for " + getName());
return !this.isEnabled() || hasBlacklistPermission(p, this) || isWorldBlacklisted(p) || isInCreativeOrSpectator(p);
}
protected void shouldReturnForPlayer(Player p, Runnable r) {
if (shouldReturnForPlayer(p)) {
return;
}
r.run();
}

protected void shouldReturnForPlayer(Player p, Cancellable c, Runnable r) {
if (c.isCancelled()) {
return;
}
if (shouldReturnForPlayer(p)) {
return;
}
r.run();
}

protected boolean shouldReturnForWorld(World world, Skill skill) {
return !skill.isEnabled() || AdaptConfig.get().blacklistedWorlds.contains(world.getName());
}

protected boolean isWorldBlacklisted(Player p) {
return AdaptConfig.get().blacklistedWorlds.contains(p.getWorld().getName());
}

protected boolean isInCreativeOrSpectator(Player p) {
return !AdaptConfig.get().isXpInCreative() && (p.getGameMode().equals(GameMode.CREATIVE) || p.getGameMode().equals(GameMode.SPECTATOR));
}

@Override
public String getDisplayName() {
return displayName == null ? Skill.super.getDisplayName() : (C.RESET + "" + C.BOLD + getColor().toString() + getEmojiName() + " " + displayName);
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/com/volmit/adapt/api/skill/Skill.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,15 @@ default void checkStatTrackers(AdaptPlayer player) {

void onRegisterAdvancements(List<AdaptAdvancement> advancements);

default boolean hasBlacklistPermission(Player p, Skill s) {
if (p.isOp()) { // If the player is an operator, bypass the permission check
return false;
}
String blacklistPermission = "adapt.blacklist." + s.getName().replaceAll("-", "");
Adapt.verbose("Checking if player " + p.getName() + " has blacklist permission " + blacklistPermission);
return p.hasPermission(blacklistPermission);
}

default String getDisplayName() {
if (!this.isEnabled()) {
this.unregister();
Expand Down Expand Up @@ -194,6 +203,9 @@ default void openGui(Player player) {
int ind = 0;

for (Adaptation i : getAdaptations()) {
if (i.hasBlacklistPermission(player, i)) {
continue;
}
int pos = w.getPosition(ind);
int row = w.getRow(ind);
int lvl = getPlayer(player).getData().getSkillLine(getName()).getAdaptationLevel(i.getName());
Expand Down
26 changes: 18 additions & 8 deletions src/main/java/com/volmit/adapt/api/world/PlayerSkillLine.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

package com.volmit.adapt.api.world;

import com.volmit.adapt.Adapt;
import com.volmit.adapt.AdaptConfig;
import com.volmit.adapt.api.adaptation.Adaptation;
import com.volmit.adapt.api.notification.ActionBarNotification;
Expand All @@ -36,7 +37,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

@Data
@NoArgsConstructor
Expand Down Expand Up @@ -67,8 +67,19 @@ public void giveXP(Notifier p, double xp) {
last = M.ms();
if (AdaptConfig.get().isActionbarNotifyXp()) {
p.notifyXP(line, xp);
} else {
// bossbar thing here
}

}
}

public void giveXPFresh(Notifier p, double xp) {
xp = multiplier * xp;
this.xp += xp;

if (p != null) {
last = M.ms();
if (AdaptConfig.get().isActionbarNotifyXp()) {
p.notifyXP(line, xp);
}
}
}
Expand Down Expand Up @@ -117,12 +128,11 @@ public void update(AdaptPlayer p, String line, PlayerData data) {
}
}

if (!p.isBusy() && getXp() > XP.getXpForLevel(100)) {
xp = getXp() - XP.getXpForLevel(100);
lastXP = xp;
lastLevel = (int) Math.floor(XP.getLevelForXp(getXp()));
//check if they are exceeding the max level, and just set it to the last level XP and level
if (!p.isBusy() && getXp() > XP.getXpForLevel(AdaptConfig.get().experienceMaxLevel)) {
p.getData().addWisdom();
boost(0.25, (int) TimeUnit.HOURS.toMillis(1));
Adapt.warn("A Player has reached the maximum level of " + AdaptConfig.get().experienceMaxLevel + " and has been granted 1 wisdom, Dropping Level to " + lastLevel);
setXp(XP.getXpForLevel(AdaptConfig.get().experienceMaxLevel -1));
}

double max = 1D + (getLevel() * 0.004);
Expand Down
36 changes: 0 additions & 36 deletions src/main/java/com/volmit/adapt/api/xp/SkyrimNewtonCurve.java

This file was deleted.

69 changes: 0 additions & 69 deletions src/main/java/com/volmit/adapt/api/xp/WOWNewtonCurve.java

This file was deleted.

1 change: 1 addition & 0 deletions src/main/java/com/volmit/adapt/commands/CommandAdapt.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public class CommandAdapt extends MortarCommand {
@Command
private final CommandVerbose verbose = new CommandVerbose();


public CommandAdapt() {
super("adapt", "ada", "a");
this.setDescription("This is the main command for Adapt");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,11 @@ public boolean handle(MortarSender sender, String[] args) {
args.toList().set(0, skill.getName());
giveOrb(sender, args);
}
} else {
} else if (args[0] != null && args[0].equals("[random]")) {
args.toList().set(0, SkillRegistry.skills.sortV().getRandom().getName());
giveOrb(sender, args);

}else {
giveOrb(sender, args);
}
return true;
Expand Down Expand Up @@ -71,6 +75,7 @@ public void addTabOptions(MortarSender sender, String[] args, List<String> list)
list.add(skill.getName());
}
list.add("[all]");
list.add("[random]");
}
if (args.length == 1) {
list.add(List.of("1", "10", "100", "1000", "10000", "100000", "1000000"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,11 @@ public boolean handle(MortarSender sender, String[] args) {
args.toList().set(0, skill.getName());
giveOrb(sender, args);
}
} else {
} else if (args[0] != null && args[0].equals("[random]")) {
args.toList().set(0, SkillRegistry.skills.sortV().getRandom().getName());
giveOrb(sender, args);

}else {
giveOrb(sender, args);
}
return true;
Expand Down Expand Up @@ -71,6 +75,7 @@ public void addTabOptions(MortarSender sender, String[] args, List<String> list)
list.add(skill.getName());
}
list.add("[all]");
list.add("[random]");
}
if (args.length == 1) {
list.add(List.of("1", "10", "100", "1000", "10000", "100000", "1000000"));
Expand Down

0 comments on commit dc04725

Please sign in to comment.