Page MenuHomeDevCentral

No OneTemporary

diff --git a/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/SuhaylPlugin.java b/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/SuhaylPlugin.java
index 8e9a359..877c2f0 100644
--- a/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/SuhaylPlugin.java
+++ b/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/SuhaylPlugin.java
@@ -1,94 +1,97 @@
package org.eu.loupsgris.quilvaryn;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import org.eu.loupsgris.quilvaryn.commands.RegionCommand;
import org.eu.loupsgris.quilvaryn.config.SuhaylConfig;
import org.eu.loupsgris.quilvaryn.config.SuhaylTranslationRegistry;
import org.eu.loupsgris.quilvaryn.items.CommandmentStick;
import org.eu.loupsgris.quilvaryn.items.Quill;
import org.eu.loupsgris.quilvaryn.listeners.*;
import org.eu.loupsgris.quilvaryn.services.WanderingTraderService;
import org.eu.loupsgris.quilvaryn.utils.ResourceLoader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;
public class SuhaylPlugin extends JavaPlugin {
public SuhaylConfig config;
public static final String NAMESPACE = "suhayl";
@Override
public void onEnable() {
config = loadConfig();
loadTranslationRegistry();
// Register features
- Bukkit.getPluginManager().registerEvents(new OptimizedWeather(this), this);
- Bukkit.getPluginManager().registerEvents(new HappyGhastBehavior(this), this);
+ Bukkit.getPluginManager().registerEvents(new OptimizedWeather(config), this);
+
+ HappyGhastBehavior listener = new HappyGhastBehavior(getLogger(), config);
+ Bukkit.getPluginManager().registerEvents(listener, this);
+
Bukkit.getPluginManager().registerEvents(new SafeSleep(), this);
Bukkit.getPluginManager().registerEvents(new SaddleBehavior(), this);
registerCommandmentStick();
registerQuill();
// Commands
getCommand("region").setExecutor(new RegionCommand());
}
private SuhaylConfig loadConfig() {
File configFile = new File(getDataFolder(), "config.yml");
if (!configFile.exists()) {
return SuhaylConfig.byDefault();
}
getLogger().info("Loading custom " + configFile.getName());
return SuhaylConfig.Load(this.getConfig());
}
private void loadTranslationRegistry() {
ResourceLoader loader = path -> {
InputStream stream = this.getResource(path);
if (stream == null) {
throw new FileNotFoundException(path);
}
return stream;
};
SuhaylTranslationRegistry registry = new SuhaylTranslationRegistry(
getLogger(),
loader
);
registry.load();
}
private void registerCommandmentStick() {
WanderingTraderService service = new WanderingTraderService(config, getLogger());
WanderingTraderBehavior listener = new WanderingTraderBehavior(service);
Bukkit.getPluginManager().registerEvents(listener, this);
Bukkit.addRecipe(CommandmentStick.getRecipe());
}
private void registerQuill() {
Bukkit.getPluginManager().registerEvents(new QuillBehavior(), this);
Bukkit.addRecipe(Quill.getRecipe());
}
@Override
public void onDisable() {
getLogger().info("Suhayl quality of life plugin disabled.");
}
}
diff --git a/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/listeners/HappyGhastBehavior.java b/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/listeners/HappyGhastBehavior.java
index 93ed764..fc34189 100644
--- a/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/listeners/HappyGhastBehavior.java
+++ b/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/listeners/HappyGhastBehavior.java
@@ -1,96 +1,96 @@
package org.eu.loupsgris.quilvaryn.listeners;
import org.bukkit.attribute.Attribute;
import org.bukkit.entity.Entity;
import org.bukkit.entity.HappyGhast;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.Snowball;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDismountEvent;
import org.bukkit.event.entity.EntityMountEvent;
import org.bukkit.event.entity.EntityRegainHealthEvent;
import org.bukkit.event.entity.ProjectileHitEvent;
import org.eu.loupsgris.quilvaryn.SuhaylPlugin;
import org.eu.loupsgris.quilvaryn.config.SuhaylConfig;
import org.eu.loupsgris.quilvaryn.utils.EntityUtils;
import java.util.Optional;
import java.util.logging.Logger;
public class HappyGhastBehavior implements Listener {
private final Logger logger;
private final SuhaylConfig config;
public static final double DEFAULT_HAPPY_GHAST_SPEED = 0.05;
- public HappyGhastBehavior(SuhaylPlugin plugin) {
- this.logger = plugin.getLogger();
- this.config = plugin.config;
+ public HappyGhastBehavior(Logger logger, SuhaylConfig config) {
+ this.logger = logger;
+ this.config = config;
}
private double computeSpeed () {
return DEFAULT_HAPPY_GHAST_SPEED * config.happyGhastSpeedBoost;
}
private void updateSpeed (HappyGhast ghast, double speed) {
var attribute = ghast.getAttribute(Attribute.FLYING_SPEED);
if (attribute == null) {
logger.warning("HappyGhast flying speed attribute is null, can't update speed.");
return;
}
attribute.setBaseValue(speed);
}
@EventHandler
public void onHappyGhastMount(EntityMountEvent event) {
Entity entity = event.getMount();
if (!(entity instanceof HappyGhast ghast)) {
return;
}
updateSpeed(ghast, computeSpeed());
}
@EventHandler
public void onHappyGhastDismount(EntityDismountEvent event) {
Entity entity = event.getDismounted();
if (!(entity instanceof HappyGhast ghast)) {
return;
}
updateSpeed(ghast, DEFAULT_HAPPY_GHAST_SPEED);
}
/**
* Heals happy ghast on snowball hit
*/
@EventHandler
public void onSnowballReceived(ProjectileHitEvent event) {
Entity entity = event.getHitEntity();
if (!(entity instanceof HappyGhast ghast)) {
return;
}
Projectile projectile = event.getEntity();
if (!(projectile instanceof Snowball)) {
return;
}
event.setCancelled(true);
Optional<Double> maxHealth = EntityUtils.getMaxHealth(ghast);
if (maxHealth.isEmpty()) {
return;
}
if (ghast.getHealth() < maxHealth.get()) {
ghast.heal(4.0, EntityRegainHealthEvent.RegainReason.EATING);
}
}
}
diff --git a/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/listeners/OptimizedWeather.java b/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/listeners/OptimizedWeather.java
index de20d77..3951e99 100644
--- a/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/listeners/OptimizedWeather.java
+++ b/plugins/suhayl/src/main/java/org/eu/loupsgris/quilvaryn/listeners/OptimizedWeather.java
@@ -1,33 +1,33 @@
package org.eu.loupsgris.quilvaryn.listeners;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.weather.WeatherChangeEvent;
import org.eu.loupsgris.quilvaryn.SuhaylPlugin;
import org.eu.loupsgris.quilvaryn.config.SuhaylConfig;
import java.util.Random;
public class OptimizedWeather implements Listener {
private final Random random;
private final SuhaylConfig config;
- public OptimizedWeather(SuhaylPlugin plugin) {
- this.config = plugin.config;
+ public OptimizedWeather(SuhaylConfig config) {
+ this.config = config;
this.random = new Random();
}
@EventHandler
public void onWeatherChange(WeatherChangeEvent event) {
// When the weather is about to start raining,
// cancel it when below the rate.
if (event.toWeatherState()) {
if (random.nextDouble() < config.rainRate) {
event.setCancelled(true);
}
}
}
}

File Metadata

Mime Type
text/x-diff
Expires
Wed, Mar 18, 12:26 (23 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3539636
Default Alt Text
(8 KB)

Event Timeline