Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH-58 Add basic Parcel locker business logic #58

Merged
merged 106 commits into from
Oct 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
2708eef
Start business logic development
Jakubk15 Jul 1, 2023
788a9e0
Continue writing business logic
Jakubk15 Jul 2, 2023
e8ca8ef
Add missing import
Jakubk15 Jul 2, 2023
a452622
ParcelLockerRepository -> ParcelLockerDatabaseService
Jakubk15 Jul 2, 2023
14b769d
InventoryOpenEvent -> PlayerInteractEvent to fix StackOverflowError
Jakubk15 Jul 8, 2023
9836f2d
Add ParcelLockerBreakController
Jakubk15 Jul 9, 2023
6cc516f
Add more protection listeners and add timeout for parcel locker place…
Jakubk15 Jul 23, 2023
57f0e4e
Add economy integration (Vault), create parcel sending GUI, add ItemU…
Jakubk15 Jul 23, 2023
6627e3f
Enhance GUIs
Jakubk15 Jul 23, 2023
b7b5a99
Fix build
Jakubk15 Jul 23, 2023
0e9c5a0
fixup! Fix build
Jakubk15 Jul 23, 2023
e2d7834
Add RandomUtil, ParcelStatus enum
Jakubk15 Jul 25, 2023
dc5567f
fixup! Fix build
Jakubk15 Jul 29, 2023
a9714bc
Fix gui size and priority selector
Jakubk15 Jul 31, 2023
3f77249
Debugging
Jakubk15 Jul 31, 2023
7cebc5a
Merge remote-tracking branch 'origin/master' into business-logic
Jakubk15 Aug 26, 2023
d90edfb
Small fixes
Jakubk15 Aug 30, 2023
dd4118c
Merge remote-tracking branch 'origin/master' into business-logic
Jakubk15 Sep 1, 2023
eb517a4
Make Position class use Integers instead of Doubles
Jakubk15 Sep 1, 2023
63a4514
Fix Parcel locker break using an explosion
Jakubk15 Sep 1, 2023
3ca3e04
Merge branch 'master' into business-logic
Jakubk15 Sep 9, 2023
ed84f0d
Merge remote-tracking branch 'origin/business-logic' into business-logic
Jakubk15 Sep 9, 2023
e13228e
Integrate economy properly
Jakubk15 Sep 9, 2023
c11cbf0
Fix economy integration, change confirm/cancel items
Jakubk15 Sep 10, 2023
0314d75
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Sep 12, 2023
de94a33
Update src/main/java/com/eternalcode/parcellockers/database/ParcelLoc…
Jakubk15 Sep 12, 2023
fd7e17b
Update src/main/java/com/eternalcode/parcellockers/ParcelLockers.java
Jakubk15 Sep 12, 2023
f2048b2
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelItemStor…
Jakubk15 Sep 12, 2023
eb8fed3
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelItemStor…
Jakubk15 Sep 12, 2023
923e6e1
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Sep 12, 2023
d27b5b9
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelListGUI.…
Jakubk15 Sep 12, 2023
855dd58
Update src/main/java/com/eternalcode/parcellockers/database/ParcelLoc…
Jakubk15 Sep 12, 2023
24ec191
Remove final, move guiSettings to local variable
Jakubk15 Sep 12, 2023
4d67393
Update src/main/java/com/eternalcode/parcellockers/configuration/impl…
Jakubk15 Sep 12, 2023
6129a21
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Sep 12, 2023
3369d67
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Sep 12, 2023
01f8491
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Sep 12, 2023
3474e86
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelListGUI.…
Jakubk15 Sep 12, 2023
837d90e
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelListGUI.…
Jakubk15 Sep 12, 2023
d3111aa
Update src/main/java/com/eternalcode/parcellockers/ParcelLockers.java
Jakubk15 Sep 12, 2023
e8a49e3
Update src/main/java/com/eternalcode/parcellockers/ParcelLockers.java
Jakubk15 Sep 12, 2023
715c0e9
Fix build
Jakubk15 Sep 12, 2023
3cc6a13
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelSendingG…
Jakubk15 Sep 12, 2023
db20342
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelLockerMa…
Jakubk15 Sep 12, 2023
bced5dc
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Sep 12, 2023
5c6b803
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelSendingG…
Jakubk15 Sep 12, 2023
47b4952
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelSendingG…
Jakubk15 Sep 14, 2023
e861a0b
Update src/main/java/com/eternalcode/parcellockers/util/ItemUtil.java
Jakubk15 Sep 14, 2023
c795236
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelSendingG…
Jakubk15 Sep 14, 2023
806ea50
Update src/main/java/com/eternalcode/parcellockers/ParcelLockers.java
Jakubk15 Sep 14, 2023
cd0e5b9
Update src/main/java/com/eternalcode/parcellockers/notification/Notif…
Jakubk15 Sep 14, 2023
885c9d7
Merge branch 'master' into business-logic
Jakubk15 Sep 21, 2023
6dc9bb6
Shorten the code overall, apply review suggestions
Jakubk15 Sep 21, 2023
f27c6de
Change Set to List in repositories, use AbstractDatabaseService in da…
Jakubk15 Sep 21, 2023
b91726c
Add cache modification methods
Jakubk15 Sep 21, 2023
071f483
Add cache modification methods
Jakubk15 Sep 21, 2023
d58fc44
Use parcel name instead of unreadable UUID while suggesting parcels
Jakubk15 Sep 21, 2023
111abf4
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelListGUI.…
Jakubk15 Sep 28, 2023
658b292
Update src/main/java/com/eternalcode/parcellockers/database/ParcelDat…
Jakubk15 Sep 28, 2023
6575f08
Update src/main/java/com/eternalcode/parcellockers/database/ParcelDat…
Jakubk15 Sep 28, 2023
478d9d8
Update src/main/java/com/eternalcode/parcellockers/database/ParcelLoc…
Jakubk15 Sep 28, 2023
4df808e
Update src/main/java/com/eternalcode/parcellockers/gui/SentParcelsGUI…
Jakubk15 Sep 28, 2023
635e2a5
Update src/main/java/com/eternalcode/parcellockers/database/ParcelDat…
Jakubk15 Sep 28, 2023
cbcb294
Update src/main/java/com/eternalcode/parcellockers/database/ParcelDat…
Jakubk15 Sep 28, 2023
472ffb4
Update src/main/java/com/eternalcode/parcellockers/database/ParcelDat…
Jakubk15 Sep 28, 2023
59dfc53
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelListGUI.…
Jakubk15 Sep 28, 2023
256d03b
Update src/main/java/com/eternalcode/parcellockers/database/ParcelLoc…
Jakubk15 Sep 28, 2023
e21c856
Update src/main/java/com/eternalcode/parcellockers/database/ParcelDat…
Jakubk15 Sep 28, 2023
9052fb2
Update src/main/java/com/eternalcode/parcellockers/database/ParcelLoc…
Jakubk15 Sep 28, 2023
acafcdf
Update src/main/java/com/eternalcode/parcellockers/database/ParcelLoc…
Jakubk15 Sep 28, 2023
c815fd8
Update src/main/java/com/eternalcode/parcellockers/database/ParcelDat…
Jakubk15 Sep 28, 2023
b06da29
Update src/main/java/com/eternalcode/parcellockers/database/ParcelLoc…
Jakubk15 Sep 28, 2023
c526839
Update src/main/java/com/eternalcode/parcellockers/database/ParcelDat…
Jakubk15 Sep 28, 2023
f253efe
Update src/main/java/com/eternalcode/parcellockers/database/ParcelDat…
Jakubk15 Sep 28, 2023
e22e3c7
Fix build and tests, apply PR suggestions
Jakubk15 Sep 28, 2023
439c536
Fix suggestions
Jakubk15 Sep 30, 2023
03f31fa
Update ItemUtil.java
Jakubk15 Oct 1, 2023
1fa1c2e
Update ParcelDatabaseServiceIntegrationTest.java
Jakubk15 Oct 1, 2023
6ae8586
Update ParcelSendingGUI.java
Jakubk15 Oct 1, 2023
6c3e3d3
Update ParcelSendingGUI.java
Jakubk15 Oct 1, 2023
82cb20f
Apply PR suggestions, fix build
Jakubk15 Oct 6, 2023
72be238
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Oct 7, 2023
bc545f1
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Oct 7, 2023
9bb0b73
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Oct 7, 2023
245e859
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Oct 7, 2023
c5f13ee
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Oct 7, 2023
a62c533
Update src/main/java/com/eternalcode/parcellockers/util/ItemUtil.java
Jakubk15 Oct 7, 2023
9ada5b2
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Oct 7, 2023
ac8ab95
Update src/main/java/com/eternalcode/parcellockers/controller/ParcelL…
Jakubk15 Oct 7, 2023
c873ed2
Update src/main/java/com/eternalcode/parcellockers/gui/MainGUI.java
Jakubk15 Oct 7, 2023
1e26573
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelItemStor…
Jakubk15 Oct 7, 2023
4f99f6e
Update src/main/java/com/eternalcode/parcellockers/gui/ParcelListGUI.…
Jakubk15 Oct 7, 2023
22a9a1f
Update src/main/java/com/eternalcode/parcellockers/gui/SentParcelsGUI…
Jakubk15 Oct 7, 2023
b1ba067
Apply PR suggestions
Jakubk15 Oct 7, 2023
afa1ab0
Merge remote-tracking branch 'origin/business-logic' into business-logic
Jakubk15 Oct 7, 2023
33015e4
ParcelLocker -> Locker
Jakubk15 Oct 7, 2023
1faf5dc
Apply checkStyle fixes
Jakubk15 Oct 7, 2023
f3febf7
Simplify Gradle
Jakubk15 Oct 8, 2023
287ee36
Update src/main/java/com/eternalcode/parcellockers/parcel/gui/ParcelL…
Jakubk15 Oct 12, 2023
42ac216
Apply review changes
Jakubk15 Oct 12, 2023
c5666e0
Apply more review changes
Jakubk15 Oct 12, 2023
9012629
Fix build
Jakubk15 Oct 12, 2023
3d6c7e0
Refactor #findLocker method
Jakubk15 Oct 14, 2023
a5262d7
Update src/main/java/com/eternalcode/parcellockers/parcel/gui/ParcelL…
Jakubk15 Oct 14, 2023
a050b8f
Merge remote-tracking branch 'origin/business-logic' into business-logic
Jakubk15 Oct 14, 2023
5943387
Update src/main/java/com/eternalcode/parcellockers/locker/database/Lo…
Jakubk15 Oct 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,14 @@ more.
- [ ] Add translation system, more languages
- [ ] Add delivery codes, so any person knowing the code can pick up the parcel
- [ ] Add delivery time, so the parcel can be picked up only in a specific time
- [ ] Parcel permissions for user
- [ ] Parcel return logic
- [ ] Banned parcel items (configurable)
- [ ] Parcel fee
- [ ] Rewrite database to ORMLite (far in future)
- [ ] Add "business" logic
- [ ] Add more parcel types (fragile, etc...)
- [ ] Add option to config for parcel locker space (e.g. max parcels within a locker)
- [ ] Rewrite Position class to use Integers instead of Doubles
- [ ] Finish GUIs
- [ ] Add more GUIs (admin GUI, parcel create GUI, etc.)
Expand Down
75 changes: 35 additions & 40 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

plugins {
`java-library`
checkstyle
id("net.minecrell.plugin-yml.bukkit") version "0.6.0"
id("xyz.jpenilla.run-paper") version "2.2.0"
id("com.github.johnrengelman.shadow") version "8.1.1"
id("net.ltgt.errorprone") version "3.1.0"
}

group = "com.eternalcode"
Expand All @@ -29,7 +26,7 @@ repositories {

dependencies {
// minecraft development api
compileOnly("org.spigotmc:spigot-api:1.20.1-experimental-SNAPSHOT")
compileOnly("org.spigotmc:spigot-api:1.20.2-R0.1-SNAPSHOT")
implementation("net.kyori:adventure-platform-bukkit:4.3.0")
implementation("net.kyori:adventure-text-minimessage:4.14.0")
implementation("dev.rollczi.litecommands:bukkit-adventure:2.8.9")
Expand All @@ -40,6 +37,9 @@ dependencies {
// gui library
implementation("dev.triumphteam:triumph-gui:3.1.5")

// economy
compileOnly("com.github.MilkBowl:VaultAPI:1.7.1")

// CDN
implementation("net.dzikoysk:cdn:1.14.4")

Expand Down Expand Up @@ -69,9 +69,6 @@ dependencies {
// panda-utilities
implementation("org.panda-lang:panda-utilities:0.5.2-alpha")

// errorprone
errorprone("com.google.errorprone:error_prone_core:2.21.1")

testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.0")
testImplementation("org.junit.jupiter:junit-jupiter-params:5.10.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.0")
Expand Down Expand Up @@ -104,49 +101,47 @@ bukkit {
"Plugin that provides functionality of parcel lockers in Minecraft, allowing players to send and receive parcels safely."
website = "https://github.com/EternalCodeTeam/ParcelLockers"
version = "1.0.0-SNAPSHOT"
depend = listOf("Vault")
}

tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
options.setIncremental(true)
}

tasks.withType<ShadowJar> {
archiveFileName.set("ParcelLockers v${project.version} (MC 1.8.8-1.20.x).jar")

exclude(
"org/intellij/lang/annotations/**",
"org/jetbrains/annotations/**",
"META-INF/**",
"javax/**",
)

mergeServiceFiles()
minimize()

val prefix = "com.eternalcode.parcellockers.libs"
listOf(
"panda",
"org.panda_lang",
"net.dzikoysk",
"io.papermc.lib",
"org.bstats",
"dev.rollczi",
"net.kyori",
"okhttp3",
"org.json",
"com.fasterxml"
).forEach { pack ->
relocate(pack, "$prefix.$pack")
}
}

tasks {
runServer {
minecraftVersion("1.20.1")
}
}

tasks.getByName<Test>("test") {
useJUnitPlatform()
test {
useJUnitPlatform()
}

shadowJar {
archiveFileName.set("ParcelLockers v${project.version} (MC 1.8.8-1.20.x).jar")

exclude(
"org/intellij/lang/annotations/**",
"org/jetbrains/annotations/**",
"META-INF/**",
"javax/**",
)

mergeServiceFiles()
minimize()

val prefix = "com.eternalcode.parcellockers.libs"
listOf(
"panda",
"org.panda_lang",
"net.dzikoysk",
"io.papermc.lib",
"org.bstats",
"dev.rollczi",
"net.kyori",
"org.json",
"com.fasterxml"
).forEach { relocate(it, prefix) }
}
}
80 changes: 61 additions & 19 deletions src/main/java/com/eternalcode/parcellockers/ParcelLockers.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
package com.eternalcode.parcellockers;

import com.eternalcode.parcellockers.command.ParcelCommand;
import com.eternalcode.parcellockers.command.argument.ParcelArgument;
import com.eternalcode.parcellockers.command.argument.PlayerArgument;
import com.eternalcode.parcellockers.command.handler.InvalidUsage;
import com.eternalcode.parcellockers.command.handler.PermissionMessage;
import com.eternalcode.parcellockers.configuration.ConfigurationManager;
import com.eternalcode.parcellockers.configuration.implementation.PluginConfiguration;
import com.eternalcode.parcellockers.database.DataSourceFactory;
import com.eternalcode.parcellockers.database.ParcelDatabaseService;
import com.eternalcode.parcellockers.database.ParcelLockerDatabaseService;
import com.eternalcode.parcellockers.gui.MainGUI;
import com.eternalcode.parcellockers.gui.ParcelListGUI;
import com.eternalcode.parcellockers.locker.LockerManager;
import com.eternalcode.parcellockers.locker.controller.LockerBreakController;
import com.eternalcode.parcellockers.locker.controller.LockerInteractionController;
import com.eternalcode.parcellockers.locker.controller.LockerPlaceController;
import com.eternalcode.parcellockers.locker.database.LockerDatabaseService;
import com.eternalcode.parcellockers.locker.gui.MainGUI;
import com.eternalcode.parcellockers.notification.NotificationAnnouncer;
import com.eternalcode.parcellockers.parcel.Parcel;
import com.eternalcode.parcellockers.parcel.ParcelManager;
import com.eternalcode.parcellockers.parcellocker.ParcelLockerManager;
import com.eternalcode.parcellockers.parcellocker.repository.ParcelLockerRepository;
import com.eternalcode.parcellockers.parcel.command.ParcelCommand;
import com.eternalcode.parcellockers.parcel.command.argument.ParcelArgument;
import com.eternalcode.parcellockers.parcel.database.ParcelDatabaseService;
import com.eternalcode.parcellockers.parcel.gui.ParcelListGUI;
import com.eternalcode.parcellockers.updater.UpdaterService;
import com.eternalcode.parcellockers.util.legacy.LegacyColorProcessor;
import com.google.common.base.Stopwatch;
Expand All @@ -29,22 +31,28 @@
import io.sentry.Sentry;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.milkbowl.vault.economy.Economy;
import org.bstats.bukkit.Metrics;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Stream;

public final class ParcelLockers extends JavaPlugin {

private LiteCommands<CommandSender> liteCommands;

private BukkitAudiences audiences;

private Economy economy;

@Override
public void onEnable() {
Stopwatch started = Stopwatch.createStarted();
Expand All @@ -59,6 +67,8 @@ public void onEnable() {

ConfigurationManager configManager = new ConfigurationManager(this.getDataFolder());
PluginConfiguration config = configManager.load(new PluginConfiguration());
Server server = this.getServer();

if (config.settings.enableSentry) {
Sentry.init(options -> {
this.getLogger().info("Initializing Sentry...");
Expand All @@ -67,34 +77,48 @@ public void onEnable() {
options.setRelease(this.getDescription().getVersion());
options.setTag("serverVersion", this.getServer().getVersion());
options.setTag("serverSoftware", PaperLib.getEnvironment().getName());
options.setTag("plugins", Arrays.stream(this.getServer().getPluginManager().getPlugins()).toList().toString());
options.setTag("plugins", Arrays.stream(server.getPluginManager().getPlugins()).toList().toString());
this.getLogger().info("Sentry initialized successfully!");
});
}

HikariDataSource dataSource = DataSourceFactory.buildHikariDataSource(config, this.getDataFolder());

ParcelLockerRepository parcelLockerRepository = new ParcelLockerDatabaseService(dataSource);
LockerDatabaseService parcelLockerDatabaseService = new LockerDatabaseService(dataSource);
parcelLockerDatabaseService.updatePositionCache();

ParcelDatabaseService parcelRepository = new ParcelDatabaseService(dataSource);

ParcelManager parcelManager = new ParcelManager(this, config, announcer, parcelRepository, parcelLockerRepository);
ParcelLockerManager parcelLockerManager = new ParcelLockerManager(parcelLockerRepository);
ParcelManager parcelManager = new ParcelManager(this, config, announcer, parcelRepository, parcelLockerDatabaseService);
LockerManager lockerManager = new LockerManager(parcelLockerDatabaseService);

MainGUI mainGUI = new MainGUI(this, this.getServer(), miniMessage, config, parcelRepository, parcelLockerRepository);
ParcelListGUI parcelListGUI = new ParcelListGUI(this, this.getServer(), miniMessage, config, parcelRepository, parcelLockerRepository, mainGUI);

this.liteCommands = LiteBukkitAdventurePlatformFactory.builder(this.getServer(), "parcellockers", false, this.audiences, true)
MainGUI mainGUI = new MainGUI(this, server, miniMessage, config, parcelRepository, parcelLockerDatabaseService);
ParcelListGUI parcelListGUI = new ParcelListGUI(this, server, miniMessage, config, parcelRepository, parcelLockerDatabaseService, mainGUI);
this.liteCommands = LiteBukkitAdventurePlatformFactory.builder(server, "parcellockers", false, this.audiences, true)
.argument(Parcel.class, new ParcelArgument(parcelRepository))
.argument(Player.class, new PlayerArgument(this.getServer(), config))
.argument(Player.class, new PlayerArgument(server, config))
.contextualBind(Player.class, new BukkitOnlyPlayerContextual<>(config.messages.onlyForPlayers))
.commandInstance(
new ParcelCommand(this.getServer(), parcelLockerRepository, announcer, config, mainGUI, parcelListGUI, parcelManager),
new ParcelLockerCommand(configManager, config, announcer)
new ParcelCommand(server, parcelLockerDatabaseService, announcer, config, mainGUI, parcelListGUI, parcelManager),
new ParcelLockersCommand(configManager, config, announcer, miniMessage)
)
.invalidUsageHandler(new InvalidUsage(announcer, config))
.permissionHandler(new PermissionMessage(announcer, config))
.register();

if (!this.setupEconomy()) {
this.getLogger().severe("Disabling due to no Vault dependency found!");
server.getPluginManager().disablePlugin(this);
return;
}

Stream.of(
new LockerInteractionController(parcelLockerDatabaseService, miniMessage, config),
new LockerPlaceController(config, miniMessage, this, parcelLockerDatabaseService, announcer),
new LockerBreakController(parcelLockerDatabaseService, announcer, config.messages)
).forEach(controller -> server.getPluginManager().registerEvents(controller, this));

new Metrics(this, 17677);
new UpdaterService(this.getDescription());

Expand Down Expand Up @@ -132,6 +156,24 @@ private void softwareCheck() {
logger.info("Your server is running on supported software, congratulations!");
logger.info("Server version: " + this.getServer().getVersion());
}

private boolean setupEconomy() {
if (this.getServer().getPluginManager().getPlugin("Vault") == null) {
return false;
}

RegisteredServiceProvider<Economy> rsp = this.getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
return false;
}

this.economy = rsp.getProvider();
return true;
}

public Economy getEconomy() {
return this.economy;
}
Comment on lines +160 to +176
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like this method in main class.

Copy link
Member Author

@Jakubk15 Jakubk15 Oct 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sorry to hear that, where else can I move this method to?

}


Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,25 @@
import dev.rollczi.litecommands.command.execute.Execute;
import dev.rollczi.litecommands.command.permission.Permission;
import dev.rollczi.litecommands.command.route.Route;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

@Route(name = "parcellockers", aliases = {"parcellocker"})
@Permission("parcellockers.admin")
public class ParcelLockerCommand {
public class ParcelLockersCommand {

private final ConfigurationManager configManager;
private final PluginConfiguration config;
private final NotificationAnnouncer announcer;
private final MiniMessage miniMessage;

public ParcelLockerCommand(ConfigurationManager configManager, PluginConfiguration config, NotificationAnnouncer announcer) {
public ParcelLockersCommand(ConfigurationManager configManager, PluginConfiguration config, NotificationAnnouncer announcer, MiniMessage miniMessage) {
this.configManager = configManager;
this.config = config;
this.announcer = announcer;
this.miniMessage = miniMessage;
}

@Async
Expand All @@ -30,4 +35,10 @@ void reload(CommandSender sender) {
this.announcer.sendMessage(sender, this.config.messages.reload);
}

@Execute(route = "give")
void give(Player player) {
ItemStack parcelItem = this.config.settings.parcelLockerItem.toGuiItem(this.miniMessage).getItemStack();
player.getInventory().addItem(parcelItem);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public GuiItem toGuiItem(MiniMessage miniMessage, GuiAction<InventoryClickEvent>
.lore(this.lore.stream().map(element -> RESET_ITEM.append(miniMessage.deserialize(element))).toList())
.flags(ItemFlag.HIDE_ATTRIBUTES)
.flags(ItemFlag.HIDE_ENCHANTS)
.glow(this.glow)
.asGuiItem(action);
}

Expand Down
Loading