Rewards: delivery on Paper/Fabric, admin bundle editor, launcher chips
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DjMbLQujBHunCCu5GpsHaT
This commit is contained in:
18 files changed
+496
-2
No files matched your search
@@ -30,6 +30,7 @@ final class ClientLinkBridge implements PluginMessageListener {
|
||||
private final Integration integration;
|
||||
private final ShopPoints shops;
|
||||
private ActionPoller poller;
|
||||
private net.scopenet.core.RewardPoller rewards;
|
||||
private MapService mapService;
|
||||
private EconomyHandler economy;
|
||||
|
||||
@@ -82,7 +83,12 @@ final class ClientLinkBridge implements PluginMessageListener {
|
||||
mapService = new MapService(env, integration.client().claims(), source, cache, integration.settings().panel().toString(),
|
||||
plugin.getConfig().getBoolean("map.show-homes", false), Bukkit.getServer().getName());
|
||||
integration.setMapOverlay(() -> net.scopenet.core.map.MapOverlay.toJson(mapService.snapshot()).toString());
|
||||
Bukkit.getScheduler().runTaskTimer(plugin, () -> { poller.tick(); mapService.tick(); }, 60, 20);
|
||||
var cfg = plugin.getConfig();
|
||||
var defaults = net.scopenet.core.RewardRules.defaults();
|
||||
rewards = new net.scopenet.core.RewardPoller(env, new net.scopenet.core.RewardRules(cfg.getBoolean("rewards.enabled", true), cfg.getBoolean("rewards.allow-commands", false),
|
||||
cfg.getString("rewards.permission-command", defaults.permissionCommand()), cfg.getString("rewards.permission-deny-command", defaults.permissionDenyCommand()),
|
||||
cfg.getString("rewards.permission-temp-command", defaults.permissionTempCommand()), cfg.getString("rewards.group-command", defaults.groupCommand())));
|
||||
Bukkit.getScheduler().runTaskTimer(plugin, () -> { poller.tick(); rewards.tick(); mapService.tick(); }, 60, 20);
|
||||
}
|
||||
|
||||
/** /market point add|remove|list, on the block the player is looking at (or standing on). */
|
||||
@@ -150,6 +156,22 @@ final class ClientLinkBridge implements PluginMessageListener {
|
||||
}
|
||||
@Override public void runAsync(Runnable task) { Bukkit.getScheduler().runTaskAsynchronously(plugin, task); }
|
||||
|
||||
@Override public boolean giveItem(UUID id, String item, int amount) {
|
||||
Player p = Bukkit.getPlayer(id);
|
||||
if (p == null) return false;
|
||||
Material m = Material.matchMaterial(item);
|
||||
if (m == null && item.startsWith("minecraft:")) m = Material.matchMaterial(item.substring(10));
|
||||
if (m == null || !m.isItem() || m == Material.AIR) return false;
|
||||
for (int left = amount; left > 0; ) {
|
||||
int n = Math.min(left, m.getMaxStackSize());
|
||||
for (ItemStack over : p.getInventory().addItem(new ItemStack(m, n)).values()) p.getWorld().dropItemNaturally(p.getLocation(), over);
|
||||
left -= n;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override public boolean console(String command) { return Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command); }
|
||||
|
||||
record PaperPlayer(Player p) implements CorePlayer {
|
||||
@Override public UUID uuid() { return p.getUniqueId(); }
|
||||
@Override public String name() { return p.getName(); }
|
||||
|
||||
Reference in new issue
Block a user