Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/main/java/fr/openmc/core/OMCPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ public void loadWithItemsAdder() {
WeeklyEventsManager.init();
DreamManager.init();
MultiBlockManager.init();
MilestonesManager.init();
if (WorldGuardHook.isHasWorldGuard()) {
ParticleUtils.spawnParticlesInRegion("spawn", Bukkit.getWorld("world"), Particle.CHERRY_LEAVES, 50, 70, 130);
ParticleUtils.spawnContestParticlesInRegion("spawn", Bukkit.getWorld("world"), 10, 70, 135);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
public class CityMilestoneCommands {
@Command({"city milestone", "ville milestone"})
@CommandPermission("omc.commands.city.milestone")
@Description("Ouvre le menu des maires")
@Description("Ouvre le menu du milestone de ville")
void milestone(Player sender) {
City playerCity = CityManager.getPlayerCity(sender.getUniqueId());

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package fr.openmc.core.features.cube.events;

import fr.openmc.core.features.cube.Cube;
import lombok.Getter;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.NotNull;

@Getter
public class EnterCubeZoneEvent extends PlayerEvent {
private static final HandlerList HANDLERS = new HandlerList();
private final Cube cube;

public EnterCubeZoneEvent(@NotNull Player player, Cube cube) {
super(player);
this.cube = cube;
}

public static HandlerList getHandlerList() {
return HANDLERS;
}

@Override
public @NotNull HandlerList getHandlers() {
return HANDLERS;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package fr.openmc.core.features.cube.events;

import lombok.Getter;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.NotNull;

@Getter
public class ExitCubeZoneEvent extends PlayerEvent {
private static final HandlerList HANDLERS = new HandlerList();

public ExitCubeZoneEvent(@NotNull Player player) {
super(player);
}

public static HandlerList getHandlerList() {
return HANDLERS;
}

@Override
public @NotNull HandlerList getHandlers() {
return HANDLERS;
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package fr.openmc.core.features.cube.listeners;

import fr.openmc.core.features.cube.Cube;
import fr.openmc.core.features.cube.events.EnterCubeZoneEvent;
import fr.openmc.core.features.cube.events.ExitCubeZoneEvent;
import fr.openmc.core.features.cube.multiblocks.MultiBlock;
import fr.openmc.core.features.cube.multiblocks.MultiBlockManager;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
Expand Down Expand Up @@ -53,17 +56,19 @@ public void onPlayerEnterAndLeaveBubble(PlayerMoveEvent event) {
Player player = event.getPlayer();

boolean insideAny = false;
Cube cube = null;

for (MultiBlock mb : MultiBlockManager.getMultiBlocks()) {
if (!(mb instanceof Cube cube)) continue;
if (cube.corruptedBubbleTask == null) continue;
if (!(mb instanceof Cube loopCube)) continue;
if (loopCube.corruptedBubbleTask == null) continue;

Location center = cube.getCenter();
double radius = cube.RADIUS_BUBBLE;
Location center = loopCube.getCenter();
double radius = loopCube.RADIUS_BUBBLE;

if (!player.getWorld().equals(center.getWorld())) continue;

if (player.getLocation().distance(center) <= radius) {
cube = loopCube;
insideAny = true;
break;
}
Expand All @@ -78,10 +83,12 @@ public void onPlayerEnterAndLeaveBubble(PlayerMoveEvent event) {
playersInBubble.add(uuid);
attr.setBaseValue(0.04);
player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP_BOOST, Integer.MAX_VALUE, 2, true, false, true));
Bukkit.getPluginManager().callEvent(new EnterCubeZoneEvent(player, cube));
} else if (!insideAny && playersInBubble.contains(uuid)) {
playersInBubble.remove(uuid);
attr.setBaseValue(0.08);
player.removePotionEffect(PotionEffectType.JUMP_BOOST);
Bukkit.getPluginManager().callEvent(new ExitCubeZoneEvent(player));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;

import javax.annotation.Nullable;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
Expand Down Expand Up @@ -118,4 +119,13 @@ public static void register(MultiBlock multiBlock) {

save();
}

public static @Nullable MultiBlock getMultiblockAtDimension(String worldName) {
for (MultiBlock multiBlock : multiBlocks) {
if (multiBlock.origin.getWorld().getName().equals(worldName)) {
return multiBlock;
}
}
return null;
}
}
21 changes: 20 additions & 1 deletion src/main/java/fr/openmc/core/features/dream/DreamManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
import fr.openmc.core.features.dream.listeners.others.PlayerEatSomnifere;
import fr.openmc.core.features.dream.listeners.others.SingularityCraftListener;
import fr.openmc.core.features.dream.listeners.registry.DreamItemEquipListener;
import fr.openmc.core.features.dream.listeners.strctures.PlayerEnterStructureListener;
import fr.openmc.core.features.dream.listeners.strctures.PlayerExitStructureListener;
import fr.openmc.core.features.dream.mecanism.cloudfishing.CloudFishingManager;
import fr.openmc.core.features.dream.mecanism.cold.ColdManager;
import fr.openmc.core.features.dream.mecanism.metaldetector.MetalDetectorManager;
Expand All @@ -49,6 +51,8 @@
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;

public class DreamManager {
Expand All @@ -59,6 +63,7 @@ public class DreamManager {

private static final HashMap<UUID, DreamPlayer> dreamPlayerData = new HashMap<>();
public static final HashMap<UUID, DBDreamPlayer> cacheDreamPlayer = new HashMap<>();
public static final Set<Player> dreamMilestoneDialogPlayer = new HashSet<>();

private static Dao<DBDreamPlayer, String> dreamPlayerDao;
private static Dao<DBPlayerSave, String> savePlayerDao;
Expand All @@ -81,7 +86,9 @@ public static void init() {
new CloudStructureDispenserListener(),
new CraftingConvertorListener(),
new DreamItemEquipListener(),
new SingularityCraftListener()
new SingularityCraftListener(),
new PlayerEnterStructureListener(),
new PlayerExitStructureListener()
);

// ** MANAGERS **
Expand Down Expand Up @@ -321,6 +328,18 @@ public static void preloadSavePlayer(Player player, Location dreamLocation) thro
)
);
}

public static void addMilestoneDialogPlayer(Player player) {
dreamMilestoneDialogPlayer.add(player);
}

public static void removeMilestoneDialogPlayer(Player player) {
dreamMilestoneDialogPlayer.remove(player);
}

public static boolean isPlayerInMilestoneDialog(Player player) {
return dreamMilestoneDialogPlayer.contains(player);
}

public static void setMaxTime(Player player, long maxTime) {
DBDreamPlayer cache = DreamManager.getCacheDreamPlayer(player);
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/fr/openmc/core/features/dream/DreamUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import fr.openmc.core.utils.messages.MessagesManager;
import fr.openmc.core.utils.messages.Prefix;
import net.kyori.adventure.text.Component;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -42,9 +43,9 @@ public static void addDreamTime(Player player, Long timeToAdd, boolean sendMessa
public static void removeDreamTime(Player player, Long timeToRemove, boolean sendMessage) {
DreamPlayer dreamPlayer = DreamManager.getDreamPlayer(player);
if (dreamPlayer == null) return;
if (player.getGameMode().equals(GameMode.CREATIVE)) return;
dreamPlayer.removeTime(timeToRemove);
if (sendMessage)
MessagesManager.sendMessage(player, Component.text("Vous avez perdu §a" + DateUtils.convertSecondToTime(timeToRemove) + " §fcar vous avez pris des dégats !"), Prefix.DREAM, MessageType.WARNING, false);

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package fr.openmc.core.features.dream.events;

import fr.openmc.core.features.dream.mecanism.altar.AltarRecipes;
import fr.openmc.core.features.dream.models.registry.items.DreamItem;
import lombok.Getter;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.NotNull;

@Getter
public class AltarBindEvent extends PlayerEvent {
private static final HandlerList HANDLERS = new HandlerList();
private final DreamItem item;
private final AltarRecipes recipe;
private final Location altarLocation;

public AltarBindEvent(Player player, DreamItem item, AltarRecipes recipe, Location altarLocation) {
super(player);
this.item = item;
this.recipe = recipe;
this.altarLocation = altarLocation;
}

public static HandlerList getHandlerList() {
return HANDLERS;
}

@Override
public @NotNull HandlerList getHandlers() {
return HANDLERS;
}
}
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
package fr.openmc.core.features.dream.mecanism.altar;
package fr.openmc.core.features.dream.events;

import fr.openmc.core.features.dream.mecanism.altar.AltarRecipes;
import fr.openmc.core.features.dream.models.registry.items.DreamItem;
import lombok.Getter;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.NotNull;

@Getter
public class AltarCraftingEvent extends Event {
public class AltarCraftingEvent extends PlayerEvent {
private static final HandlerList HANDLERS = new HandlerList();
private final Player player;
private final AltarRecipes recipe;
private final DreamItem craftedItem;

/**
* @param player The player whose dream time has ended
*/
public AltarCraftingEvent(Player player, DreamItem craftItem) {
this.player = player;

public AltarCraftingEvent(Player player, AltarRecipes recipe, DreamItem craftItem) {
super(player);
this.recipe = recipe;
this.craftedItem = craftItem;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,19 @@

import lombok.Getter;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.NotNull;

@Getter
public class DreamEndEvent extends Event {
public class DreamEndEvent extends PlayerEvent {
private static final HandlerList HANDLERS = new HandlerList();
private final Player player;

/**
* @param player The player whose dream time has ended
*/
public DreamEndEvent(Player player) {
this.player = player;
super(player);
}

public static HandlerList getHandlerList() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package fr.openmc.core.features.dream.events;

import lombok.Getter;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.NotNull;

@Getter
public class DreamEnterEvent extends PlayerEvent {
private static final HandlerList HANDLERS = new HandlerList();

/**
* @param player The player whose enter in his dream
*/
public DreamEnterEvent(Player player) {
super(player);
}

public static HandlerList getHandlerList() {
return HANDLERS;
}

@Override
public @NotNull HandlerList getHandlers() {
return HANDLERS;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,20 @@
import fr.openmc.core.features.dream.mecanism.tradernpc.GlaciteTrade;
import lombok.Getter;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.NotNull;

@Getter
public class GlaciteTradeEvent extends Event {
public class GlaciteTradeEvent extends PlayerEvent {
private static final HandlerList HANDLERS = new HandlerList();
private final Player player;
private final GlaciteTrade trade;

/**
* @param player The player whose dream time has ended
*/
public GlaciteTradeEvent(Player player, GlaciteTrade trade) {
this.player = player;
super(player);
this.trade = trade;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,24 @@

import lombok.Getter;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;

import java.util.List;

@Getter
public class MetalDetectorLootEvent extends Event {
public class MetalDetectorLootEvent extends PlayerEvent {
private static final HandlerList HANDLERS = new HandlerList();
private final Player player;
private final List<ItemStack> loot;

/**
* @param player The player who found the loot.
* @param loot The list of ItemStack representing the loot found.
*/
public MetalDetectorLootEvent(Player player, List<ItemStack> loot) {
this.player = player;
super(player);
this.loot = loot;
}

Expand Down
Loading
Loading