Skip to content

Commit 5670401

Browse files
committed
branch; change
1 parent dbf1546 commit 5670401

11 files changed

Lines changed: 80 additions & 12 deletions

File tree

src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/MiraculousFishingEvent.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public CustomAmbient getAmbient() {
8888
return OMCRegistry.CUSTOM_AMBIENTS.BLESSED;
8989
}
9090

91+
//todo marquer effets de la peche miraculeuse ds broadcast
9192
@Override
9293
public Component getStartBroadcast() {
9394
return TranslationManager.translation("feature.dailyevents.miraculousfishing.broadcast.start");

src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/MiraculousFishingManager.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package fr.openmc.core.features.events.contents.dailyevents.contents.miraculousfishing;
22

33
import fr.openmc.core.OMCPlugin;
4-
import fr.openmc.core.registry.loottable.loots.CustomLoot;
5-
import fr.openmc.core.registry.loottable.loots.ItemLoot;
6-
import fr.openmc.core.registry.loottable.loots.LootboxLoot;
7-
import fr.openmc.core.registry.loottable.loots.MoneyLoot;
4+
import fr.openmc.core.registry.loottable.loots.*;
85
import fr.openmc.core.utils.bukkit.SkullUtils;
96
import org.bukkit.Location;
107
import org.bukkit.NamespacedKey;
@@ -15,6 +12,8 @@
1512
import org.bukkit.persistence.PersistentDataType;
1613
import org.bukkit.util.Vector;
1714

15+
import java.util.List;
16+
1817
public class MiraculousFishingManager {
1918

2019
public static final NamespacedKey NOT_PICKUP_KEY = new NamespacedKey(OMCPlugin.getInstance(), "not_pickup");
@@ -42,7 +41,8 @@ public static void simulateLaunchLoot(Player player, Location hookLocation, Cust
4241

4342
// * Spawn de l'entité Item
4443
Item itemEntity = hookLocation.getWorld().dropItem(hookLocation, displayItem);
45-
itemEntity.setPickupDelay(Integer.MAX_VALUE);
44+
itemEntity.setCanPlayerPickup(true);
45+
itemEntity.setCanMobPickup(true);
4646
itemEntity.setGlowing(true);
4747

4848
// * Revient à faire le vecteur vitesse entre 2 vecteur (xp - xh, yp - yh, zp - zh)
@@ -58,7 +58,9 @@ public static void simulateLaunchLoot(Player player, Location hookLocation, Cust
5858
*/
5959
private static ItemStack getLaunchedItem(CustomLoot loot) {
6060
if (loot instanceof ItemLoot itemLoot) {
61-
return itemLoot.getItems().iterator().next();
61+
ItemStack item = itemLoot.getItems().iterator().next();
62+
item.setAmount(itemLoot.getRandomAmount());
63+
return item;
6264
} else if (loot instanceof MoneyLoot) {
6365
ItemStack base = SkullUtils.getCustomHead(
6466
"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWFmMGQ4ZDc5NGEzYTRhNWUyMGE1MjkyZWQyNTUxMzRmNzZkNGYzYTU1NTZmYzdmNDI2ZDI3YjI0NzQ3NGQ2NyJ9fX0=",
@@ -70,6 +72,9 @@ private static ItemStack getLaunchedItem(CustomLoot loot) {
7072
} else if (loot instanceof LootboxLoot lootboxLoot
7173
&& lootboxLoot.getLootbox().getItemDisplayed() != null) {
7274
return lootboxLoot.getLootbox().getItemDisplayed();
75+
} else if (loot instanceof TableLoot tableLoot) {
76+
List<CustomLoot> loots = tableLoot.getLootTable().rollLoots(null, false);
77+
return getLaunchedItem(loots.getFirst());
7378
}
7479

7580
return null;

src/main/java/fr/openmc/core/features/events/contents/dailyevents/contents/miraculousfishing/listeners/PlayerFishListener.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@
66
import fr.openmc.core.features.events.contents.dailyevents.contents.miraculousfishing.MiraculousFishingManager;
77
import fr.openmc.core.registry.loottable.CustomLootTable;
88
import fr.openmc.core.registry.loottable.loots.CustomLoot;
9+
import fr.openmc.core.registry.loottable.loots.MethodLoot;
10+
import fr.openmc.core.registry.loottable.loots.MoneyLoot;
11+
import fr.openmc.core.registry.loottable.loots.TableLoot;
12+
import fr.openmc.core.utils.text.messages.MessageType;
13+
import fr.openmc.core.utils.text.messages.MessagesManager;
14+
import fr.openmc.core.utils.text.messages.Prefix;
15+
import fr.openmc.core.utils.text.messages.TranslationManager;
16+
import net.kyori.adventure.text.Component;
17+
import net.kyori.adventure.text.format.NamedTextColor;
918
import org.bukkit.Sound;
1019
import org.bukkit.entity.Entity;
1120
import org.bukkit.entity.FishHook;
@@ -48,8 +57,20 @@ public void onStartFishing(PlayerFishEvent event) {
4857

4958
// * SFX
5059
// todo: sfx particle
60+
MessagesManager.sendMessage(player, TranslationManager.translation(
61+
"feature.dailyevents.miraculousfishing.loottable.get",
62+
Component.text(loots.size()).color(NamedTextColor.YELLOW)
63+
), Prefix.MIRACULOUS_FISHING, MessageType.INFO, false);
64+
5165
for (CustomLoot loot : loots) {
66+
if (loot.getDisplayText() != null)
67+
player.sendMessage(Component.text(" - ", NamedTextColor.GRAY)
68+
.append(loot.getDisplayText()));
5269
MiraculousFishingManager.simulateLaunchLoot(player, hook.getLocation(), loot);
70+
71+
if (loot instanceof MoneyLoot || loot instanceof MethodLoot || loot instanceof TableLoot) {
72+
loot.run(player);
73+
}
5374
}
5475
}
5576
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package fr.openmc.core.registry.loottable.loots;
22

3+
import net.kyori.adventure.text.Component;
34
import org.bukkit.entity.Player;
45

56
public interface CustomLoot {
7+
Component getDisplayText();
68
double getChance();
79
void run(Player receiver);
810
}

src/main/java/fr/openmc/core/registry/loottable/loots/ItemLoot.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import fr.openmc.core.registry.items.CustomItem;
44
import lombok.Getter;
5+
import net.kyori.adventure.text.Component;
56
import org.bukkit.Material;
67
import org.bukkit.entity.Player;
78
import org.bukkit.inventory.ItemStack;
@@ -101,6 +102,12 @@ public int getRandomAmount() {
101102
return minAmount + (int) (Math.random() * (maxAmount - minAmount + 1));
102103
}
103104

105+
@Override
106+
public Component getDisplayText() {
107+
System.out.println(getFirstLoot());
108+
return getFirstLoot().displayName();
109+
}
110+
104111
@Override
105112
public void run(Player receiver) {
106113
for (ItemStack lootItem : this.getItems()) {

src/main/java/fr/openmc/core/registry/loottable/loots/LootboxLoot.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import fr.openmc.core.registry.lootboxes.CustomLootbox;
44
import lombok.Getter;
5+
import net.kyori.adventure.text.Component;
56
import org.bukkit.entity.Player;
67

78
@Getter
@@ -14,6 +15,11 @@ public LootboxLoot(CustomLootbox lootbox, double chance) {
1415
this.lootbox = lootbox;
1516
}
1617

18+
@Override
19+
public Component getDisplayText() {
20+
return lootbox.getName();
21+
}
22+
1723
@Override
1824
public void run(Player receiver) {
1925
lootbox.open(receiver);

src/main/java/fr/openmc/core/registry/loottable/loots/MethodLoot.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,28 @@
11
package fr.openmc.core.registry.loottable.loots;
22

33
import lombok.Getter;
4+
import net.kyori.adventure.text.Component;
45
import org.bukkit.entity.Player;
56

67
import java.util.function.Consumer;
78

89
@Getter
910
public class MethodLoot implements CustomLoot {
11+
private final Component text;
1012
private final double chance;
1113
private final Consumer<Player> receiverAction;
1214

13-
public MethodLoot(Consumer<Player> receiverAction, double chance) {
15+
public MethodLoot(Component text, Consumer<Player> receiverAction, double chance) {
16+
this.text = text;
1417
this.chance = chance;
1518
this.receiverAction = receiverAction;
1619
}
1720

21+
@Override
22+
public Component getDisplayText() {
23+
return text;
24+
}
25+
1826
@Override
1927
public void run(Player receiver) {
2028
receiverAction.accept(receiver);

src/main/java/fr/openmc/core/registry/loottable/loots/MoneyLoot.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,23 @@
22

33
import fr.openmc.core.features.economy.EconomyManager;
44
import fr.openmc.core.utils.RandomUtils;
5+
import net.kyori.adventure.text.Component;
6+
import net.kyori.adventure.text.format.NamedTextColor;
57
import org.bukkit.entity.Player;
68

79

8-
public record MoneyLoot(double money, double getChance) implements CustomLoot {
9-
public MoneyLoot(double minMoney, double maxMoney, double chance) {
10+
public record MoneyLoot(int money, double getChance) implements CustomLoot {
11+
public MoneyLoot(int minMoney, int maxMoney, double chance) {
1012
this(RandomUtils.randomBetween(minMoney, maxMoney), chance);
1113
}
1214

15+
@Override
16+
public Component getDisplayText() {
17+
return Component.text(money, NamedTextColor.GOLD)
18+
.appendSpace()
19+
.append(Component.text(EconomyManager.getEconomyIcon()));
20+
}
21+
1322
@Override
1423
public void run(Player receiver) {
1524
EconomyManager.addBalance(receiver.getUniqueId(), money);

src/main/java/fr/openmc/core/registry/loottable/loots/TableLoot.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import fr.openmc.core.registry.loottable.CustomLootTable;
44
import lombok.Getter;
5+
import net.kyori.adventure.text.Component;
56
import org.bukkit.entity.Player;
67

78
@Getter
@@ -14,6 +15,11 @@ public TableLoot(CustomLootTable lootTable, double chance) {
1415
this.lootTable = lootTable;
1516
}
1617

18+
@Override
19+
public Component getDisplayText() {
20+
return null;
21+
}
22+
1723
@Override
1824
public void run(Player receiver) {
1925
lootTable.rollLoots(receiver);

src/main/java/fr/openmc/core/utils/text/messages/Prefix.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ public enum Prefix {
3131
MILLESTONE("<gradient:#A2D182:#B8E89D>ᴍɪʟʟᴇѕᴛᴏɴᴇ</gradient>"),
3232
DREAM("<gradient:#4498DB:#412AEF>ᴅʀᴇᴀᴍ</gradient>"),
3333
MAILBOX("<gradient:#2C43C4:#6A76D9>ᴍᴀɪʟʙᴏx</gradient>"),
34-
HALLOWEEN("<gradient:#FF7518:#FFD580>ʜᴀʟʟᴏᴡᴇᴇɴ</gradient>")
34+
HALLOWEEN("<gradient:#FF7518:#FFD580>ʜᴀʟʟᴏᴡᴇᴇɴ</gradient>"),
35+
MIRACULOUS_FISHING("<gradient:#4498DB:#0FB590>ᴘᴇᴄʜᴇ ᴍɪʀᴀᴄᴜʟᴇ</gradient><gradient:#0FB590:#0FB590>ᴜѕᴇ</gradient>")
3536
;
3637

3738
@Getter

0 commit comments

Comments
 (0)