Skip to content

Commit

Permalink
Add message to player and server log when creating/removing EnergyNodes.
Browse files Browse the repository at this point in the history
  • Loading branch information
voidstarr committed May 28, 2021
1 parent 82c41fc commit 6427538
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
28 changes: 28 additions & 0 deletions src/main/java/tv/voidstar/powersink/PowerSinkData.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@
import ninja.leaping.configurate.objectmapping.ObjectMappingException;
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializerCollection;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.service.economy.Currency;
import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.action.TextActions;
import org.spongepowered.api.text.format.TextColors;
import org.spongepowered.api.world.Location;
import org.spongepowered.api.world.World;
import tv.voidstar.powersink.energy.EnergyNode;
Expand Down Expand Up @@ -94,14 +98,38 @@ public static void save() {

public static void addEnergyNode(EnergyNode node) {
energyNodes.put(node.getLocation(), node);
notifyPlayerNodeModified(node, "created");
save();
}

public static void delEnergyNode(Location<World> location) {
EnergyNode node = energyNodes.get(location);
energyNodes.remove(location);
notifyPlayerNodeModified(node, "deleted");
save();
}

public static void notifyPlayerNodeModified(EnergyNode node, String verb) {
String nodeType = node.getNodeType().toString();
nodeType = "Energy".concat(nodeType.substring(0, 1).toUpperCase().concat(nodeType.substring(1)));

PowerSink.getLogger().info("{} at {} {}.", nodeType, node.getLocation(), verb);
Text nodeTextWithLocation = Text.builder(nodeType.concat(" "))
.color(TextColors.YELLOW)
.onHover(TextActions.showText(Text.of(node.getLocation())))
.build();

Text ownedOverAllowed = Text.builder(
Integer.toString(PowerSinkData.countNodes(node.getPlayerOwner(), node.getNodeType()))
.concat("/")
.concat(Integer.toString(PowerSinkConfig.getNodeLimit(node.getPlayerOwner(), node.getNodeType())))
).build();

Sponge.getServer().getPlayer(node.getPlayerOwner()).ifPresent((player -> {
player.sendMessage(Text.of("[PowerSink] ", nodeTextWithLocation, Text.of(verb.concat(". "), ownedOverAllowed)));
}));
}

public static boolean hasEnergyNode(Location<World> location) {
return energyNodes.containsKey(location);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
public class SpongeBlockBreakEventListener {
@Listener
public void onBlockBreak(ChangeBlockEvent.Break event, @First Player player) {
PowerSink.getLogger().info("Player({}) broke block", player);
event.getTransactions().forEach((blockSnapshotTransaction -> {
blockSnapshotTransaction.getFinal().getLocation().ifPresent((location -> {
PowerSinkData.delEnergyNode(location);
Expand Down

0 comments on commit 6427538

Please sign in to comment.