Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permission: runsafe.traders.delete

Run this command and right click a shop button, it will delete it **without** removing tag data.

/traders createshop <compare_name> <compare_durability> <compare_lore> <compare_enchants>
/traders createshop <compare_name> <compare_durability> <compare_lore> <compare_enchants> <should_print_tag_id>

permission: runsafe.traders.create

Expand Down
1 change: 1 addition & 0 deletions src/no/runsafe/ItemControl/ItemControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ protected void pluginSetup()
tag.addSubCommand(getInstance(List.class));
tag.addSubCommand(getInstance(Assign.class));
tag.addSubCommand(getInstance(Remove.class));
tag.addSubCommand(getInstance(ResetScore.class));
traderCommand.addSubCommand(tag);

plugin = this;
Expand Down
10 changes: 9 additions & 1 deletion src/no/runsafe/ItemControl/trading/PurchaseData.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@
public class PurchaseData
{
public PurchaseData(@Nullable String tag,
boolean compareName, boolean compareDurability, boolean compareLore, boolean compareEnchants)
boolean compareName, boolean compareDurability, boolean compareLore, boolean compareEnchants, boolean shouldPrintTagID
)
{
this.tag = tag;
this.compareName = compareName;
this.compareDurability = compareDurability;
this.compareLore = compareLore;
this.compareEnchants = compareEnchants;
this.shouldPrintTagID = shouldPrintTagID;
}

public String getTag()
Expand Down Expand Up @@ -39,9 +41,15 @@ public boolean shouldCompareEnchants()
return compareEnchants;
}

public boolean shouldPrintTagID()
{
return shouldPrintTagID;
}

private final String tag;
private final boolean compareName;
private final boolean compareDurability;
private final boolean compareLore;
private final boolean compareEnchants;
private final boolean shouldPrintTagID;
}
14 changes: 13 additions & 1 deletion src/no/runsafe/ItemControl/trading/TraderData.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
public class TraderData
{
public TraderData(ILocation location, RunsafeInventory inventory, @Nullable String tag,
boolean compareName, boolean compareDurability, boolean compareLore, boolean compareEnchants
boolean compareName, boolean compareDurability, boolean compareLore, boolean compareEnchants, boolean shouldPrintTagID
)
{
this.location = location;
Expand All @@ -19,6 +19,7 @@ public TraderData(ILocation location, RunsafeInventory inventory, @Nullable Stri
this.compareDurability = compareDurability;
this.compareLore = compareLore;
this.compareEnchants = compareEnchants;
this.shouldPrintTagID = shouldPrintTagID;
refresh();
}

Expand Down Expand Up @@ -92,6 +93,16 @@ public void setCompareEnchants(boolean value)
compareEnchants = value;
}

public boolean shouldPrintTagID()
{
return shouldPrintTagID;
}

public void setShouldPrintTagID(boolean value)
{
shouldPrintTagID = value;
}

public void refresh()
{
purchaseValidator = new PurchaseValidator(compareName, compareDurability, compareLore, compareEnchants);
Expand Down Expand Up @@ -123,6 +134,7 @@ public PurchaseValidator getPurchaseValidator()
private boolean compareDurability;
private boolean compareLore;
private boolean compareEnchants;
private boolean shouldPrintTagID;
private final ILocation location;
private final RunsafeInventory inventory;
private boolean isSaved = true;
Expand Down
20 changes: 16 additions & 4 deletions src/no/runsafe/ItemControl/trading/TradingHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,11 @@ public void deleteTag(String tag)
playerTransactionRepository.deleteTagRecords(tag);
}

public void deleteTagPlayerScore(String tag)
{
playerTransactionRepository.deleteTagRecords(tag);
}

public List<String> getAllTags()
{
return tagRepository.getTags();
Expand Down Expand Up @@ -153,6 +158,7 @@ public boolean OnPlayerRightClick(IPlayer player, RunsafeMeta usingItem, IBlock
targetedTrader.setCompareDurability(purchaseData.shouldCompareDurability());
targetedTrader.setCompareLore(purchaseData.shouldCompareLore());
targetedTrader.setCompareEnchants(purchaseData.shouldCompareEnchants());
targetedTrader.setShouldPrintTagID(purchaseData.shouldPrintTagID());
editShop(player, targetedTrader);
targetBlockLoc.playSound(Sound.Redstone.ComparatorClick, 2F, 0F);
return false;
Expand All @@ -162,8 +168,12 @@ public boolean OnPlayerRightClick(IPlayer player, RunsafeMeta usingItem, IBlock
if (shopTag != null)
{
updateSigns(shopTag);
if (!targetedTrader.getPurchaseValidator().purchase(player, shopTag, tagRepository))
return false;
if (targetedTrader.shouldPrintTagID())
if (!targetedTrader.getPurchaseValidator().purchase(player, shopTag, tagRepository))
return false;
else
if (!targetedTrader.getPurchaseValidator().purchase(player, null, null))
return false;

playerTransactionRepository.recordPurchase(player, shopTag);
return true;
Expand All @@ -179,7 +189,8 @@ public boolean OnPlayerRightClick(IPlayer player, RunsafeMeta usingItem, IBlock
RunsafeInventory inventory = server.createInventory(null, 27);
TraderData newData = new TraderData(targetBlockLoc, inventory, purchaseData.getTag(),
purchaseData.shouldCompareName(), purchaseData.shouldCompareDurability(),
purchaseData.shouldCompareLore(), purchaseData.shouldCompareEnchants()
purchaseData.shouldCompareLore(), purchaseData.shouldCompareEnchants(),
purchaseData.shouldPrintTagID()
);
tradingRepository.persistTrader(newData);

Expand Down Expand Up @@ -259,8 +270,9 @@ private boolean handleTraderDebugging(IPlayer player, ILocation location)
player.sendColouredMessage("&9Compare Durability: &r" + (shop.shouldCompareDurability() ? "True" : "False"));
player.sendColouredMessage("&9Compare Lore: &r" + (shop.shouldCompareLore() ? "True" : "False"));
player.sendColouredMessage("&9Compare Enchants: &r" + (shop.shouldCompareEnchants() ? "True" : "False"));
player.sendColouredMessage("&9Prints tag ID number: &r" + (shop.shouldPrintTagID() ? "True" : "False"));
if (shop.getTag() != null)
player.sendColouredMessage("&9 Using the shop tag: &r" + shop.getTag());
player.sendColouredMessage("&9Using the shop tag: &r" + shop.getTag());


return true;
Expand Down
14 changes: 10 additions & 4 deletions src/no/runsafe/ItemControl/trading/TradingRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public List<TraderData> getTraders()
List<TraderData> data = new ArrayList<>(0);
for (IRow row : database.query(
"SELECT `inventory`,`tagName`,`compareName`,`compareDurability`," +
"`compareLore`,`compareEnchants`,`world`, `x`, `y`, `z` FROM `traders`"
"`compareLore`,`compareEnchants`,`shouldPrintTagID`,`world`, `x`, `y`, `z` FROM `traders`"
))
{
RunsafeInventory inventory = server.createInventory(null, 27);
Expand All @@ -31,9 +31,11 @@ public List<TraderData> getTraders()
int compareDurability = row.Integer("compareDurability");
int compareLore = row.Integer("compareLore");
int compareEnchants = row.Integer("compareEnchants");
int shouldPrintTagID = row.Integer("shouldPrintTagID");

data.add(new TraderData(row.Location(), inventory, row.String("tagName"),
(compareName != 0), (compareDurability != 0), (compareLore != 0), (compareEnchants != 0)
(compareName != 0), (compareDurability != 0), (compareLore != 0), (compareEnchants != 0),
(shouldPrintTagID != 0)
));
}

Expand All @@ -45,13 +47,14 @@ public void persistTrader(TraderData data)
ILocation location = data.getLocation();
database.execute(
"INSERT INTO `traders` (`inventory`, `tagName`, `compareName`, `compareDurability`, " +
"`compareLore`, `compareEnchants`, `world`, `x`, `y`, `z`) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
"`compareLore`, `compareEnchants`, `shouldPrintTagID`, `world`, `x`, `y`, `z`) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
data.getInventory().serialize(),
data.getTag(),
data.shouldCompareName() ? 1 : 0,
data.shouldCompareDurability() ? 1 : 0,
data.shouldCompareLore() ? 1 : 0,
data.shouldCompareEnchants() ? 1 : 0,
data.shouldPrintTagID() ? 1 : 0,
location.getWorld().getName(),
location.getX(),
location.getY(),
Expand All @@ -64,13 +67,14 @@ public void updateTrader(TraderData data)
ILocation location = data.getLocation();
database.execute(
"UPDATE `traders` SET `inventory` = ?, `tagName` = ?, `compareName` = ?, `compareDurability` = ?," +
"`compareLore` = ?,`compareEnchants` = ? WHERE `world` = ? AND `x` = ? AND `y` = ? AND `z` = ?",
"`compareLore` = ?,`compareEnchants` = ?, `shouldPrintTagID` = ?, WHERE `world` = ? AND `x` = ? AND `y` = ? AND `z` = ?",
data.getInventory().serialize(),
data.getTag(),
data.shouldCompareName() ? 1 : 0,
data.shouldCompareDurability() ? 1 : 0,
data.shouldCompareLore() ? 1 : 0,
data.shouldCompareEnchants() ? 1 : 0,
data.shouldPrintTagID() ? 1 : 0,
location.getWorld().getName(),
(double) location.getBlockX(),
(double) location.getBlockY(),
Expand Down Expand Up @@ -154,6 +158,8 @@ public ISchemaUpdate getSchemaUpdateQueries()
"ADD COLUMN `compareEnchants` TINYINT(2) NOT NULL DEFAULT 1 AFTER `compareLore`;"
);

updates.addQueries("ALTER TABLE `traders` ADD COLUMN `shouldPrintTagID` TINYINT(2) NOT NULL DEFAULT 1 AFTER `compareEnchants`");

return updates;
}

Expand Down
7 changes: 5 additions & 2 deletions src/no/runsafe/ItemControl/trading/commands/CreateShop.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,24 @@ public CreateShop(TradingHandler handler)
new BooleanArgument(COMPARE_NAME).withDefault(true),
new BooleanArgument(COMPARE_DURABILITY).withDefault(true),
new BooleanArgument(COMPARE_LORE).withDefault(true),
new BooleanArgument(COMPARE_ENCHANTS).withDefault(true)
new BooleanArgument(COMPARE_ENCHANTS).withDefault(true),
new BooleanArgument(PRINT_TAG_ID).withDefault(true)
);
this.handler = handler;
}
private static final String COMPARE_NAME = "compareName";
private static final String COMPARE_DURABILITY = "compareDurability";
private static final String COMPARE_LORE = "compareLore";
private static final String COMPARE_ENCHANTS = "compareEnchants";
private static final String PRINT_TAG_ID = "printTagID";

@Override
public String OnExecute(IPlayer executor, IArgumentList parameters)
{
handler.getCreatingPlayers().put(executor, new PurchaseData(null,
parameters.getRequired(COMPARE_NAME), parameters.getRequired(COMPARE_DURABILITY),
parameters.getRequired(COMPARE_LORE), parameters.getRequired(COMPARE_ENCHANTS)
parameters.getRequired(COMPARE_LORE), parameters.getRequired(COMPARE_ENCHANTS),
parameters.getRequired(PRINT_TAG_ID)
));

return Globals.getCommandsShopCreateMessage();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ public CreateTagShop(TradingHandler handler)
new BooleanArgument(COMPARE_NAME).withDefault(true),
new BooleanArgument(COMPARE_DURABILITY).withDefault(true),
new BooleanArgument(COMPARE_LORE).withDefault(true),
new BooleanArgument(COMPARE_ENCHANTS).withDefault(true)
new BooleanArgument(COMPARE_ENCHANTS).withDefault(true),
new BooleanArgument(PRINT_TAG_ID).withDefault(true)
);
this.handler = handler;
}
Expand All @@ -31,6 +32,7 @@ public CreateTagShop(TradingHandler handler)
private static final String COMPARE_DURABILITY = "compareDurability";
private static final String COMPARE_LORE = "compareLore";
private static final String COMPARE_ENCHANTS = "compareEnchants";
private static final String PRINT_TAG_ID = "printTagID";

@Override
public String OnExecute(IPlayer executor, IArgumentList parameters)
Expand All @@ -41,7 +43,8 @@ public String OnExecute(IPlayer executor, IArgumentList parameters)

handler.getCreatingPlayers().put(executor, new PurchaseData(tag,
parameters.getRequired(COMPARE_NAME), parameters.getRequired(COMPARE_DURABILITY),
parameters.getRequired(COMPARE_LORE), parameters.getRequired(COMPARE_ENCHANTS)
parameters.getRequired(COMPARE_LORE), parameters.getRequired(COMPARE_ENCHANTS),
parameters.getRequired(PRINT_TAG_ID)
));

if (tag == null)
Expand Down
36 changes: 36 additions & 0 deletions src/no/runsafe/ItemControl/trading/commands/Tag/ResetScore.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package no.runsafe.ItemControl.trading.commands.Tag;

import no.runsafe.ItemControl.trading.TradingHandler;
import no.runsafe.framework.api.command.ExecutableCommand;
import no.runsafe.framework.api.command.ICommandExecutor;
import no.runsafe.framework.api.command.argument.IArgumentList;
import no.runsafe.framework.api.command.argument.RequiredArgument;

public class ResetScore extends ExecutableCommand
{
public ResetScore(TradingHandler handler)
{
super(
"resetscore",
"Resets player scores for this tag.",
"runsafe.traders.tag.resetscore",
new RequiredArgument(TAG_NAME)
);
this.handler = handler;
}

private static final String TAG_NAME = "tagName";
@Override
public String OnExecute(ICommandExecutor executor, IArgumentList parameters)
{
String tag = parameters.getRequired(TAG_NAME);

if (!handler.getAllTags().contains(tag))
return "&cInvalid item tag.";

handler.deleteTagPlayerScore(tag);
return "&aTag player score information cleared for:" + tag;
}

private final TradingHandler handler;
}