maybe there is a fishcoin code in here?my to do list is 1000 items long and yet here i am watching youtube againmessage1i need to actually learn how to do stuff1g1dma5a7realfishcoinwell that was somethingi love fishcoin
have YOU desired to have fishcoin in your minecraft world or server? now you can!
- install the .jar to your server
- use commands like
/fishcoin send <username>to simply send other players coin - setup rewards and item selling for coin! minecraft fishcoin based government!
it comes with a simple configuration file in the plugin/mod folder.
downloads
❌ no fabric jar (yet?)
fishcoin-minecraft
now fishcoin can power your smp
spigot/paper/bukkit version, will be merged into fabric branch eventually
> for minecraft spigot/paper/bukkit 1.21.10
to build, run mvn clean package in the root directory
- you'll find the built jar in the
targetfolder
features
all of these features are configurable
- /fishcoin (fc) command to manage your wallet, send fishcoin around, and recieve rewards from gameplay
- sell items for fishcoin
- withdraw coins as items, with the real fishcoin held in the server wallet
rewards
- passive income (just playing the game, configurable to increase near other players)
- advancements
- kill players to recieve their bounty
- be the first to find world structures (or shortly after the first)
- open loot chests for the first time
- open a vault or ominous vault
- eat an enchanted gapple
- break a mob spawner
- fill an end portal
new hidden advancements (for single time rewards)
- make a cake
- tame a cat
- gloat the dragon egg (hold egg in your hand, in sunlight near another player)
- touch the world border (overworld)
- touch the world border corner (overworld)
- touch the world border (nether)
- touch the world border corner (nether)
- touch the world border (end)
- touch the world border corner (end)
more
<details> <summary>advanced info</summary>
want to use your self-hosted stuff? use these hidden config options:
api: "<api-url-here>"
java-pack-url: "<java-pack-url>"
java-pack-hash: "<java-pack-hash>"
bedrock-pack-url: "<bedrock-pack-url>"
bedrock-mappings-url: "<backrock-mappings-url>"
if you're developing another plugin, use FishcoinHook to interact with fishcoin
> Note: FishcoinHook is loaded via reflection, so no compile dependency needed. Always wrap calls in try-catch blocks.
give coins to a player
try {
Class<?> hookClass = Class.forName("com.fisheater.FishcoinHook");
java.lang.reflect.Method method = hookClass.getMethod("give", String.class, long.class);
method.invoke(null, "PlayerName", 100L);
} catch (ClassNotFoundException e) {
plugin.getLogger().warning("FishcoinHook not found - is fishcoin plugin installed?");
} catch (Exception e) {
plugin.getLogger().warning("FishcoinHook error: " + e.getMessage());
}
take coins from a player (with callback)
try {
Class<?> hookClass = Class.forName("com.fisheater.FishcoinHook");
java.lang.reflect.Method method = hookClass.getMethod("take", String.class, long.class, java.util.function.Consumer.class);
method.invoke(null, "PlayerName", 50L, (java.util.function.Consumer<Boolean>) success -> {
if (success) {
player.sendMessage("payment received!");
} else {
player.sendMessage("insufficient funds");
}
});
} catch (ClassNotFoundException e) {
plugin.getLogger().warning("FishcoinHook not found");
} catch (Exception e) {
plugin.getLogger().warning("FishcoinHook error: " + e.getMessage());
}
check player balance (async)
try {
Class<?> hookClass = Class.forName("com.fisheater.FishcoinHook");
java.lang.reflect.Method method = hookClass.getMethod("getBalance", String.class, java.util.function.Consumer.class);
method.invoke(null, "PlayerName", (java.util.function.Consumer<Long>) balance -> {
Bukkit.getScheduler().runTask(plugin, () -> {
if (balance == -1) {
player.sendMessage("no wallet linked");
} else {
player.sendMessage("your balance: ₣" + java.text.NumberFormat.getInstance().format(balance));
}
});
});
} catch (ClassNotFoundException e) {
plugin.getLogger().warning("FishcoinHook not found");
} catch (Exception e) {
plugin.getLogger().warning("FishcoinHook error: " + e.getMessage());
}
check server wallet balance (async)
try {
Class<?> hookClass = Class.forName("com.fisheater.FishcoinHook");
java.lang.reflect.Method method = hookClass.getMethod("getServerWalletBalance", java.util.function.Consumer.class);
method.invoke(null, (java.util.function.Consumer<Long>) balance -> {
Bukkit.getScheduler().runTask(plugin, () -> {
if (balance == -1) {
player.sendMessage("server wallet unavailable");
} else {
player.sendMessage("server wallet: ₣" + java.text.NumberFormat.getInstance().format(balance));
}
});
});
} catch (ClassNotFoundException e) {
plugin.getLogger().warning("FishcoinHook not found");
} catch (Exception e) {
plugin.getLogger().warning("FishcoinHook error: " + e.getMessage());
}
check if player is currently active (from PassiveIncome check)
try {
Class<?> hookClass = Class.forName("com.fisheater.FishcoinHook");
java.lang.reflect.Method method = hookClass.getMethod("isPlayerActive", String.class);
boolean active = (boolean) method.invoke(null, player.getName());
if (active) {
player.sendMessage("§aYou are eligible for active player rewards!");
} else {
player.sendMessage("§cYou must be active to claim rewards.");
}
} catch (ClassNotFoundException e) {
plugin.getLogger().warning("FishcoinHook not found");
} catch (Exception e) {
plugin.getLogger().warning("FishcoinHook error: " + e.getMessage());
}
complete example: shop plugin
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
try {
Class<?> hookClass = Class.forName("com.fisheater.FishcoinHook");
// check if they have a wallet
java.lang.reflect.Method hasWallet = hookClass.getMethod("hasWallet", String.class);
boolean wallet = (boolean) hasWallet.invoke(null, player.getName());
if (!wallet) {
player.sendMessage("§cyou need to link your fishcoin wallet!");
return;
}
// charge them
java.lang.reflect.Method take = hookClass.getMethod("take", String.class, long.class, java.util.function.Consumer.class);
take.invoke(null, player.getName(), 100L, (java.util.function.Consumer<Boolean>) success -> {
if (success) {
player.getInventory().addItem(new ItemStack(Material.DIAMOND));
player.sendMessage("§apurchased diamond for ₣100!");
} else {
player.sendMessage("§cnot enough fishcoin!");
}
});
} catch (ClassNotFoundException e) {
player.sendMessage("§cFishcoin plugin not installed!");
} catch (Exception e) {
plugin.getLogger().warning("FishcoinHook error: " + e.getMessage());
}
}
</details>
source code
first thing i've ever made in java
fisheater's peterdance