mirror of
https://github.com/xHyroM/lighteco.git
synced 2024-11-25 08:11:04 +01:00
feat: add currency-money addon
This commit is contained in:
parent
9305b33f13
commit
a99fb995e4
14 changed files with 123 additions and 65 deletions
|
@ -4,6 +4,7 @@ import dev.xhyrom.lighteco.api.model.currency.Currency;
|
||||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
|
|
||||||
public interface CommandManager {
|
public interface CommandManager {
|
||||||
|
// Make more transparent and freedom way to do this (more abstract)
|
||||||
void registerCurrencyCommand(@NonNull Currency currency);
|
void registerCurrencyCommand(@NonNull Currency currency);
|
||||||
void registerCurrencyCommand(@NonNull Currency currency, boolean main);
|
void registerCurrencyCommand(@NonNull Currency currency, boolean main);
|
||||||
}
|
}
|
||||||
|
|
13
buildSrc/src/main/kotlin/lighteco.addon-logic.gradle.kts
Normal file
13
buildSrc/src/main/kotlin/lighteco.addon-logic.gradle.kts
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
plugins {
|
||||||
|
id("lighteco.shadow-logic")
|
||||||
|
}
|
||||||
|
|
||||||
|
val Project.addon: String
|
||||||
|
get() = project.name.split("-").drop(1).joinToString("-")
|
||||||
|
|
||||||
|
tasks {
|
||||||
|
shadowJar {
|
||||||
|
archiveFileName.set("lighteco-${project.addon}-${project.version}.jar")
|
||||||
|
destinationDirectory.set(rootProject.layout.buildDirectory.dir("libs/addons"))
|
||||||
|
}
|
||||||
|
}
|
|
@ -50,10 +50,22 @@ public class BukkitCommandManager extends AbstractCommandManager {
|
||||||
|
|
||||||
String permissionBase = "lighteco.currency." + currency.getIdentifier() + ".command.";
|
String permissionBase = "lighteco.currency." + currency.getIdentifier() + ".command.";
|
||||||
|
|
||||||
new SetCommand(this, currency, permissionBase).build().register();
|
// Dont expose set, give, take directly - only through main command
|
||||||
new GiveCommand(this, currency, permissionBase).build().register();
|
new CommandAPICommand(currency.getIdentifier())
|
||||||
new TakeCommand(this, currency, permissionBase).build().register();
|
.withSubcommand(new SetCommand(this, currency, permissionBase).build())
|
||||||
|
.withSubcommand(new GiveCommand(this, currency, permissionBase).build())
|
||||||
|
.withSubcommand(new TakeCommand(this, currency, permissionBase).build());
|
||||||
|
|
||||||
new PayCommand(this, currency, permissionBase).build().register();
|
new PayCommand(this, currency, permissionBase).build().register();
|
||||||
new BalanceCommand(this, "balance", currency, permissionBase).build().register();
|
|
||||||
|
for (CommandAPICommand cmd : new BalanceCommand(
|
||||||
|
this,
|
||||||
|
"balance",
|
||||||
|
currency,
|
||||||
|
permissionBase
|
||||||
|
).multipleBuild()) {
|
||||||
|
cmd.register();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,3 @@ main: dev.xhyrom.lighteco.bukkit.BukkitLightEcoLoader
|
||||||
author: ${author}
|
author: ${author}
|
||||||
api-version: 1.20
|
api-version: 1.20
|
||||||
load: STARTUP
|
load: STARTUP
|
||||||
|
|
||||||
softdepend:
|
|
||||||
- Vault
|
|
|
@ -20,7 +20,7 @@ public abstract class AbstractLightEcoPlugin implements LightEcoPlugin {
|
||||||
private Config config;
|
private Config config;
|
||||||
|
|
||||||
public final void load() {
|
public final void load() {
|
||||||
Config config = ConfigManager.create(Config.class, (it) -> {
|
this.config = ConfigManager.create(Config.class, (it) -> {
|
||||||
File path = new File(this.getBootstrap().getDataFolder(), "config.yml");
|
File path = new File(this.getBootstrap().getDataFolder(), "config.yml");
|
||||||
path.mkdir();
|
path.mkdir();
|
||||||
|
|
||||||
|
@ -30,8 +30,6 @@ public abstract class AbstractLightEcoPlugin implements LightEcoPlugin {
|
||||||
it.saveDefaults();
|
it.saveDefaults();
|
||||||
it.load(true);
|
it.load(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.config = config;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void enable() {
|
public final void enable() {
|
||||||
|
|
19
currency-money/build.gradle.kts
Normal file
19
currency-money/build.gradle.kts
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
plugins {
|
||||||
|
id("lighteco.addon-logic")
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
maven("https://repo.papermc.io/repository/maven-public/")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compileOnly(project(":lighteco-api"))
|
||||||
|
|
||||||
|
compileOnly("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT")
|
||||||
|
|
||||||
|
compileOnly("org.projectlombok:lombok:1.18.28")
|
||||||
|
annotationProcessor("org.projectlombok:lombok:1.18.28")
|
||||||
|
|
||||||
|
compileOnly("org.checkerframework:checker-qual:3.8.0")
|
||||||
|
compileOnly("org.jetbrains:annotations:20.1.0")
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package dev.xhyrom.lighteco.currency.money.bukkit;
|
||||||
|
|
||||||
|
import dev.xhyrom.lighteco.api.LightEco;
|
||||||
|
import dev.xhyrom.lighteco.api.LightEcoProvider;
|
||||||
|
import dev.xhyrom.lighteco.api.manager.CommandManager;
|
||||||
|
import dev.xhyrom.lighteco.api.manager.CurrencyManager;
|
||||||
|
import dev.xhyrom.lighteco.api.model.currency.Currency;
|
||||||
|
import dev.xhyrom.lighteco.currency.money.common.MoneyCurrency;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
public class BukkitMCLoader extends JavaPlugin {
|
||||||
|
@Override
|
||||||
|
public void onEnable() {
|
||||||
|
LightEco provider = LightEcoProvider.get();
|
||||||
|
CurrencyManager currencyManager = provider.getCurrencyManager();
|
||||||
|
CommandManager commandManager = provider.getCommandManager();
|
||||||
|
|
||||||
|
Currency currency = new MoneyCurrency();
|
||||||
|
|
||||||
|
currencyManager.registerCurrency(currency);
|
||||||
|
commandManager.registerCurrencyCommand(currency, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
package dev.xhyrom.lighteco.currency.money.bukkit.hooks;
|
||||||
|
|
||||||
|
public class Vault {
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
package dev.xhyrom.lighteco.currency.money.common;
|
||||||
|
|
||||||
|
import dev.xhyrom.lighteco.api.model.currency.Currency;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class MoneyCurrency extends Currency {
|
||||||
|
@Override
|
||||||
|
public String getIdentifier() {
|
||||||
|
return "money";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type getType() {
|
||||||
|
return Type.LOCAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPayable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BigDecimal getDefaultBalance() {
|
||||||
|
return BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getDecimalPlaces() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
}
|
10
currency-money/src/main/resources/plugin.yml
Normal file
10
currency-money/src/main/resources/plugin.yml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
name: ${name}
|
||||||
|
description: ${description}
|
||||||
|
version: ${version}
|
||||||
|
main: dev.xhyrom.lighteco.currency.money.bukkit.BukkitMCLoader
|
||||||
|
author: ${author}
|
||||||
|
api-version: 1.20
|
||||||
|
|
||||||
|
softdepend:
|
||||||
|
- Vault
|
||||||
|
- lighteco-bukkit
|
|
@ -5,7 +5,7 @@ sequenceOf(
|
||||||
"common",
|
"common",
|
||||||
"bukkit",
|
"bukkit",
|
||||||
"bukkittest",
|
"bukkittest",
|
||||||
"velocity"
|
"currency-money"
|
||||||
).forEach {
|
).forEach {
|
||||||
include("lighteco-$it")
|
include("lighteco-$it")
|
||||||
project(":lighteco-$it").projectDir = file(it)
|
project(":lighteco-$it").projectDir = file(it)
|
||||||
|
|
42
velocity/.gitignore
vendored
42
velocity/.gitignore
vendored
|
@ -1,42 +0,0 @@
|
||||||
.gradle
|
|
||||||
build/
|
|
||||||
!gradle/wrapper/gradle-wrapper.jar
|
|
||||||
!**/src/main/**/build/
|
|
||||||
!**/src/test/**/build/
|
|
||||||
|
|
||||||
### IntelliJ IDEA ###
|
|
||||||
.idea/modules.xml
|
|
||||||
.idea/jarRepositories.xml
|
|
||||||
.idea/compiler.xml
|
|
||||||
.idea/libraries/
|
|
||||||
*.iws
|
|
||||||
*.iml
|
|
||||||
*.ipr
|
|
||||||
out/
|
|
||||||
!**/src/main/**/out/
|
|
||||||
!**/src/test/**/out/
|
|
||||||
|
|
||||||
### Eclipse ###
|
|
||||||
.apt_generated
|
|
||||||
.classpath
|
|
||||||
.factorypath
|
|
||||||
.project
|
|
||||||
.settings
|
|
||||||
.springBeans
|
|
||||||
.sts4-cache
|
|
||||||
bin/
|
|
||||||
!**/src/main/**/bin/
|
|
||||||
!**/src/test/**/bin/
|
|
||||||
|
|
||||||
### NetBeans ###
|
|
||||||
/nbproject/private/
|
|
||||||
/nbbuild/
|
|
||||||
/dist/
|
|
||||||
/nbdist/
|
|
||||||
/.nb-gradle/
|
|
||||||
|
|
||||||
### VS Code ###
|
|
||||||
.vscode/
|
|
||||||
|
|
||||||
### Mac OS ###
|
|
||||||
.DS_Store
|
|
|
@ -1,3 +0,0 @@
|
||||||
plugins {
|
|
||||||
id("lighteco.platform-logic")
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
package dev.xhyrom;
|
|
||||||
|
|
||||||
public class Main {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
System.out.println("Hello world!");
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue