Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ public void complete(Player winner) {
else
loot = reward.rollLoots(winner);

this.stop();
ChatAnimationManager.onAnimationCompleted(this, winner, loot);
this.stop();
}

public final boolean isFinished() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,8 @@ protected BossBar.Overlay style(Player player) {
@Override
protected boolean shouldDisplay(Player player) {
return DailyEventsManager.isActiveDailyEvent()
&& DailyEventsManager.getActiveDailyEvent() instanceof HasBossBar;
&& DailyEventsManager.getActiveDailyEvent() instanceof HasBossBar
&& player.getWorld().getName().equals(DailyEventsManager.getActiveDailyEvent().getWorldEvent());
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package fr.openmc.core.features.events.contents.dailyevents.listeners;

import fr.openmc.core.features.events.contents.dailyevents.DailyEventsManager;
import fr.openmc.core.features.events.contents.dailyevents.models.ScheduleDailyEvent;
import fr.openmc.core.features.events.contents.dailyevents.models.dailyevent.DailyEvent;
import fr.openmc.core.features.events.contents.dailyevents.models.dailyevent.HasAmbient;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChangedWorldEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerTeleportEvent;

/**
* Classe gérant l'application des ambiences dans les événements journalier
Expand All @@ -16,24 +17,27 @@ public class DailyEventAmbientListeners implements Listener {
@EventHandler
public void onJoin(PlayerJoinEvent event) {
if (!DailyEventsManager.isActiveDailyEvent()) return;

DailyEvent dailyEvent = DailyEventsManager.outgoingEvent.getDailyEvent();

if (!event.getPlayer().getWorld().getName().equals(dailyEvent.getWorldEvent())) return;
if (!(dailyEvent instanceof HasAmbient hasAmbient)) return;

hasAmbient.apply(event.getPlayer(), true);
}

@EventHandler
public void onChangeWorld(PlayerTeleportEvent event) {
public void onChangeWorld(PlayerChangedWorldEvent event) {
if (!DailyEventsManager.isActiveDailyEvent()) return;

DailyEvent dailyEvent = DailyEventsManager.outgoingEvent.getDailyEvent();
ScheduleDailyEvent scheduleDailyEvent = DailyEventsManager.outgoingEvent;

if (!(dailyEvent instanceof HasAmbient hasAmbient)) return;
if (scheduleDailyEvent == null) return;
DailyEvent dailyEvent = scheduleDailyEvent.getDailyEvent();
if (dailyEvent == null) return;

if (dailyEvent.getWorldEvent().equals(event.getFrom().getWorld().getName())) return;
if (!dailyEvent.getWorldEvent().equals(event.getTo().getWorld().getName())) return;
if (!(dailyEvent instanceof HasAmbient hasAmbient)) return;
if (dailyEvent.getWorldEvent().equals(event.getFrom().getName())) return;
if (!dailyEvent.getWorldEvent().equals(event.getPlayer().getWorld().getName())) return;

hasAmbient.apply(event.getPlayer());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ public LootReward rollLoots(Player receiver) {
List<CustomLoot> guaranted = this.getLoots().stream()
.filter(loot -> loot.getChance() >= 1.0)
.toList();

for (CustomLoot loot : guaranted) {
loot.run(receiver);
}

List<CustomLoot> result = new ArrayList<>(guaranted);
List<CustomLoot> remaining = new ArrayList<>(this.getLoots().stream()
.filter(loot -> loot.getChance() < 1.0).toList());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package fr.openmc.core.registry.loottable;

import fr.openmc.core.registry.loottable.loots.CustomLoot;
import fr.openmc.core.registry.loottable.loots.ItemLoot;
import net.kyori.adventure.text.Component;

import java.util.Collection;
Expand All @@ -19,7 +20,11 @@ public Component buildComponent() {
Component component = null;

for (CustomLoot loot : loots) {
Component lootComponent = loot.buildLootComponent(-1);
int amount = -1;
if (loot instanceof ItemLoot itemLoot) {
amount = itemLoot.getRepresentativeItem().getAmount();
}
Component lootComponent = loot.buildLootComponent(amount);
if (lootComponent == null) continue;

if (component == null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import java.util.function.Predicate;
import java.util.function.Supplier;

// todo: enlever le concept d'avoir plusieurs items en une entrée
@Getter
public class ItemLoot implements CustomLoot, RepresentedItem {
@Setter
Expand Down Expand Up @@ -173,6 +174,7 @@ public ItemStack getFirstLoot() {
}

public int getRandomAmount() {
if (minAmount == maxAmount) return minAmount;
return minAmount + (int) (Math.random() * (maxAmount - minAmount + 1));
}

Expand Down
Loading