Skip to content

Commit

Permalink
Add autorefill command
Browse files Browse the repository at this point in the history
  • Loading branch information
ChristopherHaws committed Aug 31, 2022
1 parent 147d674 commit a634853
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 4 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,9 @@ Copy AutomaticInventory.jar into your server's plugins folder and then execute t
**/quickdeposit enable** turns on quick deposit.

**/quickdeposit disable** turns off quick deposit.

**/autorefill toggle** toggles hotbar stack auto refill on or off.

**/autorefill enable** turns on hotbar stack auto refill.

**/autorefill disable** turns off hotbar stack auto refill.
5 changes: 5 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ spigot {
permission 'automaticinventory.quickdeposit'
usage '/quickdeposit'
}
autorefill {
description 'Toggles quto refill, which refills your hotbar slots when items are depleted or break.'
permission 'automaticinventory.refillstacks'
usage '/autorefill'
}
}
permissions {
'automaticinventory.admin.*' {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,8 @@ static boolean featureEnabled(Features feature, Player player)
case SortInventory -> playerConfig.isSortInventory();
case SortChests -> playerConfig.isSortChests();
case QuickDeposit -> playerConfig.isQuickDepositEnabled();
case RefillStacks, DepositAll -> true;
case RefillStacks -> playerConfig.isAutoRefillEnabled();
case DepositAll -> true;
};
}

Expand Down
46 changes: 46 additions & 0 deletions src/main/java/dev/chaws/automaticinventory/AutomaticInventory.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public class AutomaticInventory extends JavaPlugin
Set<Material> config_noAutoDeposit = new HashSet<>();
static boolean autosortEnabledByDefault = true;
static boolean quickDepositEnabledByDefault = true;
static boolean autoRefillEnabledByDefault = true;
private static List<String> excludeItemsContainingThisString;

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

else if(cmd.getName().equalsIgnoreCase("autorefill") && player != null)
{
if(!hasPermission(Features.RefillStacks, player))
{
sendMessage(player, TextMode.Err, Messages.NoPermissionForFeature);
return true;
}

if(args.length < 1)
{
sendMessage(player, TextMode.Instr, Messages.AutoRefillHelp);
return true;
}

String optionName = args[0].toLowerCase();
if(optionName.startsWith("toggle"))
{
playerData.setAutoRefillEnabled(!playerData.isAutoRefillEnabled());

if(playerData.isAutoRefillEnabled())
sendMessage(player, TextMode.Success, Messages.AutoRefillEnabled);
else
sendMessage(player, TextMode.Success, Messages.AutoRefillDisabled);
}
else if(optionName.startsWith("enable"))
{
playerData.setAutoRefillEnabled(true);
sendMessage(player, TextMode.Success, Messages.AutoRefillEnabled);
}
else if(optionName.startsWith("disable"))
{
playerData.setAutoRefillEnabled(false);
sendMessage(player, TextMode.Success, Messages.AutoRefillDisabled);
}
else
{
sendMessage(player, TextMode.Err, Messages.AutoRefillHelp);
return true;
}

DeliverTutorialHyperlink(player);

return true;
}

return false;
}

Expand Down
7 changes: 5 additions & 2 deletions src/main/java/dev/chaws/automaticinventory/DataStore.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,11 @@ private void loadMessages()
this.addDefault(defaults, Messages.ChestLidBlocked, "That chest isn't accessible.", null);
this.addDefault(defaults, Messages.DepositAllAdvertisement, "TIP: Instantly deposit all items from your inventory into all the right nearby boxes with /DepositAll!", null);
this.addDefault(defaults, Messages.QuickDepositHelp, "Options are /quickdeposit toggle, /quickdeposit enable, and /quickdeposit disable.", null);
this.addDefault(defaults, Messages.QuickDepositEnabled, "Enabled quick deposit. Try crouching and clicking on a chest.", null);
this.addDefault(defaults, Messages.QuickDepositDisabled, "Disabled quick deposit.", null);
this.addDefault(defaults, Messages.QuickDepositEnabled, "Quick deposit enabled. Try crouching and clicking on a chest.", null);
this.addDefault(defaults, Messages.QuickDepositDisabled, "Quick deposit disabled.", null);
this.addDefault(defaults, Messages.AutoRefillHelp, "Options are /autorefill toggle, /autorefill enable, and /autorefill disable.", null);
this.addDefault(defaults, Messages.AutoRefillEnabled, "Auto refill enabled.", null);
this.addDefault(defaults, Messages.AutoRefillDisabled, "Auto refill disabled.", null);

//load the config file
FileConfiguration config = YamlConfiguration.loadConfiguration(new File(messagesFilePath));
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/dev/chaws/automaticinventory/Messages.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,8 @@ public enum Messages
QuickDepositAdvertisement3,
QuickDepositHelp,
QuickDepositEnabled,
QuickDepositDisabled
QuickDepositDisabled,
AutoRefillHelp,
AutoRefillEnabled,
AutoRefillDisabled
}
14 changes: 14 additions & 0 deletions src/main/java/dev/chaws/automaticinventory/PlayerData.java
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,18 @@ void setQuickDepositEnabled(boolean quickDepositEnabled)
this.quickDepositEnabled = quickDepositEnabled;
}

private boolean autoRefillEnabled = AutomaticInventory.autoRefillEnabledByDefault;
boolean isAutoRefillEnabled()
{
this.waitForLoadComplete();
return autoRefillEnabled;
}
void setAutoRefillEnabled(boolean autoRefillEnabled)
{
this.isDirty = true;
this.autoRefillEnabled = autoRefillEnabled;
}

void incrementManualDeposits()
{
this.manualDepositsThisSession++;
Expand Down Expand Up @@ -218,6 +230,7 @@ private void writeDataToFile()
config.set("Sort Chests", this.sortChests);
config.set("Sort Personal Inventory", this.sortInventory);
config.set("Quick Deposit Enabled", this.quickDepositEnabled);
config.set("Auto Refill Enabled", this.autoRefillEnabled);
config.set("Used Quick Deposit", this.usedQuickDeposit);
config.set("Received Messages.Personal Inventory", this.gotInventorySortInfo);
config.set("Received Messages.Chest Inventory", this.gotChestSortInfo);
Expand Down Expand Up @@ -256,6 +269,7 @@ private void readDataFromFile()
this.sortChests = config.getBoolean("Sort Chests", AutomaticInventory.autosortEnabledByDefault);
this.sortInventory = config.getBoolean("Sort Personal Inventory", AutomaticInventory.autosortEnabledByDefault);
this.quickDepositEnabled = config.getBoolean("Quick Deposit Enabled", AutomaticInventory.quickDepositEnabledByDefault);
this.autoRefillEnabled = config.getBoolean("Auto Refill Enabled", AutomaticInventory.autoRefillEnabledByDefault);
this.usedQuickDeposit = config.getBoolean("Used Quick Deposit", false);
this.gotChestSortInfo = config.getBoolean("Received Messages.Chest Inventory", false);
this.gotInventorySortInfo = config.getBoolean("Received Messages.Personal Inventory", false);
Expand Down

0 comments on commit a634853

Please sign in to comment.