Skip to content

Commit 5918ab1

Browse files
author
BuildTools
committed
added funky feather and fixed autorespawn
1 parent 5a89481 commit 5918ab1

File tree

5 files changed

+90
-27
lines changed

5 files changed

+90
-27
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package me.stevemmmmm.thepitremake.commands;
2+
3+
import org.bukkit.ChatColor;
4+
import org.bukkit.Material;
5+
import org.bukkit.command.Command;
6+
import org.bukkit.command.CommandExecutor;
7+
import org.bukkit.command.CommandSender;
8+
import org.bukkit.entity.Player;
9+
import org.bukkit.inventory.ItemStack;
10+
import org.bukkit.inventory.meta.ItemMeta;
11+
12+
import me.stevemmmmm.thepitremake.managers.enchants.LoreBuilder;
13+
14+
public class GiveFeatherCommand implements CommandExecutor {
15+
public GiveFeatherCommand() {
16+
}
17+
@Override
18+
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
19+
if (sender instanceof Player) {
20+
Player player = (Player) sender;
21+
22+
if (label.equalsIgnoreCase("givefeather")) {
23+
ItemStack arch = new ItemStack(Material.FEATHER, 1);
24+
ItemMeta meta = arch.getItemMeta();
25+
26+
meta.setDisplayName(ChatColor.DARK_AQUA + "Funky Feather");
27+
meta.setLore(new LoreBuilder()
28+
.write(ChatColor.YELLOW + "Special item").next()
29+
.write(ChatColor.GRAY + "Protects your inventory but").next()
30+
.write(ChatColor.GRAY + "gets consumed on death if").next()
31+
.write(ChatColor.GRAY + "in your hotbar.")
32+
.build());
33+
34+
arch.setItemMeta(meta);
35+
player.getInventory().addItem(arch);
36+
}
37+
}
38+
return true;
39+
}
40+
41+
42+
}

src/me/stevemmmmm/thepitremake/core/Main.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ public void onPacketSending(PacketEvent event) {
196196
getCommand("givearmageddon").setExecutor(new GiveArmageddonCommand());
197197
getCommand("givearch").setExecutor(new GiveArchCommand());
198198
getCommand("givegolden").setExecutor(new GiveGoldenCommand());
199+
getCommand("givefeather").setExecutor(new GiveFeatherCommand());
199200
getCommand("setgold").setExecutor(new SetGoldCommand());
200201
getCommand("givebread").setExecutor(new GiveBreadCommand());
201202
getCommand("givearrows").setExecutor(new GiveArrowCommand());

src/me/stevemmmmm/thepitremake/managers/enchants/LivesSystem.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.Arrays;
55

66
import org.bukkit.ChatColor;
7+
import org.bukkit.Sound;
78
import org.bukkit.entity.Player;
89
import org.bukkit.event.EventHandler;
910
import org.bukkit.event.Listener;
@@ -70,6 +71,26 @@ public static void removeItemLives(Player player) {
7071

7172
@EventHandler
7273
public void onPlayerDeath(PlayerDeathEvent event) {
73-
removeItemLives(event.getEntity());
74+
Player player = event.getEntity();
75+
PlayerInventory playerInventory = player.getInventory();
76+
77+
for (int i = 0; i < 9; i++) {
78+
ItemStack item = playerInventory.getItem(i);
79+
if (item != null && item.hasItemMeta() && item.getItemMeta().hasDisplayName() && ChatColor.stripColor(item.getItemMeta().getDisplayName()).equals("Funky Feather")) {
80+
if (item.getAmount() > 1) {
81+
item.setAmount(item.getAmount() - 1);
82+
playerInventory.setItem(i, item);
83+
} else {
84+
playerInventory.setItem(i, null);
85+
}
86+
87+
player.playSound(player.getLocation(), Sound.BAT_TAKEOFF, 2, 2F);
88+
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&3&lFUNKY FEATHER!&7 Inventory protected!"));
89+
90+
return;
91+
}
92+
}
93+
94+
removeItemLives(player);
7495
}
7596
}
Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
1-
//
2-
// Source code recreated from a .class file by IntelliJ IDEA
3-
// (powered by FernFlower decompiler)
4-
//
5-
61
package me.stevemmmmm.thepitremake.world;
72

8-
import java.util.Iterator;
93
import me.stevemmmmm.thepitremake.core.Main;
104
import me.stevemmmmm.thepitremake.game.RegionManager;
115
import org.bukkit.Bukkit;
12-
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
136
import org.bukkit.entity.Player;
147
import org.bukkit.event.EventHandler;
158
import org.bukkit.event.Listener;
@@ -20,37 +13,40 @@
2013
import org.bukkit.util.Vector;
2114

2215
public class AutoRespawn implements Listener {
23-
public AutoRespawn() {
24-
}
2516

2617
@EventHandler
2718
public void onPlayerJoin(PlayerJoinEvent event) {
28-
event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0));
19+
Player player = event.getPlayer();
20+
player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0));
2921
}
3022

3123
@EventHandler
3224
public void onDeath(PlayerDeathEvent event) {
3325
event.setDeathMessage("");
34-
triggerRespawnSequence(event.getEntity());
26+
27+
Player player = event.getEntity();
28+
triggerRespawnSequence(player);
3529
}
3630

3731
public static void triggerRespawnSequence(Player player) {
32+
Bukkit.getScheduler().runTaskLater(Main.INSTANCE, () -> {
33+
player.spigot().respawn();
34+
resetPlayerState(player);
35+
}, 1L);
36+
}
37+
38+
public static void resetPlayerState(Player player) {
3839
player.setHealth(player.getMaxHealth());
3940
player.teleport(RegionManager.getInstance().getSpawnLocation(player));
40-
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.INSTANCE, () -> {
41-
Iterator var1 = player.getActivePotionEffects().iterator();
42-
43-
while(var1.hasNext()) {
44-
PotionEffect effect = (PotionEffect)var1.next();
45-
player.removePotionEffect(effect.getType());
46-
}
47-
48-
player.setFoodLevel(19);
49-
player.setHealth(player.getMaxHealth());
50-
((CraftPlayer)player).getHandle().setAbsorptionHearts(0.0F);
51-
player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0));
52-
player.setVelocity(new Vector(0, 0, 0));
53-
player.setFireTicks(0);
54-
}, 1L);
41+
player.setFoodLevel(19);
42+
player.setFireTicks(0);
43+
player.setVelocity(new Vector(0, 0, 0));
44+
45+
for (PotionEffect effect : player.getActivePotionEffects()) {
46+
player.removePotionEffect(effect.getType());
47+
}
48+
49+
player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0));
5550
}
51+
5652
}

src/plugin.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ main: me.stevemmmmm.thepitremake.core.Main
33
version: v1.0
44
depend: [ServerCore, ProtocolLib, PlaceholderAPI, ShowItem]
55
commands:
6+
givefeather:
7+
description: Gives Funky Feather
8+
usage: /givefeather
69
givearmageddon:
710
description: Gives Armageddon Boots
811
usage: /givearmageddon

0 commit comments

Comments
 (0)