Skip to content

Commit f5d1b2e

Browse files
committed
Removed the need for 1 open slot
1 parent fbeda2e commit f5d1b2e

File tree

5 files changed

+122
-39
lines changed

5 files changed

+122
-39
lines changed

src/main/java/us/thezircon/play/autopickup/listeners/BlockBreakEventListener.java

Lines changed: 60 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
import java.time.Instant;
3131
import java.util.ArrayList;
32+
import java.util.HashMap;
3233
import java.util.List;
3334

3435
public class BlockBreakEventListener implements Listener {
@@ -100,16 +101,28 @@ public void run() {
100101
if (island.getCenter().equals(block.getLocation())) {
101102
for (Entity ent : loc.getWorld().getNearbyEntities(block.getLocation().add(0, 1, 0), 1, 1, 1)) {
102103
if (ent instanceof Item) {
103-
if (player.getInventory().firstEmpty() == -1) { // Checks for inventory space
104-
//Player has no space
104+
105+
HashMap<Integer, ItemStack> leftOver = player.getInventory().addItem(((Item) ent).getItemStack());
106+
ent.remove();
107+
if (leftOver.keySet().size()>0) {
108+
for (ItemStack item : leftOver.values()) {
109+
player.getWorld().dropItemNaturally(loc, item);
110+
}
105111
if (doFullInvMSG) {
106112
player.sendMessage(PLUGIN.getMsg().getPrefix() + " " + PLUGIN.getMsg().getFullInventory());
107113
}
108-
return;
109-
} else {
110-
player.getInventory().addItem(((Item) ent).getItemStack());
111-
ent.remove();
112114
}
115+
116+
// if (player.getInventory().firstEmpty() == -1) { // Checks for inventory space
117+
// //Player has no space
118+
// if (doFullInvMSG) {
119+
// player.sendMessage(PLUGIN.getMsg().getPrefix() + " " + PLUGIN.getMsg().getFullInventory());
120+
// }
121+
// return;
122+
// } else {
123+
// player.getInventory().addItem(((Item) ent).getItemStack());
124+
// ent.remove();
125+
// }
113126
}
114127
}
115128
}
@@ -182,10 +195,16 @@ public void run() {
182195

183196
for (ItemStack items : chestDrops) {
184197
if (items!=null) {
185-
if (player.getInventory().firstEmpty()!=-1) {
186-
player.getInventory().addItem(items);
187-
} else {
188-
player.getWorld().dropItemNaturally(loc, items);
198+
// if (player.getInventory().firstEmpty()!=-1) {
199+
// player.getInventory().add----Item(items);
200+
// } else {
201+
// player.getWorld().dropItemNaturally(loc, items);
202+
// }
203+
HashMap<Integer, ItemStack> leftOver = player.getInventory().addItem(items);
204+
if (leftOver.keySet().size()>0) {
205+
for (ItemStack item : leftOver.values()) {
206+
player.getWorld().dropItemNaturally(loc, item);
207+
}
189208
}
190209
}
191210
}
@@ -194,10 +213,16 @@ public void run() {
194213
for (ItemStack items : ((Container) e.getBlock().getState()).getInventory().getContents()) {
195214

196215
if (items!=null) {
197-
if (player.getInventory().firstEmpty()!=-1) {
198-
player.getInventory().addItem(items);
199-
} else {
200-
player.getWorld().dropItemNaturally(loc, items);
216+
// if (player.getInventory().firstEmpty()!=-1) {
217+
// player.getInventory().add----Item(items);
218+
// } else {
219+
// player.getWorld().dropItemNaturally(loc, items);
220+
// }
221+
HashMap<Integer, ItemStack> leftOver = player.getInventory().addItem(items);
222+
if (leftOver.keySet().size()>0) {
223+
for (ItemStack item : leftOver.values()) {
224+
player.getWorld().dropItemNaturally(loc, item);
225+
}
201226
}
202227
}
203228

@@ -213,10 +238,16 @@ public void run() {
213238
}
214239

215240
ItemStack drop = new ItemStack(e.getBlock().getType());
216-
if (player.getInventory().firstEmpty()!=-1) {
217-
player.getInventory().addItem(drop);
218-
} else {
219-
player.getWorld().dropItemNaturally(loc, drop);
241+
// if (player.getInventory().firstEmpty()!=-1) {
242+
// player.getInventory().add---Item(drop);
243+
// } else {
244+
// player.getWorld().dropItemNaturally(loc, drop);
245+
// }
246+
HashMap<Integer, ItemStack> leftOver = player.getInventory().addItem(drop);
247+
if (leftOver.keySet().size()>0) {
248+
for (ItemStack item : leftOver.values()) {
249+
player.getWorld().dropItemNaturally(loc, item);
250+
}
220251
}
221252

222253
}
@@ -339,11 +370,18 @@ private static void vertBreak(Player player, Location loc) {
339370
amt++;
340371
vertBreak(player, loc);
341372
} else {
342-
if (player.getInventory().firstEmpty()!=-1) {
343-
player.getInventory().addItem(new ItemStack(type, amt));
344-
} else {
345-
player.getWorld().dropItemNaturally(loc, new ItemStack(type, amt));
373+
ItemStack drop = new ItemStack(type, amt);
374+
HashMap<Integer, ItemStack> leftOver = player.getInventory().addItem(drop);
375+
if (leftOver.keySet().size()>0) {
376+
for (ItemStack item : leftOver.values()) {
377+
player.getWorld().dropItemNaturally(loc, item);
378+
}
346379
}
380+
// if (player.getInventory().firstEmpty()!=-1) {
381+
// player.getInventory().add---Item(new ItemStack(type, amt));
382+
// } else {
383+
// player.getWorld().dropItemNaturally(loc, new ItemStack(type, amt));
384+
// }
347385
type = null;
348386
amt = 1;
349387
///////////////////////////////////// Custom items \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

src/main/java/us/thezircon/play/autopickup/listeners/BlockDropItemEventListener.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import us.thezircon.play.autopickup.AutoPickup;
1515
import us.thezircon.play.autopickup.utils.AutoSmelt;
1616

17+
import java.util.HashMap;
1718
import java.util.List;
1819

1920
public class BlockDropItemEventListener implements Listener {
@@ -72,10 +73,21 @@ public void onDrop(BlockDropItemEvent e) {
7273
}
7374

7475
if (doSmelt) {
75-
player.getInventory().addItem(AutoSmelt.smelt(drop, player));
76-
} else {
77-
player.getInventory().addItem(drop);
76+
drop = AutoSmelt.smelt(drop, player);
7877
}
78+
79+
HashMap<Integer, ItemStack> leftOver = player.getInventory().addItem(drop);
80+
if (leftOver.keySet().size()>0) {
81+
for (ItemStack item : leftOver.values()) {
82+
player.getWorld().dropItemNaturally(loc, item);
83+
}
84+
}
85+
86+
// if (doSmelt) {
87+
// player.getInventory().addItem(AutoSmelt.smelt(drop, player));
88+
// } else {
89+
// player.getInventory().addItem(drop);
90+
// }
7991
i.remove();
8092
}
8193

src/main/java/us/thezircon/play/autopickup/listeners/EntityDeathEventListener.java

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.bukkit.inventory.ItemStack;
1111
import us.thezircon.play.autopickup.AutoPickup;
1212

13+
import java.util.HashMap;
1314
import java.util.Iterator;
1415
import java.util.List;
1516

@@ -66,15 +67,28 @@ public void onDeath(EntityDeathEvent e) {
6667
Iterator<ItemStack> iter = e.getDrops().iterator();
6768
while (iter.hasNext()) {
6869
ItemStack drops = iter.next();
69-
if (player.getInventory().firstEmpty() != -1) { // has space
70-
player.getInventory().addItem(drops);
71-
iter.remove();
72-
} else { // inv full
70+
71+
HashMap<Integer, ItemStack> leftOver = player.getInventory().addItem(drops);
72+
iter.remove();
73+
if (leftOver.keySet().size()>0) {
74+
for (ItemStack item : leftOver.values()) {
75+
player.getWorld().dropItemNaturally(loc, item);
76+
}
7377
if (doFullInvMSG) {
7478
player.sendMessage(PLUGIN.getMsg().getPrefix() + " " + PLUGIN.getMsg().getFullInventory());
7579
}
76-
return;
7780
}
81+
82+
83+
// if (player.getInventory().firstEmpty() != -1) { // has space
84+
// player.getInventory().addItem(drops);
85+
// iter.remove();
86+
// } else { // inv full
87+
// if (doFullInvMSG) {
88+
// player.sendMessage(PLUGIN.getMsg().getPrefix() + " " + PLUGIN.getMsg().getFullInventory());
89+
// }
90+
// return;
91+
// }
7892
}
7993
e.getDrops().clear();
8094
}

src/main/java/us/thezircon/play/autopickup/listeners/ItemSpawnEventListener.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import us.thezircon.play.autopickup.utils.AutoSmelt;
1212
import us.thezircon.play.autopickup.utils.PickupObjective;
1313

14+
import java.util.HashMap;
1415
import java.util.List;
1516
import java.util.UUID;
1617

@@ -50,14 +51,21 @@ public void onSpawn(ItemSpawnEvent e) {
5051
ItemStack item = e.getEntity().getItemStack();
5152
Player player = po.getPlayer();
5253
boolean doSmelt = PLUGIN.auto_smelt_blocks.contains(player);
53-
if (player.getInventory().firstEmpty()!=-1) {
54-
e.getEntity().remove();
55-
if (doSmelt) {
56-
player.getInventory().addItem(AutoSmelt.smelt(item, player));
57-
} else {
58-
player.getInventory().addItem(item);
54+
HashMap<Integer, ItemStack> leftOver = player.getInventory().addItem(item);
55+
e.getEntity().remove();
56+
if (leftOver.keySet().size()>0) {
57+
for (ItemStack items : leftOver.values()) {
58+
player.getWorld().dropItemNaturally(loc, items);
5959
}
6060
}
61+
// if (player.getInventory().firstEmpty()!=-1) {
62+
// e.getEntity().remove();
63+
// if (doSmelt) {
64+
// player.getInventory().addItem(AutoSmelt.smelt(item, player));
65+
// } else {
66+
// player.getInventory().addItem(item);
67+
// }
68+
// }
6169
}
6270
}
6371

src/main/java/us/thezircon/play/autopickup/listeners/PlayerInteractEventListener.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import org.bukkit.scheduler.BukkitRunnable;
1515
import us.thezircon.play.autopickup.AutoPickup;
1616

17+
import java.util.HashMap;
18+
1719
public class PlayerInteractEventListener implements Listener {
1820

1921
private static final AutoPickup PLUGIN = AutoPickup.getPlugin(AutoPickup.class);
@@ -46,10 +48,19 @@ public void run() {
4648
Item item = (Item) entity;
4749
ItemStack items = item.getItemStack();
4850
if (items.getType().equals(Material.SWEET_BERRIES)) {
49-
if (player.getInventory().firstEmpty()!=-1) {
50-
player.getInventory().addItem(items);
51-
item.remove();
51+
52+
HashMap<Integer, ItemStack> leftOver = player.getInventory().addItem(items);
53+
item.remove();
54+
if (leftOver.keySet().size()>0) {
55+
for (ItemStack drops : leftOver.values()) {
56+
player.getWorld().dropItemNaturally(loc, drops);
57+
}
5258
}
59+
60+
// if (player.getInventory().firstEmpty()!=-1) {
61+
// player.getInventory().addItem(items);
62+
// item.remove();
63+
// }
5364
}
5465

5566
}

0 commit comments

Comments
 (0)