Skip to content

Commit

Permalink
Merge pull request #10 from HimaJyun/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
HimaJyun authored May 20, 2020
2 parents d6dc18b + 41cf4d3 commit bd7031b
Show file tree
Hide file tree
Showing 24 changed files with 308 additions and 246 deletions.
36 changes: 19 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Economy base plugin for Bukkit/Spigot

## Features
* UUID Ready
* 1.13, 1.14 Ready
* 1.15 Ready
* Vault Ready
* MySQL(+SQLite) Ready
* Command tab complete
Expand All @@ -30,29 +30,31 @@ Economy base plugin for Bukkit/Spigot
|/money create <player> [balance]|jecon.create|Create <player> account.|OP|
|/money remove <player>|jecon.remove|Remove <player> account.|OP|
|/money top [page]|jecon.top|Show billionaires ranking.|OP|
|/money convert|jecon.convert|Convert database.|
|/money convert|jecon.convert|Convert database.|OP|
|/money reload|jecon.reload|Reload the config.|OP|
|/money version|jecon.version|Show version and check new version.|OP|
|/money help|N/A|Show helps.|ALL|

# API
## Maven
```xml
<repositories>
<repository>
<id>himajyun-repo</id>
<url>https://himajyun.github.io/mvn-repo/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>jp.jyn</groupId>
<artifactId>Jecon</artifactId>
<version>2.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<project>
<repositories>
<repository>
<id>himajyun-repo</id>
<url>https://himajyun.github.io/mvn-repo/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>jp.jyn</groupId>
<artifactId>Jecon</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
```

## Usage
Expand Down
27 changes: 16 additions & 11 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>jp.jyn</groupId>
<artifactId>Jecon</artifactId>
<version>2.1.0</version>
<version>2.2.0</version>
<url>https://github.com/HimaJyun/Jecon</url>
<description>Jecon is a simple economy plugin.</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<spigot.version>1.13.2-R0.1-SNAPSHOT</spigot.version>
<spigot.version>1.15.2-R0.1-SNAPSHOT</spigot.version>
<relocation.package>jp.jyn.jecon.lib</relocation.package>
</properties>

Expand Down Expand Up @@ -42,8 +43,8 @@
<url>https://himajyun.github.io/mvn-repo/</url>
</repository>
<repository>
<id>vault-repo</id>
<url>https://himajyun.github.io/bukkit-vault-mvn/</url>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
Expand All @@ -54,7 +55,7 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.milkbowl.vault</groupId>
<groupId>com.github.MilkBowl</groupId>
<artifactId>VaultAPI</artifactId>
<version>1.7</version>
<scope>provided</scope>
Expand All @@ -63,17 +64,17 @@
<dependency>
<groupId>jp.jyn</groupId>
<artifactId>JBukkitLib</artifactId>
<version>1.1.0</version>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.3.1</version>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.25</version>
<version>1.7.30</version>
</dependency>
</dependencies>

Expand All @@ -82,7 +83,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<version>3.8.1</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<source>${java.version}</source>
Expand All @@ -92,7 +93,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.1</version>
<version>3.2.0</version>
<configuration>
<author>true</author>
<source>${java.version}</source>
Expand Down Expand Up @@ -132,7 +133,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<version>3.2.3</version>
<executions>
<execution>
<phase>package</phase>
Expand All @@ -157,6 +158,10 @@
<pattern>com.zaxxer.hikari</pattern>
<shadedPattern>${relocation.package}.hikari</shadedPattern>
</relocation>
<relocation>
<pattern>org.slf4j</pattern>
<shadedPattern>${relocation.package}.slf4j</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
Expand Down
15 changes: 12 additions & 3 deletions src/main/java/jp/jyn/jecon/EventListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

import java.math.BigDecimal;
import java.util.UUID;
import java.util.function.Consumer;

@SuppressWarnings("unused")
@PackagePrivate
Expand All @@ -21,13 +22,19 @@ class EventListener implements Listener {
private final VersionChecker checker;
private final BalanceRepository repository;

private final Consumer<UUID> consistency;
private final Consumer<UUID> save;

@PackagePrivate
EventListener(MainConfig config, VersionChecker checker, BalanceRepository repository) {
EventListener(MainConfig config, VersionChecker checker, BalanceRepository repository,
Consumer<UUID> consistency, Consumer<UUID> save) {
this.createAccountOnJoin = config.createAccountOnJoin;
this.defaultBalance = config.defaultBalance;

this.checker = checker;
this.repository = repository;
this.consistency = consistency;
this.save = save;
}

@EventHandler(ignoreCancelled = true)
Expand All @@ -37,14 +44,16 @@ public void onPlayerJoin(PlayerJoinEvent e) {
checker.check(player);
}

// ログイン時に一貫性チェック
consistency.accept(player.getUniqueId());

if (createAccountOnJoin) {
repository.createAccount(player.getUniqueId(), defaultBalance);
}
}

@EventHandler(ignoreCancelled = true)
public void onPlayerQuit(PlayerQuitEvent e) {
UUID uuid = e.getPlayer().getUniqueId();
repository.save(uuid);
save.accept(e.getPlayer().getUniqueId());
}
}
39 changes: 31 additions & 8 deletions src/main/java/jp/jyn/jecon/Jecon.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@

import java.util.ArrayDeque;
import java.util.Deque;
import java.util.UUID;
import java.util.function.Consumer;

public class Jecon extends JavaPlugin {
private static Jecon instance = null;
Expand All @@ -61,17 +63,37 @@ public void onEnable() {
UUIDRegistry registry = UUIDRegistry.getSharedCacheRegistry(this);

VersionChecker checker = new VersionChecker(main.versionCheck, message);
BukkitTask task = getServer().getScheduler().runTaskLater(this, () -> checker.check(Bukkit.getConsoleSender()), 20 * 30);
BukkitTask task = getServer().getScheduler().runTaskLater(
this,
() -> checker.check(Bukkit.getConsoleSender()), 20 * 30
);
destructor.addFirst(task::cancel);

// connect db
Database db = Database.connect(main.database);
destructor.addFirst(db::close);

// methods for internal use.
Consumer<UUID> consistency;
Consumer<UUID> save;
Runnable saveAll;
// init repository
repository = main.lazyWrite ? new LazyRepository(main, db) : new SyncRepository(main, db);
if (main.lazyWrite) {
LazyRepository lazy = new LazyRepository(main, db);
repository = lazy;

consistency = lazy::consistency;
save = lazy::save;
saveAll = lazy::saveAll;
} else {
repository = new SyncRepository(main, db);

consistency = u -> {};
save = u -> {};
saveAll = () -> {};
}
destructor.addFirst(() -> {
repository.saveAll();
saveAll.run();
repository = null;
});

Expand All @@ -90,7 +112,9 @@ public void onEnable() {
}

// register events
getServer().getPluginManager().registerEvents(new EventListener(main, checker, repository), this);
getServer().getPluginManager().registerEvents(
new EventListener(main, checker, repository, consistency, save), this
);
destructor.addFirst(() -> HandlerList.unregisterAll(this));

// register commands
Expand All @@ -104,7 +128,7 @@ public void onEnable() {
.putCommand("create", new Create(main, message, registry, repository))
.putCommand("remove", new Remove(message, registry, repository))
.putCommand("top", new Top(message, registry, repository))
.putCommand("convert", new Convert(config, repository, db))
.putCommand("convert", new Convert(config, repository, db, saveAll))
.putCommand("reload", new Reload(message))
.putCommand("version", new Version(message, checker));
Help help = new Help(message, builder.getSubCommands());
Expand Down Expand Up @@ -165,9 +189,8 @@ public void onPluginEnable(PluginEnableEvent e) {
if (!e.getPlugin().getName().equals("Vault")) {
return;
}
Jecon jecon = Jecon.getInstance();
jecon.vaultHook(registry);
PluginEnableEvent.getHandlerList().unregister(jecon);
Jecon.getInstance().vaultHook(registry);
PluginEnableEvent.getHandlerList().unregister(this);
}
}
}
20 changes: 13 additions & 7 deletions src/main/java/jp/jyn/jecon/command/CommandUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

import jp.jyn.jbukkitlib.util.PackagePrivate;
import org.bukkit.Bukkit;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Deque;
import java.util.List;
import java.util.stream.Collectors;

// it is bad practice.
@PackagePrivate
Expand All @@ -30,10 +31,15 @@ static List<String> tabCompletePlayer(Deque<String> args) {
return Collections.emptyList();
}

return Bukkit.getOnlinePlayers()
.stream()
.map(HumanEntity::getName)
.filter(str -> str.startsWith(args.getFirst()))
.collect(Collectors.toList());
Collection<? extends Player> players = Bukkit.getOnlinePlayers();
List<String> complete = new ArrayList<>(players.size());
String arg = args.getFirst();
for (Player player : players) {
String name = player.getName();
if (name.startsWith(arg)) {
complete.add(name);
}
}
return complete;
}
}
8 changes: 5 additions & 3 deletions src/main/java/jp/jyn/jecon/command/Convert.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,18 @@ public class Convert extends SubCommand {
private final BalanceRepository repository;
private final Database oldDB;
private final MainConfig.DatabaseConfig old;
private final Runnable save;

public Convert(ConfigLoader loader, BalanceRepository repository,Database oldDB) {
public Convert(ConfigLoader loader, BalanceRepository repository, Database oldDB, Runnable save) {
this.loader = loader;
this.repository = repository;
this.oldDB = oldDB;
this.old = loader.getMainConfig().database;
this.save = save;
}

@Override
protected Result execCommand(CommandSender sender, Queue<String> args) {
protected Result onCommand(CommandSender sender, Queue<String> args) {
// 割と強引
YamlLoader config = new YamlLoader(Jecon.getInstance(), "config.yml");
if (Optional.ofNullable(args.poll()).map(a -> a.equalsIgnoreCase("confirm")).orElse(false)) {
Expand Down Expand Up @@ -82,7 +84,7 @@ private void convert(CommandSender sender, YamlLoader config) {
Database db = Database.connect(loader.getMainConfig().database);

sender.sendMessage("Saving unsaved data.");
repository.saveAll();
save.run();

sender.sendMessage("Converting...");
db.convert(oldDB);
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/jp/jyn/jecon/command/Create.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public Create(MainConfig main, MessageConfig message, UUIDRegistry registry, Bal
}

@Override
protected Result execCommand(CommandSender sender, Queue<String> args) {
protected Result onCommand(CommandSender sender, Queue<String> args) {
String name = args.remove();
final BigDecimal balance;
try {
Expand Down Expand Up @@ -58,7 +58,7 @@ protected Result execCommand(CommandSender sender, Queue<String> args) {
}

@Override
protected List<String> execTabComplete(CommandSender sender, Deque<String> args) {
protected List<String> onTabComplete(CommandSender sender, Deque<String> args) {
return CommandUtils.tabCompletePlayer(args);
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/jp/jyn/jecon/command/Give.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public Give(MessageConfig message, UUIDRegistry registry, BalanceRepository repo

@SuppressWarnings("Duplicates")
@Override
protected Result execCommand(CommandSender sender, Queue<String> args) {
protected Result onCommand(CommandSender sender, Queue<String> args) {
String to = args.remove();
BigDecimal amount = CommandUtils.parseDecimal(args.element());
if (amount == null) {
Expand All @@ -51,7 +51,7 @@ protected Result execCommand(CommandSender sender, Queue<String> args) {
}

@Override
protected List<String> execTabComplete(CommandSender sender, Deque<String> args) {
protected List<String> onTabComplete(CommandSender sender, Deque<String> args) {
return CommandUtils.tabCompletePlayer(args);
}

Expand Down
Loading

0 comments on commit bd7031b

Please sign in to comment.