Bug Fix 0001

**Changelog**:
 - Fixed a bug where the PlayerListener was not being initialized
 - Included the registration for the listener inside the constructor
 - Dropped static import in favor of class parent access
 - Added to the Luck method "setValue(double)" to automatically update the configuration file when called.
 - Adjusted Luck to utilize all 1024 units when calculating the boolean for rng percentage.
This commit is contained in:
Paldiu 2022-04-02 09:00:40 -05:00
parent ffdafda69c
commit 247a2fafc0
18 changed files with 33 additions and 16 deletions

Binary file not shown.

View File

@ -3,7 +3,7 @@ plugins {
} }
group = 'io.github.simplex' group = 'io.github.simplex'
version = '1.0-RC02' version = 'Alpha-1.0-RC03'
repositories { repositories {
mavenCentral() mavenCentral()

View File

@ -1,5 +1,5 @@
name: FeelingLucky name: FeelingLucky
version: '1.0-RC02' version: 'Alpha-1.0-RC03'
author: SimplexDevelopment author: SimplexDevelopment
main: io.github.simplex.luck.FeelingLucky main: io.github.simplex.luck.FeelingLucky
api-version: 1.18 api-version: 1.18

View File

@ -1,5 +1,6 @@
package io.github.simplex.luck; package io.github.simplex.luck;
import io.github.simplex.luck.listener.PlayerListener;
import io.github.simplex.luck.player.PlayerConfig; import io.github.simplex.luck.player.PlayerConfig;
import io.github.simplex.luck.player.PlayerHandler; import io.github.simplex.luck.player.PlayerHandler;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -15,6 +16,7 @@ public final class FeelingLucky extends JavaPlugin {
private static final Map<UUID, PlayerConfig> configMap = new HashMap<>(); private static final Map<UUID, PlayerConfig> configMap = new HashMap<>();
public LuckCMD cmd; public LuckCMD cmd;
public PlayerHandler handler; public PlayerHandler handler;
public PlayerListener playerListener;
public static Map<UUID, PlayerConfig> getConfigMap() { public static Map<UUID, PlayerConfig> getConfigMap() {
return configMap; return configMap;
@ -24,8 +26,8 @@ public final class FeelingLucky extends JavaPlugin {
public void onEnable() { public void onEnable() {
Bukkit.getLogger().info("Initializing the PlayerHandler..."); Bukkit.getLogger().info("Initializing the PlayerHandler...");
handler = new PlayerHandler(this); handler = new PlayerHandler(this);
Bukkit.getLogger().info("Initialization complete! Attempting to register the handler..."); Bukkit.getLogger().info("Initialization complete! Attempting to register the Listeners...");
this.getServer().getPluginManager().registerEvents(handler, this); playerListener = new PlayerListener(this);
Bukkit.getLogger().info("Registration complete! Attempting to load all player configuration files..."); Bukkit.getLogger().info("Registration complete! Attempting to load all player configuration files...");
File[] files = getDataFolder().listFiles(); File[] files = getDataFolder().listFiles();

View File

@ -7,6 +7,7 @@ import io.github.simplex.luck.SneakyWorker;
import io.github.simplex.luck.player.Luck; import io.github.simplex.luck.player.Luck;
import io.github.simplex.luck.player.PlayerHandler; import io.github.simplex.luck.player.PlayerHandler;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
@ -17,7 +18,6 @@ import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockDropItemEvent; import org.bukkit.event.block.BlockDropItemEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityDropItemEvent; import org.bukkit.event.entity.EntityDropItemEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerItemConsumeEvent; import org.bukkit.event.player.PlayerItemConsumeEvent;
@ -31,9 +31,12 @@ import java.util.Map;
import java.util.UUID; import java.util.UUID;
public record PlayerListener(FeelingLucky plugin) implements Listener { public record PlayerListener(FeelingLucky plugin) implements Listener {
private static final Map<UUID, Player> entityPlayerMap = new HashMap<>(); private static final Map<UUID, Player> entityPlayerMap = new HashMap<>();
public PlayerListener {
Bukkit.getServer().getPluginManager().registerEvents(this, plugin);
}
@EventHandler @EventHandler
public void takeDamage(EntityDamageEvent event) { public void takeDamage(EntityDamageEvent event) {
Entity entity = event.getEntity(); Entity entity = event.getEntity();
@ -187,7 +190,7 @@ public record PlayerListener(FeelingLucky plugin) implements Listener {
public void witchesBrew(EntityDamageByEntityEvent event) { public void witchesBrew(EntityDamageByEntityEvent event) {
Entity eTEMP = event.getDamager(); Entity eTEMP = event.getDamager();
Entity pTEMP = event.getEntity(); Entity pTEMP = event.getEntity();
DamageCause cause = event.getCause(); EntityDamageEvent.DamageCause cause = event.getCause();
if (!(pTEMP instanceof Player player)) { if (!(pTEMP instanceof Player player)) {
return; return;
@ -198,7 +201,7 @@ public record PlayerListener(FeelingLucky plugin) implements Listener {
} }
Luck luck = PlayerHandler.getLuckContainer(player); Luck luck = PlayerHandler.getLuckContainer(player);
if (cause.equals(DamageCause.MAGIC) || cause.equals(DamageCause.POISON)) { if (cause.equals(EntityDamageEvent.DamageCause.MAGIC) || cause.equals(EntityDamageEvent.DamageCause.POISON)) {
if (luck.quickRNG(33.0)) { if (luck.quickRNG(33.0)) {
luck.takeFrom(5.0); luck.takeFrom(5.0);
PlayerHandler.updatePlayer(player, luck); PlayerHandler.updatePlayer(player, luck);

View File

@ -1,6 +1,7 @@
package io.github.simplex.luck.player; package io.github.simplex.luck.player;
import io.github.simplex.api.LuckContainer; import io.github.simplex.api.LuckContainer;
import io.github.simplex.luck.FeelingLucky;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.attribute.Attribute; import org.bukkit.attribute.Attribute;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -36,12 +37,14 @@ public class Luck implements LuckContainer {
public static boolean quickRNG2(double percentage) { public static boolean quickRNG2(double percentage) {
double rng; double rng;
if (percentage >= 100.0) { if (percentage >= 100.0) {
rng = 100.0; // 100% chance to trigger, obviously; rng = 1024.0; // 100% chance to trigger, obviously;
} else { } else {
rng = RNG().nextDouble(0.0, 99.0); rng = RNG().nextDouble(0.0, 1024.0);
} }
return (percentage >= rng); double actual = (rng / 1024.0) * 100;
return (percentage >= actual);
} }
@Override @Override
@ -77,16 +80,18 @@ public class Luck implements LuckContainer {
public boolean quickRNG(double percentage) { public boolean quickRNG(double percentage) {
double rng; double rng;
if (percentage >= 100.0) { if (percentage >= 100.0) {
rng = 100.0; // 100% chance to trigger, obviously; rng = 1024.0; // 100% chance to trigger, obviously;
} else { } else {
rng = RNG().nextDouble(0.0, 99.0); rng = RNG().nextDouble(0.0, 1024.0);
} }
double actual = (rng / 1024) * 100;
if (multiplier() > 1.0) { if (multiplier() > 1.0) {
return ((percentage * multiplier()) >= rng); return ((percentage * multiplier()) >= actual);
} }
return (percentage >= rng); return (percentage >= actual);
} }
public void reset() { public void reset() {
@ -104,6 +109,7 @@ public class Luck implements LuckContainer {
public void setValue(double value) { public void setValue(double value) {
player.getAttribute(Attribute.GENERIC_LUCK).setBaseValue(value); player.getAttribute(Attribute.GENERIC_LUCK).setBaseValue(value);
FeelingLucky.getConfigMap().get(associatedPlayer().getUniqueId()).setLuck(value);
Bukkit.getPluginManager().callEvent(event); Bukkit.getPluginManager().callEvent(event);
} }

View File

@ -43,7 +43,7 @@ public class PlayerConfig {
String tempUsername = config.getString("username"); String tempUsername = config.getString("username");
if (tempUsername != null && tempUsername.equalsIgnoreCase("replace")) { if (tempUsername != null && !tempUsername.equalsIgnoreCase(player.getName())) {
config.set("username", player.getName()); config.set("username", player.getName());
config.set("luck", PlayerHandler.getLuckContainer(player).defaultValue()); config.set("luck", PlayerHandler.getLuckContainer(player).defaultValue());
config.set("multiplier", "1.0"); config.set("multiplier", "1.0");

View File

@ -1,6 +1,7 @@
package io.github.simplex.luck.player; package io.github.simplex.luck.player;
import io.github.simplex.luck.FeelingLucky; import io.github.simplex.luck.FeelingLucky;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@ -12,6 +13,10 @@ import java.util.List;
import java.util.Map; import java.util.Map;
public record PlayerHandler(FeelingLucky plugin) implements Listener { public record PlayerHandler(FeelingLucky plugin) implements Listener {
public PlayerHandler {
Bukkit.getServer().getPluginManager().registerEvents(this, plugin);
}
private static final Map<Player, Luck> playerLuckMap = new HashMap<>(); private static final Map<Player, Luck> playerLuckMap = new HashMap<>();
private static final List<Player> markedPlayers = new ArrayList<>(); private static final List<Player> markedPlayers = new ArrayList<>();

View File

@ -1,5 +1,6 @@
package io.github.simplex.luck.player; package io.github.simplex.luck.player;
import io.github.simplex.luck.FeelingLucky;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerEvent;