Skip to content

Commit ca07642

Browse files
committed
fix もとにもどす
1 parent 019c852 commit ca07642

File tree

1 file changed

+183
-6
lines changed

1 file changed

+183
-6
lines changed

src/main/java/com/github/elic0de/hungergames/listener/EventListener.java

Lines changed: 183 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55
import com.github.elic0de.hungergames.game.HungerGame;
66
import com.github.elic0de.hungergames.game.phase.InGamePhase;
77
import com.github.elic0de.hungergames.game.phase.WaitingPhase;
8+
import com.github.elic0de.hungergames.modifier.ModifierManager;
9+
import com.github.elic0de.hungergames.modifier.modifiers.GameModifier;
810
import com.github.elic0de.hungergames.user.GameUser;
911
import com.github.elic0de.hungergames.user.GameUserManager;
1012
import de.themoep.minedown.MineDown;
1113
import net.md_5.bungee.api.ChatMessageType;
1214
import net.md_5.bungee.api.chat.ComponentBuilder;
13-
import org.bukkit.ChatColor;
14-
import org.bukkit.GameMode;
15-
import org.bukkit.Location;
16-
import org.bukkit.Material;
15+
import org.bukkit.*;
1716
import org.bukkit.block.Block;
1817
import org.bukkit.block.BlockFace;
1918
import org.bukkit.entity.Arrow;
@@ -29,15 +28,191 @@
2928
import org.bukkit.event.entity.PlayerDeathEvent;
3029
import org.bukkit.event.player.*;
3130
import org.bukkit.inventory.ItemStack;
31+
import org.bukkit.scheduler.BukkitRunnable;
3232
import org.spigotmc.event.entity.EntityDismountEvent;
3333

34+
import java.util.ArrayList;
35+
import java.util.Arrays;
36+
import java.util.List;
37+
import java.util.Random;
38+
3439
public class EventListener implements Listener {
3540

3641
private final HungerGame game = HungerGames.getInstance().getGame();
3742

3843
@EventHandler
3944
private void onJoin(PlayerJoinEvent event) {
4045
game.join(GameUserManager.getGameUser(event.getPlayer()));
46+
//GameUserManager.getGameUser(event.getPlayer()).sendTitle("&c[ Game Modifier ]", "A game modifier is being picked!");
47+
new ModifierManager(game).modify();
48+
//startSlotAnimationTitle(event.getPlayer());
49+
//startGameModifierAnimation(event.getPlayer(), List.of("Magic Power", "UHC True", "Flower Power"));
50+
/* sendAnimatedTitle(event.getPlayer(), new String[]{
51+
"&c[ Game Modifier ]",
52+
"&6[ Game Modifier ]",
53+
"&c[ Game Modifier ]",
54+
"&6[ Game Modifier ]",
55+
"&c[ Game Modifier ]",
56+
"&6[ Game Modifier ]",
57+
"&c[ Game Modifier ]",
58+
"&6[ Game Modifier ]",
59+
"&c[ Game Modifier ]",
60+
"&6[ Game Modifier ]",
61+
"&c[ Game Modifier ]",
62+
"&6[ Game Modifier ]",
63+
"&c[ Game Modifier ]",
64+
"&c[ Game Modifier ]",
65+
"&6[ Game Modifier ]",
66+
"&c[ Game Modifier ]",
67+
"&6[ Game Modifier ]",
68+
"&c[ Game Modifier ]",
69+
"&6[ Game Modifier ]",
70+
"&c[ Game Modifier ]",
71+
"&6[ Game Modifier ]",
72+
"&c[ Game Modifier ]",
73+
"&6[ Game Modifier ]",
74+
"&c[ Game Modifier ]",
75+
"&6[ Game Modifier ]",
76+
"&c[ Game Modifier ]",
77+
"&6[ Game Modifier ]",
78+
"&c[ Game Modifier ]",
79+
"&6[Game Modifier]",
80+
}, 2);*/
81+
/* sendRandomRouletteTitle(event.getPlayer(), new String[]{
82+
"&c[ Game Modifier ]",
83+
"&6[ Game Modifier ]",
84+
"&c[ Game Modifier ]",
85+
"&6[ Game Modifier ]",
86+
"&c[ Game Modifier ]",
87+
"&6[ Game Modifier ]",
88+
"&c[ Game Modifier ]",
89+
"&6[ Game Modifier ]",
90+
"&c[ Game Modifier ]",
91+
"&6[ Game Modifier ]",
92+
"&c[ Game Modifier ]",
93+
"&6[ Game Modifier ]",
94+
"&c[ Game Modifier ]",
95+
"&c[ Game Modifier ]",
96+
"&6[ Game Modifier ]",
97+
"&c[ Game Modifier ]",
98+
"&6[ Game Modifier ]",
99+
"&c[ Game Modifier ]",
100+
"&6[ Game Modifier ]",
101+
"&c[ Game Modifier ]",
102+
"&6[ Game Modifier ]",
103+
"&c[ Game Modifier ]",
104+
"&6[ Game Modifier ]",
105+
"&c[ Game Modifier ]",
106+
"&6[ Game Modifier ]",
107+
"&c[ Game Modifier ]",
108+
"&6[ Game Modifier ]",
109+
"&c[ Game Modifier ]",
110+
"&6[Game Modifier]",
111+
}, 2,10);*/
112+
}
113+
114+
public void sendRandomRouletteTitle(Player player, String[] frames, int minCycles, int maxCycles) {
115+
int cycleCount = new Random().nextInt(maxCycles - minCycles + 1) + minCycles;
116+
117+
new BukkitRunnable() {
118+
int frameIndex = 0;
119+
int cyclesCompleted = 0;
120+
int delay = 5;
121+
122+
@Override
123+
public void run() {
124+
if (cyclesCompleted >= cycleCount) {
125+
player.sendTitle(frames[frameIndex], null, 0, 70, 0);
126+
this.cancel();
127+
} else {
128+
if (delay <= 0) {
129+
player.sendTitle(frames[frameIndex], null, 0, 70, 0);
130+
131+
frameIndex++;
132+
if (frameIndex >= frames.length) {
133+
frameIndex = 0;
134+
cyclesCompleted++;
135+
}
136+
137+
delay = 5;
138+
} else {
139+
player.sendTitle(frames[new Random().nextInt(frames.length)], null, 0, 70, 0);
140+
delay--;
141+
}
142+
}
143+
}
144+
}.runTaskTimer(HungerGames.getInstance(), 0L, 1L);
145+
}
146+
private void sendAnimatedTitle(Player player, String[] frames, int delay) {
147+
new BukkitRunnable() {
148+
int frame = 0;
149+
150+
@Override
151+
public void run() {
152+
player.sendTitle(ChatColor.translateAlternateColorCodes('&', frames[frame]), "A game modifier is being picked!", 0, 70, 0);
153+
//player.playSound(player.getLocation(), Sound.BLOCK_PISTON_EXTEND, 1f, 1f);
154+
frame++;
155+
156+
if (frame == frames.length) {
157+
cancel();
158+
}
159+
}
160+
}.runTaskTimer(HungerGames.getInstance(), 0L, delay);
161+
}
162+
163+
public void startGameModifierAnimation(Player player, List<String> modifiers) {
164+
List<String> colors = Arrays.asList("§a", "§e", "§c"); // Green, Yellow, Red
165+
List<String> frames = new ArrayList<>();
166+
167+
// Generate the animation frames
168+
for (String modifier : modifiers) {
169+
String color = colors.get(new Random().nextInt(colors.size()));
170+
String frame = color + modifier;
171+
frames.add(frame);
172+
}
173+
174+
new BukkitRunnable() {
175+
int frameIndex = 0;
176+
177+
@Override
178+
public void run() {
179+
player.sendTitle(frames.get(frameIndex), null, 0, 20, 0);
180+
181+
frameIndex++;
182+
if (frameIndex >= frames.size()) {
183+
frameIndex = 0;
184+
}
185+
}
186+
}.runTaskTimer(HungerGames.getInstance(), 0L, 10L);
187+
}
188+
189+
public void startSlotAnimationTitle(Player player) {
190+
List<String> symbols = Arrays.asList("§b§l⬛", "§6§l⬛", "§f§l⬛"); // Diamond, Gold, Iron
191+
List<String> frames = Arrays.asList(
192+
symbols.get(0) + " " + symbols.get(1) + " " + symbols.get(2),
193+
symbols.get(1) + " " + symbols.get(2) + " " + symbols.get(0),
194+
symbols.get(2) + " " + symbols.get(0) + " " + symbols.get(1)
195+
);
196+
197+
new BukkitRunnable() {
198+
int frameIndex = 0;
199+
int cycles = new Random().nextInt(3) + 3; // Random cycle count between 3 and 5
200+
201+
@Override
202+
public void run() {
203+
player.sendTitle("§6§lSLOTS", frames.get(frameIndex), 0, 20, 0);
204+
205+
frameIndex++;
206+
if (frameIndex >= frames.size()) {
207+
frameIndex = 0;
208+
cycles--;
209+
210+
if (cycles <= 0) {
211+
cancel();
212+
}
213+
}
214+
}
215+
}.runTaskTimer(HungerGames.getInstance(), 0L, 5L);
41216
}
42217

43218
@EventHandler
@@ -102,8 +277,10 @@ private void onDismount(EntityDismountEvent event) {
102277
private void onMove(PlayerMoveEvent event) {
103278
final Player player = event.getPlayer();
104279
if (event.getFrom().getBlock().getRelative(BlockFace.DOWN).getType() == Material.AIR && event.getTo().getBlock().getRelative(BlockFace.DOWN).getType() != Material.AIR) {
105-
if (player.getInventory().contains(Material.ELYTRA)) {
106-
player.getInventory().remove(Material.ELYTRA);
280+
final ItemStack chestPlate = player.getInventory().getChestplate();
281+
if (chestPlate == null) return;
282+
if (chestPlate.getType() == Material.ELYTRA) {
283+
player.getInventory().setChestplate(null);
107284
player.getInventory().addItem(ItemBuilder.of(Material.BREAD).amount(20).build());
108285
player.getPassengers().forEach(player::removePassenger);
109286
}

0 commit comments

Comments
 (0)