Skip to content

Commit a634853

Browse files
Add autorefill command
1 parent 147d674 commit a634853

File tree

7 files changed

+82
-4
lines changed

7 files changed

+82
-4
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,9 @@ Copy AutomaticInventory.jar into your server's plugins folder and then execute t
7474
**/quickdeposit enable** turns on quick deposit.
7575

7676
**/quickdeposit disable** turns off quick deposit.
77+
78+
**/autorefill toggle** toggles hotbar stack auto refill on or off.
79+
80+
**/autorefill enable** turns on hotbar stack auto refill.
81+
82+
**/autorefill disable** turns off hotbar stack auto refill.

build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ spigot {
5353
permission 'automaticinventory.quickdeposit'
5454
usage '/quickdeposit'
5555
}
56+
autorefill {
57+
description 'Toggles quto refill, which refills your hotbar slots when items are depleted or break.'
58+
permission 'automaticinventory.refillstacks'
59+
usage '/autorefill'
60+
}
5661
}
5762
permissions {
5863
'automaticinventory.admin.*' {

src/main/java/dev/chaws/automaticinventory/AIEventHandler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ static boolean featureEnabled(Features feature, Player player)
157157
case SortInventory -> playerConfig.isSortInventory();
158158
case SortChests -> playerConfig.isSortChests();
159159
case QuickDeposit -> playerConfig.isQuickDepositEnabled();
160-
case RefillStacks, DepositAll -> true;
160+
case RefillStacks -> playerConfig.isAutoRefillEnabled();
161+
case DepositAll -> true;
161162
};
162163
}
163164

src/main/java/dev/chaws/automaticinventory/AutomaticInventory.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public class AutomaticInventory extends JavaPlugin
4141
Set<Material> config_noAutoDeposit = new HashSet<>();
4242
static boolean autosortEnabledByDefault = true;
4343
static boolean quickDepositEnabledByDefault = true;
44+
static boolean autoRefillEnabledByDefault = true;
4445
private static List<String> excludeItemsContainingThisString;
4546

4647
//this handles data storage, like player and region data
@@ -300,6 +301,51 @@ else if(optionName.startsWith("disable"))
300301
return true;
301302
}
302303

304+
else if(cmd.getName().equalsIgnoreCase("autorefill") && player != null)
305+
{
306+
if(!hasPermission(Features.RefillStacks, player))
307+
{
308+
sendMessage(player, TextMode.Err, Messages.NoPermissionForFeature);
309+
return true;
310+
}
311+
312+
if(args.length < 1)
313+
{
314+
sendMessage(player, TextMode.Instr, Messages.AutoRefillHelp);
315+
return true;
316+
}
317+
318+
String optionName = args[0].toLowerCase();
319+
if(optionName.startsWith("toggle"))
320+
{
321+
playerData.setAutoRefillEnabled(!playerData.isAutoRefillEnabled());
322+
323+
if(playerData.isAutoRefillEnabled())
324+
sendMessage(player, TextMode.Success, Messages.AutoRefillEnabled);
325+
else
326+
sendMessage(player, TextMode.Success, Messages.AutoRefillDisabled);
327+
}
328+
else if(optionName.startsWith("enable"))
329+
{
330+
playerData.setAutoRefillEnabled(true);
331+
sendMessage(player, TextMode.Success, Messages.AutoRefillEnabled);
332+
}
333+
else if(optionName.startsWith("disable"))
334+
{
335+
playerData.setAutoRefillEnabled(false);
336+
sendMessage(player, TextMode.Success, Messages.AutoRefillDisabled);
337+
}
338+
else
339+
{
340+
sendMessage(player, TextMode.Err, Messages.AutoRefillHelp);
341+
return true;
342+
}
343+
344+
DeliverTutorialHyperlink(player);
345+
346+
return true;
347+
}
348+
303349
return false;
304350
}
305351

src/main/java/dev/chaws/automaticinventory/DataStore.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,11 @@ private void loadMessages()
5555
this.addDefault(defaults, Messages.ChestLidBlocked, "That chest isn't accessible.", null);
5656
this.addDefault(defaults, Messages.DepositAllAdvertisement, "TIP: Instantly deposit all items from your inventory into all the right nearby boxes with /DepositAll!", null);
5757
this.addDefault(defaults, Messages.QuickDepositHelp, "Options are /quickdeposit toggle, /quickdeposit enable, and /quickdeposit disable.", null);
58-
this.addDefault(defaults, Messages.QuickDepositEnabled, "Enabled quick deposit. Try crouching and clicking on a chest.", null);
59-
this.addDefault(defaults, Messages.QuickDepositDisabled, "Disabled quick deposit.", null);
58+
this.addDefault(defaults, Messages.QuickDepositEnabled, "Quick deposit enabled. Try crouching and clicking on a chest.", null);
59+
this.addDefault(defaults, Messages.QuickDepositDisabled, "Quick deposit disabled.", null);
60+
this.addDefault(defaults, Messages.AutoRefillHelp, "Options are /autorefill toggle, /autorefill enable, and /autorefill disable.", null);
61+
this.addDefault(defaults, Messages.AutoRefillEnabled, "Auto refill enabled.", null);
62+
this.addDefault(defaults, Messages.AutoRefillDisabled, "Auto refill disabled.", null);
6063

6164
//load the config file
6265
FileConfiguration config = YamlConfiguration.loadConfiguration(new File(messagesFilePath));

src/main/java/dev/chaws/automaticinventory/Messages.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,8 @@ public enum Messages
2222
QuickDepositAdvertisement3,
2323
QuickDepositHelp,
2424
QuickDepositEnabled,
25-
QuickDepositDisabled
25+
QuickDepositDisabled,
26+
AutoRefillHelp,
27+
AutoRefillEnabled,
28+
AutoRefillDisabled
2629
}

src/main/java/dev/chaws/automaticinventory/PlayerData.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,18 @@ void setQuickDepositEnabled(boolean quickDepositEnabled)
155155
this.quickDepositEnabled = quickDepositEnabled;
156156
}
157157

158+
private boolean autoRefillEnabled = AutomaticInventory.autoRefillEnabledByDefault;
159+
boolean isAutoRefillEnabled()
160+
{
161+
this.waitForLoadComplete();
162+
return autoRefillEnabled;
163+
}
164+
void setAutoRefillEnabled(boolean autoRefillEnabled)
165+
{
166+
this.isDirty = true;
167+
this.autoRefillEnabled = autoRefillEnabled;
168+
}
169+
158170
void incrementManualDeposits()
159171
{
160172
this.manualDepositsThisSession++;
@@ -218,6 +230,7 @@ private void writeDataToFile()
218230
config.set("Sort Chests", this.sortChests);
219231
config.set("Sort Personal Inventory", this.sortInventory);
220232
config.set("Quick Deposit Enabled", this.quickDepositEnabled);
233+
config.set("Auto Refill Enabled", this.autoRefillEnabled);
221234
config.set("Used Quick Deposit", this.usedQuickDeposit);
222235
config.set("Received Messages.Personal Inventory", this.gotInventorySortInfo);
223236
config.set("Received Messages.Chest Inventory", this.gotChestSortInfo);
@@ -256,6 +269,7 @@ private void readDataFromFile()
256269
this.sortChests = config.getBoolean("Sort Chests", AutomaticInventory.autosortEnabledByDefault);
257270
this.sortInventory = config.getBoolean("Sort Personal Inventory", AutomaticInventory.autosortEnabledByDefault);
258271
this.quickDepositEnabled = config.getBoolean("Quick Deposit Enabled", AutomaticInventory.quickDepositEnabledByDefault);
272+
this.autoRefillEnabled = config.getBoolean("Auto Refill Enabled", AutomaticInventory.autoRefillEnabledByDefault);
259273
this.usedQuickDeposit = config.getBoolean("Used Quick Deposit", false);
260274
this.gotChestSortInfo = config.getBoolean("Received Messages.Chest Inventory", false);
261275
this.gotInventorySortInfo = config.getBoolean("Received Messages.Personal Inventory", false);

0 commit comments

Comments
 (0)