Verschillen
Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.
| Beide kanten vorige revisie Vorige revisie Volgende revisie | Vorige revisie | ||
| plugins:tulpencraftrentals [2026/09/10 12:30] – rroethof | plugins:tulpencraftrentals [2026/09/11 17:16] (huidige) – rroethof | ||
|---|---|---|---|
| Regel 1: | Regel 1: | ||
| - | ====== | + | # TulpenCraftRentals |
| - | ~~NOTOC~~ | + | ## Inhoud |
| - | ===== 📌 Status ===== | + | - Installatie |
| + | - Configuratie | ||
| + | - Permissies | ||
| + | - Rentals aanmaken | ||
| + | - Verhuurproces | ||
| + | - Verhuurborden | ||
| + | - ChestShop | ||
| + | - Evacuatie | ||
| + | - Reset | ||
| + | - WorldGuard | ||
| + | - Admin-GUI | ||
| + | - Commando-overzicht | ||
| + | - Database | ||
| + | - Probleemoplossing | ||
| - | ^ Eigenschap ^ Waarde ^ | + | ## Overzicht |
| - | | **Plugin** | TulpenCraftRentals | | + | |
| - | | **Status** | 🟡 In ontwikkeling | | + | |
| - | | **Versie** | 0.1.0-SNAPSHOT | | + | |
| - | | **Buildsysteem** | Maven | | + | |
| - | | **Platform** | Paper 26.2 | | + | |
| - | | **Java** | Java 25 | | + | |
| - | | **Server(s)** | Survival | | + | |
| - | | **Onderdeel van netwerk** | Ja | | + | |
| - | | **Laatste controle** | {{DATUM}} | | + | |
| - | ^ Server ^ Actief ^ | + | TulpenCraftRentals beheert tijdelijke verhuur van vooraf gedefinieerde WorldGuard-regio' |
| - | | **Velocity** | ❌ | | + | |
| - | | **Lobby** | ❌ | | + | |
| - | | **Survival** | ✅ | | + | |
| - | | **Events** | ❌ | | + | |
| - | --- | + | | Onderdeel | Functie | |
| + | |---|---| | ||
| + | | WorldGuard | Fysieke regiobescherming | | ||
| + | | TulpenCraftRentals | Huurcontract en verhuurregels | | ||
| + | | Vault | Betalingen in florijnen | | ||
| + | | LuckPerms | Toegang en huurlimieten | | ||
| + | | WorldEdit | Schematic-reset | | ||
| + | | ChestShop | Winkeltransacties | | ||
| + | | MariaDB | Centrale opslag | | ||
| + | | Discord-webhook | Optionele meldingen | | ||
| - | ===== 🎯 Doel ===== | + | ## Permissies |
| - | TulpenCraftRentals beheert tijdelijke verhuur van vooraf gedefinieerde gebieden binnen TulpenCraft. | + | Verhuurtoegang: |
| - | De plugin maakt het mogelijk om bijvoorbeeld: | + | ```text |
| - | + | tulpencraft.rent.<type>.<naam> | |
| - | * 🏠 Huizen | + | ``` |
| - | * 🛒 Winkels | + | |
| - | * 🏨 Hotelkamers | + | |
| - | + | ||
| - | tijdelijk aan spelers te verhuren. | + | |
| - | + | ||
| - | Een huurcontract koppelt een speler aan een vooraf geconfigureerde WorldGuard-regio. De plugin beheert vervolgens de administratieve en technische onderdelen van de huurperiode. | + | |
| - | + | ||
| - | Hieronder vallen onder andere: | + | |
| - | + | ||
| - | * huurprijs; | + | |
| - | * huurperiode; | + | |
| - | * huurder; | + | |
| - | * medebewoners; | + | |
| - | * winkelmedewerkers; | + | |
| - | * ChestShop-limieten; | + | |
| - | * permissievereisten; | + | |
| - | * vervaldatum; | + | |
| - | * ontruimingsperiode; | + | |
| - | * huurverlenging; | + | |
| - | * beëindiging; | + | |
| - | * reset van de ruimte; | + | |
| - | * audit logging; | + | |
| - | * notificaties. | + | |
| - | + | ||
| - | WorldGuard blijft verantwoordelijk voor de daadwerkelijke gebiedsbeveiliging. TulpenCraftRentals beheert de huurstatus en bepaalt wie toegang tot een verhuurd gebied krijgt. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🏗️ Huurtypes ===== | + | |
| - | + | ||
| - | ==== 🏠 HOUSE ==== | + | |
| - | + | ||
| - | Een huis is een persoonlijke woonruimte die tijdelijk door een speler kan worden gehuurd. | + | |
| - | + | ||
| - | Eigenschappen: | + | |
| - | + | ||
| - | * tijdelijke huurder; | + | |
| - | * optionele medebewoners; | + | |
| - | * configureerbaar maximum aantal bewoners; | + | |
| - | * WorldGuard-beveiliging; | + | |
| - | * optionele rank/ | + | |
| - | * vrije inrichting door de huurder; | + | |
| - | * preview voordat de huur wordt afgesloten; | + | |
| - | * reset na afloop van de huur. | + | |
| - | + | ||
| - | Meerdere huizen kunnen tegelijkertijd worden gehuurd wanneer de speler hiervoor voldoende rechten heeft. | + | |
| - | + | ||
| - | ==== 🛒 SHOP ==== | + | |
| - | + | ||
| - | Een winkel is een verhuurbare ruimte waarin de huurder een ChestShop kan exploiteren. | + | |
| - | + | ||
| - | Eigenschappen: | + | |
| - | + | ||
| - | * tijdelijke huurder; | + | |
| - | * medewerkers kunnen worden toegevoegd; | + | |
| - | * medewerkers kunnen de winkel beheren; | + | |
| - | * WorldGuard-beveiliging; | + | |
| - | * ChestShop-integratie; | + | |
| - | * configureerbaar maximum aantal ChestShops; | + | |
| - | * optionele rank/ | + | |
| - | * preview voordat de huur wordt afgesloten; | + | |
| - | * reset na afloop van de huur. | + | |
| - | + | ||
| - | ChestShops mogen uitsluitend binnen het gekoppelde winkelgebied worden aangemaakt. | + | |
| - | + | ||
| - | ==== 🏨 HOTEL ==== | + | |
| - | + | ||
| - | Een hotelkamer is een tijdelijke woonruimte met een relatief korte huurperiode. | + | |
| - | + | ||
| - | Eigenschappen: | + | |
| - | + | ||
| - | * tijdelijke huurder; | + | |
| - | * configureerbaar aantal bewoners; | + | |
| - | * WorldGuard-beveiliging; | + | |
| - | * optionele rank/ | + | |
| - | * preview voordat de huur wordt afgesloten; | + | |
| - | * configureerbare huurperiode; | + | |
| - | * reset na afloop van de huur. | + | |
| - | + | ||
| - | Hotelkamers ondersteunen geen ChestShop-functionaliteit. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🔄 Huurstatussen ===== | + | |
| - | + | ||
| - | Een rental doorloopt verschillende statussen: | + | |
| - | + | ||
| - | <code> | + | |
| - | DISABLED | + | |
| - | ↓ | + | |
| - | AVAILABLE | + | |
| - | ↓ | + | |
| - | RENTED | + | |
| - | ↓ | + | |
| - | EXPIRED | + | |
| - | ↓ | + | |
| - | RESETTING | + | |
| - | ↓ | + | |
| - | AVAILABLE | + | |
| - | </code> | + | |
| - | + | ||
| - | ^ Status ^ Betekenis ^ | + | |
| - | | **DISABLED** | Rental is uitgeschakeld en kan niet worden gehuurd | | + | |
| - | | **AVAILABLE** | Rental is beschikbaar voor verhuur | | + | |
| - | | **RENTED** | Rental is actief verhuurd | | + | |
| - | | **EXPIRED** | Huurperiode is verlopen en de ontruimingsperiode is gestart | | + | |
| - | | **RESETTING** | Rental wordt teruggezet naar de oorspronkelijke staat | | + | |
| - | + | ||
| - | Een rental mag uitsluitend automatisch terugkeren naar `AVAILABLE` wanneer de reset succesvol is uitgevoerd. | + | |
| - | + | ||
| - | Wanneer een reset mislukt, blijft de rental op `RESETTING` staan en wordt de fout aan staff gemeld. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== ⏱️ Huurperiode ===== | + | |
| - | + | ||
| - | Iedere rental heeft een configureerbare huurperiode. | + | |
| - | + | ||
| - | De periode wordt opgeslagen als een exacte vervaldatum. | + | |
| Voorbeelden: | Voorbeelden: | ||
| - | * 7 dagen; | + | ```text |
| - | * 14 dagen; | + | tulpencraft.rent.house.small |
| - | * 30 dagen; | + | tulpencraft.rent.house.medium |
| - | * 90 dagen. | + | tulpencraft.rent.shop.small |
| + | tulpencraft.rent.shop.special001 | ||
| + | ``` | ||
| - | De exacte periode wordt per rental bepaald. | + | Gebruik bij bijzondere sleutels geen extra punt: |
| - | ==== Waarschuwingen ==== | + | ```text |
| + | FOUT: tulpencraft.rent.house.special.003 | ||
| + | GOED: tulpencraft.rent.house.special003 | ||
| + | ``` | ||
| - | De huurder ontvangt waarschuwingen voordat de huur afloopt. | + | Een rental zonder toegangspermissie is niet verhuurbaar. |
| - | Standaard: | + | Huurlimieten: |
| - | ^ Moment ^ Melding ^ | + | ```text |
| - | | 7 dagen voor einde | Eerste waarschuwing | | + | |
| - | | 3 dagen voor einde | Tweede waarschuwing | | + | |
| - | | 1 dag voor einde | Laatste waarschuwing | | + | |
| - | | Einde huurperiode | Huur is verlopen | | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🚪 Ontruimingsperiode ===== | + | |
| - | + | ||
| - | Na het verlopen van een huurcontract krijgt de huurder maximaal **72 uur** om de ruimte leeg te maken. | + | |
| - | + | ||
| - | Deze periode is geen verlenging van het huurcontract. | + | |
| - | + | ||
| - | Tijdens deze periode: | + | |
| - | + | ||
| - | * is de huur officieel verlopen; | + | |
| - | * kan de huurder persoonlijke spullen verwijderen; | + | |
| - | * kan de huurder een verlenging uitvoeren; | + | |
| - | * mogen geen nieuwe ChestShops worden aangemaakt; | + | |
| - | * blijft de ruimte tijdelijk beschikbaar voor ontruiming. | + | |
| - | + | ||
| - | Na het verstrijken van de 72 uur wordt de rental gereset. | + | |
| - | + | ||
| - | De huurder is zelf verantwoordelijk voor het verwijderen of verplaatsen van alle eigendommen. | + | |
| - | + | ||
| - | Achtergebleven items worden bij de reset verwijderd. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 💰 Betaling ===== | + | |
| - | + | ||
| - | TulpenCraftRentals gebruikt **Vault** als abstractielaag voor het economy-systeem. | + | |
| - | + | ||
| - | De plugin implementeert geen eigen economie. | + | |
| - | + | ||
| - | Betalingen worden geregistreerd in de database. | + | |
| - | + | ||
| - | Ondersteunde transactietypes: | + | |
| - | + | ||
| - | * `RENT` | + | |
| - | * `RENEW` | + | |
| - | * `REFUND` | + | |
| - | + | ||
| - | Een betaling moet veilig worden verwerkt zodat een speler niet wordt belast wanneer de huur uiteindelijk niet kan worden toegekend. | + | |
| - | + | ||
| - | Vroegtijdig beëindigen van een huurcontract geeft **geen recht op restitutie**. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 👥 Bewoners en medewerkers ===== | + | |
| - | + | ||
| - | ==== Bewoners ==== | + | |
| - | + | ||
| - | Bij huizen en hotelkamers kunnen spelers als bewoners worden toegevoegd. | + | |
| - | + | ||
| - | Een bewoner krijgt toegang tot de gekoppelde WorldGuard-regio volgens de configuratie van de rental. | + | |
| - | + | ||
| - | De eigenaar van de rental blijft verantwoordelijk voor het beheer van de bewoners. | + | |
| - | + | ||
| - | ==== Winkelmedewerkers ==== | + | |
| - | + | ||
| - | Bij shops kunnen medewerkers worden toegevoegd. | + | |
| - | + | ||
| - | Een medewerker kan, afhankelijk van de configuratie: | + | |
| - | + | ||
| - | * bouwen; | + | |
| - | * blokken plaatsen; | + | |
| - | * blokken verwijderen; | + | |
| - | * ChestShops plaatsen; | + | |
| - | * ChestShops verwijderen; | + | |
| - | * ChestShops beheren. | + | |
| - | + | ||
| - | De technische database gebruikt hiervoor dezelfde member-structuur. Het onderscheid tussen bewoner en medewerker wordt bepaald door het rentaltype. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🛒 ChestShop ===== | + | |
| - | + | ||
| - | ChestShop-functionaliteit is uitsluitend beschikbaar voor rentals van het type `SHOP`. | + | |
| - | + | ||
| - | De plugin integreert met: | + | |
| - | + | ||
| - | < | + | |
| - | ChestShop 3.12.2 | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Regels ==== | + | |
| - | + | ||
| - | Een ChestShop: | + | |
| - | + | ||
| - | * moet binnen de gekoppelde WorldGuard-regio staan; | + | |
| - | * mag uitsluitend door de huurder of geautoriseerde medewerker worden aangemaakt; | + | |
| - | * telt mee voor het maximale aantal ChestShops van de rental; | + | |
| - | * wordt geregistreerd in de TulpenCraftRentals-database. | + | |
| - | + | ||
| - | Wanneer het maximale aantal ChestShops is bereikt, wordt een nieuwe shopaanmaak geweigerd. | + | |
| - | + | ||
| - | Bij het verwijderen van een ChestShop wordt de registratie uit de database verwijderd. | + | |
| - | + | ||
| - | Bij het beëindigen/ | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🔐 Rechten ===== | + | |
| - | + | ||
| - | TulpenCraftRentals gebruikt Bukkit/ | + | |
| - | + | ||
| - | Ranknamen worden niet hardcoded in de plugin. | + | |
| - | + | ||
| - | In plaats daarvan worden permissies gebruikt. | + | |
| - | + | ||
| - | ==== Algemene rechten ==== | + | |
| - | + | ||
| - | ^ Permission ^ Beschrijving ^ | + | |
| - | | `tulpencraft.rentals.admin` | Volledige administratieve toegang | | + | |
| - | | `tulpencraft.rentals.create` | Rentals aanmaken | | + | |
| - | | `tulpencraft.rentals.edit` | Rentals aanpassen | | + | |
| - | | `tulpencraft.rentals.reset` | Rentals resetten | | + | |
| - | | `tulpencraft.rentals.force` | Geforceerde acties uitvoeren | | + | |
| - | | `tulpencraft.rentals.members` | Bewoners/ | + | |
| - | + | ||
| - | ==== Rankvereisten voor rentals ==== | + | |
| - | + | ||
| - | Een rental kan optioneel een permission vereisen. | + | |
| - | + | ||
| - | Voorbeelden: | + | |
| - | + | ||
| - | < | + | |
| - | tulpencraft.rent.vip | + | |
| - | tulpencraft.rent.premium | + | |
| - | </ | + | |
| - | + | ||
| - | Hierdoor kan LuckPerms bepalen welke spelers toegang hebben tot bepaalde rentals. | + | |
| - | + | ||
| - | ==== Rental-limieten ==== | + | |
| - | + | ||
| - | Ook het maximale aantal gelijktijdige rentals kan via permissions worden geregeld. | + | |
| - | + | ||
| - | Voorbeelden: | + | |
| - | + | ||
| - | < | + | |
| tulpencraft.rent.limit.house.2 | tulpencraft.rent.limit.house.2 | ||
| - | tulpencraft.rent.limit.shop.2 | + | tulpencraft.rent.limit.shop.1 |
| - | tulpencraft.rent.limit.hotel.3 | + | tulpencraft.rent.limit.hotel.1 |
| - | </ | + | ``` |
| - | + | ||
| - | De plugin hoeft hierdoor geen specifieke ranknamen te kennen. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 💬 Commando' | + | |
| - | + | ||
| - | De primaire gebruikerscommand is: | + | |
| - | + | ||
| - | < | + | |
| - | /huur | + | |
| - | </ | + | |
| - | + | ||
| - | `/huren` kan als alias worden gebruikt. | + | |
| - | + | ||
| - | ==== Spelercommando' | + | |
| - | + | ||
| - | ^ Commando ^ Permission ^ Beschrijving ^ | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | + | ||
| - | ==== Beheercommando' | + | |
| - | + | ||
| - | ^ Commando ^ Permission ^ Beschrijving ^ | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | | < | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🖥️ Huurmenu ===== | + | |
| - | + | ||
| - | `/huur` opent het gebruikersmenu. | + | |
| - | + | ||
| - | Het menu wordt opgebouwd rond de verschillende huurtypes. | + | |
| - | + | ||
| - | ^ Categorie ^ Beschrijving ^ | + | |
| - | | 🏠 Huizen | Beschikbare huurhuizen | | + | |
| - | | 🛒 Winkels | Beschikbare winkelruimtes | | + | |
| - | | 🏨 Hotel | Beschikbare hotelkamers | | + | |
| - | | 📋 Mijn huur | Eigen actieve en verlopen rentals | | + | |
| - | + | ||
| - | Bij een rental worden onder andere getoond: | + | |
| - | + | ||
| - | * naam; | + | |
| - | * type; | + | |
| - | * prijs; | + | |
| - | * huurperiode; | + | |
| - | * vereiste permission; | + | |
| - | * beschikbare plaatsen; | + | |
| - | * aantal ChestShops; | + | |
| - | * aantal bewoners; | + | |
| - | * huidige status. | + | |
| - | + | ||
| - | De speler kan vanuit het menu eerst een **preview** bekijken voordat de huur wordt afgesloten. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 👁️ Preview ===== | + | |
| - | + | ||
| - | Een speler kan een rental bekijken voordat deze wordt gehuurd. | + | |
| - | + | ||
| - | De preview geeft uitsluitend toegang om de ruimte te bekijken. | + | |
| - | + | ||
| - | Een preview: | + | |
| - | + | ||
| - | * geeft geen huurrechten; | + | |
| - | * maakt de speler geen eigenaar; | + | |
| - | * geeft geen permanente WorldGuard-rechten; | + | |
| - | * start geen huurperiode; | + | |
| - | * brengt geen kosten met zich mee. | + | |
| - | + | ||
| - | Pas na het bevestigen van de huur wordt de rental daadwerkelijk aan de speler toegewezen. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🌍 WorldGuard ===== | + | |
| - | + | ||
| - | TulpenCraftRentals gebruikt WorldGuard voor fysieke gebiedsbeveiliging. | + | |
| - | + | ||
| - | Iedere rental is gekoppeld aan een vooraf bestaande WorldGuard-regio. | + | |
| - | + | ||
| - | TulpenCraftRentals beheert: | + | |
| - | + | ||
| - | * huurder; | + | |
| - | * bewoners; | + | |
| - | * medewerkers; | + | |
| - | * toegang tijdens de huurperiode. | + | |
| - | + | ||
| - | WorldGuard blijft verantwoordelijk voor de daadwerkelijke bescherming van het gebied. | + | |
| - | + | ||
| - | Een rental kan niet succesvol worden aangemaakt wanneer de gekoppelde WorldGuard-regio niet bestaat. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🧱 Reset ===== | + | |
| - | + | ||
| - | Na het einde van een huurperiode wordt de rental teruggezet naar de oorspronkelijke staat. | + | |
| - | + | ||
| - | De reset gebruikt een WorldEdit-schematic. | + | |
| - | + | ||
| - | Globale volgorde: | + | |
| - | + | ||
| - | < | + | |
| - | Rental verlopen | + | |
| - | ↓ | + | |
| - | Ontruimingsperiode | + | |
| - | ↓ | + | |
| - | ChestShops verwerken | + | |
| - | ↓ | + | |
| - | Members verwijderen | + | |
| - | ↓ | + | |
| - | Achtergebleven items verwijderen | + | |
| - | ↓ | + | |
| - | WorldEdit schematic plaatsen | + | |
| - | ↓ | + | |
| - | Controle | + | |
| - | ↓ | + | |
| - | AVAILABLE | + | |
| - | </ | + | |
| - | Wanneer een reset mislukt: | + | Admin: |
| - | < | + | ```text |
| - | RESETTING | + | tulpencraft.rentals.admin |
| ``` | ``` | ||
| - | De rental wordt in dat geval **niet automatisch beschikbaar gemaakt**. | + | ## Rentals aanmaken |
| - | Staff moet het probleem eerst oplossen. | + | 1. Maak de WorldGuard-regio aan. |
| - | + | 2. Controleer dat de regio niet overlapt met een andere rental-regio. | |
| - | --- | + | 3. Kies de toegangspermissie. |
| - | + | 4. Geef de rental | |
| - | ===== 🗄️ Database ===== | + | 5. Stel prijs, ledenlimiet en ChestShoplimiet in. |
| - | + | 6. Koppel eventueel een schematic. | |
| - | TulpenCraftRentals gebruikt **MariaDB**. | + | 7. Koppel eventueel een bord. |
| - | + | 8. Activeer de rental. | |
| - | De database bevat onder andere: | + | |
| - | + | ||
| - | ^ Tabel ^ Functie ^ | + | |
| - | | `rentals` | Hoofdgegevens en status van rentals | | + | |
| - | | `rental_members` | Bewoners en medewerkers | | + | |
| - | | `rental_chestshops` | Geregistreerde ChestShops | | + | |
| - | | `rental_transactions` | Betalingen en transacties | | + | |
| - | | `rental_notifications` | Verzonden huurwaarschuwingen | | + | |
| - | | `rental_audit_log` | Audit- en beheergeschiedenis | | + | |
| - | + | ||
| - | Databaseverbindingen worden beheerd via HikariCP. | + | |
| - | + | ||
| - | Database-I/ | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🔔 Notificaties ===== | + | |
| - | + | ||
| - | Belangrijke gebeurtenissen kunnen via Discord worden gemeld. | + | |
| - | + | ||
| - | Voorbeelden: | + | |
| - | + | ||
| - | * nieuwe huur; | + | |
| - | * huurverlenging; | + | |
| - | * verlopen huur; | + | |
| - | * reset gestart; | + | |
| - | * reset succesvol afgerond; | + | |
| - | * reset mislukt; | + | |
| - | * medewerker toegevoegd; | + | |
| - | * medewerker verwijderd. | + | |
| - | + | ||
| - | De plugin gebruikt hiervoor een afzonderlijke notification-laag zodat de Discord-integratie niet direct aan de rental-logica gekoppeld is. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 📊 Audit logging ===== | + | |
| - | + | ||
| - | Belangrijke acties worden geregistreerd. | + | |
| - | + | ||
| - | Voorbeelden: | + | |
| - | + | ||
| - | < | + | |
| - | RENTED | + | |
| - | RENEWED | + | |
| - | EXPIRED | + | |
| - | CANCELLED | + | |
| - | MEMBER_ADDED | + | |
| - | MEMBER_REMOVED | + | |
| - | CHESTSHOP_CREATED | + | |
| - | CHESTSHOP_REMOVED | + | |
| - | RESET_STARTED | + | |
| - | RESET_COMPLETED | + | |
| - | RESET_FAILED | + | |
| - | </ | + | |
| - | + | ||
| - | Hierdoor kan achteraf worden nagegaan wat er met een rental is gebeurd. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 📦 Installatie ===== | + | |
| - | + | ||
| - | **Jar-bestand: | + | |
| - | + | ||
| - | < | + | |
| - | TulpenCraftRentals-0.1.0-SNAPSHOT.jar | + | |
| - | </ | + | |
| - | + | ||
| - | **Locatie: | + | |
| - | + | ||
| - | < | + | |
| - | / | + | |
| - | </ | + | |
| - | + | ||
| - | **Builden: | + | |
| - | + | ||
| - | Het project gebruikt Maven. | + | |
| - | + | ||
| - | <code bash> | + | |
| - | mvn clean package | + | |
| - | </ | + | |
| - | + | ||
| - | De gebouwde JAR wordt aangemaakt in: | + | |
| - | + | ||
| - | < | + | |
| - | target/ | + | |
| - | </ | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== ⚙️ Configuratie ===== | + | |
| - | + | ||
| - | **Configuratiebestand: | + | |
| - | + | ||
| - | < | + | |
| - | / | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Database ==== | + | |
| - | + | ||
| - | De plugin gebruikt een MariaDB-database. | + | |
| Voorbeeld: | Voorbeeld: | ||
| - | <code yaml> | + | ```text |
| - | database: | + | /rg define testshop02 |
| - | host: 172.16.0.30 | + | /huur aanmaken testshop02 tulpencraft.rent.shop.small Shop001 |
| - | port: 3306 | + | ``` |
| - | name: tulpencraft_rentals | + | |
| - | username: rentals | + | |
| - | password: "" | + | |
| - | use-environment-password: | + | |
| - | environment-password-variable: | + | |
| - | pool-size: 10 | + | |
| - | connection-timeout-ms: | + | |
| - | </ | + | |
| - | Het databasewachtwoord wordt bij voorkeur via een environment variable beschikbaar gesteld en niet rechtstreeks in `config.yml` opgeslagen. | + | ## Verhuurproces |
| - | ==== Rentalinstellingen ==== | + | Bij het huren controleert de plugin de permissie, huurlimiet, beschikbaarheid, |
| - | <code yaml> | + | Daarna worden betaling, huurder, status, regio en bord bijgewerkt. Een fout mag niet leiden tot geld afgeschreven zonder toegekende huur. |
| - | rental: | + | |
| - | evacuation-hours: | + | |
| - | warnings: | + | |
| - | - 168 | + | |
| - | - 72 | + | |
| - | - 24 | + | |
| - | </ | + | |
| - | De standaard ontruimingsperiode bedraagt 72 uur. | + | Verlengen betaalt opnieuw de weekprijs en verlengt de einddatum met één week. |
| - | De waarschuwingen worden standaard 168, 72 en 24 uur voor het einde van de huurperiode verstuurd. | + | ## Verhuurborden |
| - | ==== Standaardlimieten ==== | + | ```text |
| + | /huur bord shop001 | ||
| + | /huur bord shop001 ontkoppelen | ||
| + | /huur bordactie shop001 aan | ||
| + | /huur bordactie shop001 uit | ||
| + | ``` | ||
| - | <code yaml> | + | Beschikbaar: |
| - | limits: | + | |
| - | default: | + | |
| - | house: 1 | + | |
| - | shop: 1 | + | |
| - | hotel: 1 | + | |
| - | </ | + | |
| - | Deze waarden kunnen later worden uitgebreid met permission-gebaseerde limieten. | + | ```text |
| + | Shop001 | ||
| + | Beschikbaar | ||
| + | 10,00 ƒ/week | ||
| + | Rechtsklik | ||
| + | ``` | ||
| - | --- | + | Verhuurd: |
| - | ===== 🔗 Afhankelijkheden ===== | + | ```text |
| + | Shop001 | ||
| + | Ronny_NL | ||
| + | t/m 18-09-2026 | ||
| + | VERHUURD | ||
| + | ``` | ||
| - | ==== Verplichte platformafhankelijkheid ==== | + | Evacuatie: |
| - | * Paper 26.2 | + | ```text |
| - | * Java 25 | + | Shop001 |
| + | Ronny_NL | ||
| + | t/m 21-09-2026 | ||
| + | EVACUATIE | ||
| + | ``` | ||
| - | ==== Verplichte plugin-afhankelijkheden ==== | + | Rechtermuisklik opent altijd een GUI. Een normale speler krijgt huur- en informatieopties, |
| - | * WorldGuard | + | ## ChestShop |
| - | * WorldEdit | + | |
| - | * Vault | + | |
| - | * LuckPerms | + | |
| - | ==== Shopintegratie ==== | + | ChestShops zijn uitsluitend toegestaan binnen een actieve `SHOP`-rental. |
| - | * ChestShop 3.12.2 | + | De huurder en geautoriseerde medewerkers mogen ChestShops plaatsen, gebruiken en verwijderen, |
| - | ==== Database ==== | + | ```text |
| + | /huur chestshops shop001 6 | ||
| + | ``` | ||
| - | * MariaDB | + | Buiten een actieve SHOP-rental zijn ChestShops niet toegestaan. Tijdens evacuatie mogen bestaande ChestShops eventueel nog worden gebruikt, maar nieuwe plaatsen is verboden. |
| - | * MariaDB Java Client | + | |
| - | * HikariCP | + | |
| - | --- | + | ## Evacuatie |
| - | ===== 🛡️ Beveiliging ===== | + | Na afloop van de huurperiode start een evacuatieperiode van maximaal 72 uur. |
| - | TulpenCraftRentals verwerkt onder andere: | + | ```text |
| + | /huur evacuatie shop001 | ||
| + | /huur ontruimen shop001 | ||
| + | ``` | ||
| - | * Minecraft UUID' | + | Tijdens evacuatie kan de huurder spullen ophalen en eventueel verlengen. Nieuwe ChestShops mogen niet worden geplaatst. |
| - | * huurcontracten; | + | |
| - | * toegangsrechten; | + | |
| - | * transacties; | + | |
| - | * auditinformatie. | + | |
| - | De database moet daarom uitsluitend vanaf geautoriseerde systemen bereikbaar zijn. | + | Na afloop worden toegang, ChestShops en achtergebleven inhoud opgeruimd, waarna de schematic wordt geplaatst en de rental weer `AVAILABLE` wordt. |
| - | De Minecraft-server maakt verbinding met MariaDB via een afzonderlijke databasegebruiker. | + | ## Rental verwijderen |
| - | Aanbevolen configuratie: | + | ```text |
| + | /huur verwijderen shop001 | ||
| + | ``` | ||
| - | * aparte database voor TulpenCraftRentals; | + | Verwijderen vereist bevestiging. De databasekoppelingen worden verwijderd, maar de fysieke WorldGuard-regio blijft bestaan. |
| - | * aparte MariaDB-user; | + | |
| - | * alleen benodigde databaseprivileges; | + | |
| - | * verbinding vanaf uitsluitend geautoriseerde Minecraft-servers; | + | |
| - | * databasewachtwoord niet in Git opslaan. | + | |
| - | De plugin gebruikt geen ranknamen in de Java-code. Toegangscontrole gebeurt via permissions en LuckPerms. | + | ## WorldGuard-richtlijnen |
| - | --- | + | TulpenCraftRentals maakt geen fysieke WorldGuard-regio' |
| - | ===== ⚠️ Aandachtspunten ===== | + | Rental-regio' |
| - | * Een rental is altijd gekoppeld aan een WorldGuard-regio. | + | Bij problemen: |
| - | * Een verlopen huurcontract is geen automatische verlenging. | + | |
| - | * De maximale ontruimingsperiode bedraagt 72 uur. | + | |
| - | * De huurder is verantwoordelijk voor het verwijderen van eigendommen. | + | |
| - | * Achtergebleven items worden tijdens de reset verwijderd. | + | |
| - | * Vroegtijdig opzeggen geeft geen recht op restitutie. | + | |
| - | * ChestShops zijn uitsluitend toegestaan binnen SHOP-rentals. | + | |
| - | * Het maximale aantal ChestShops wordt per rental bewaakt. | + | |
| - | * Een mislukte reset maakt een rental niet automatisch beschikbaar. | + | |
| - | * Database-I/ | + | |
| - | --- | + | ```text |
| + | /rg info < | ||
| + | /rg flags < | ||
| + | ``` | ||
| - | ===== 🧪 Troubleshooting ===== | + | Controleer members, buildflags, parent-regio' |
| - | ==== Plugin wordt niet geladen ==== | + | ## Probleemoplossing |
| - | Controleer eerst: | + | ### Speler kan niet bouwen |
| - | + | ||
| - | < | + | |
| - | /plugins | + | |
| - | </ | + | |
| - | + | ||
| - | Controleer vervolgens: | + | |
| - | + | ||
| - | <code bash> | + | |
| - | grep -i " | + | |
| - | </ | + | |
| - | + | ||
| - | Controleer de Java-versie: | + | |
| - | + | ||
| - | <code bash> | + | |
| - | java -version | + | |
| - | </ | + | |
| - | + | ||
| - | TulpenCraftRentals vereist Java 25. | + | |
| - | + | ||
| - | ==== Databaseverbinding mislukt ==== | + | |
| Controleer: | Controleer: | ||
| - | * MariaDB-host; | + | 1. Juiste regio. |
| - | * MariaDB-poort; | + | 2. Speler is member. |
| - | * databasenaam; | + | 3. Geen overlap met andere rental. |
| - | * username; | + | 4. Geen beperkende parent-flags. |
| - | * wachtwoord; | + | 5. Speler staat in Survival. |
| - | * MariaDB grants; | + | 6. Geen andere plugin blokkeert bouwen. |
| - | * firewall; | + | |
| - | * netwerkverbinding. | + | |
| - | Test vanaf de Minecraft-server: | + | ### ChestShop |
| - | + | ||
| - | <code bash> | + | |
| - | mariadb -h 172.16.0.30 -P 3306 -u rentals -p tulpencraft_rentals | + | |
| - | </ | + | |
| - | + | ||
| - | De MariaDB-user moet verbinding mogen maken vanaf het IP-adres van de Minecraft-server. | + | |
| - | + | ||
| - | ==== `/huur` bestaat niet ==== | + | |
| - | + | ||
| - | Controleer of TulpenCraftRentals geladen is: | + | |
| - | + | ||
| - | < | + | |
| - | /plugins | + | |
| - | </ | + | |
| - | + | ||
| - | Controleer daarnaast `plugin.yml` en de serverlog. | + | |
| - | + | ||
| - | De primaire command is: | + | |
| - | + | ||
| - | < | + | |
| - | /huur | + | |
| - | </ | + | |
| - | + | ||
| - | Alias: | + | |
| - | + | ||
| - | < | + | |
| - | /huren | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Rental | + | |
| Controleer: | Controleer: | ||
| - | * of de WorldGuard-regio bestaat; | + | - actieve SHOP-rental; |
| - | * of de rental-ID uniek is; | + | - huurder |
| - | * of het opgegeven rentaltype geldig is; | + | - juiste regio; |
| - | * of de uitvoerende speler voldoende rechten heeft. | + | - maximum niet bereikt; |
| + | - geen evacuatie- | ||
| - | ==== ChestShop kan niet worden aangemaakt ==== | + | ### Bord toont verkeerde gegevens |
| Controleer: | Controleer: | ||
| - | * of de rental van het type `SHOP` is; | + | - juiste rentalkoppeling; |
| - | * of de speler | + | - huurder; |
| - | * of de ChestShop binnen de gekoppelde regio staat; | + | - `expires_at`; |
| - | * of het maximum aantal ChestShops nog niet is bereikt. | + | - `evacuation_until`; |
| - | + | - rentalstatus; | |
| - | ==== Rental blijft op RESETTING staan ==== | + | - serverconsole. |
| - | + | ||
| - | Dit betekent dat de reset niet succesvol is afgerond. | + | |
| - | + | ||
| - | Controleer de serverlog en resetstatus: | + | |
| - | + | ||
| - | < | + | |
| - | /huur beheer reset status & | + | |
| - | </ | + | |
| - | + | ||
| - | Een rental mag pas opnieuw beschikbaar worden gemaakt nadat de oorzaak van de resetfout is opgelost. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🧪 Ontwikkelstatus ===== | + | |
| - | + | ||
| - | De plugin wordt gefaseerd ontwikkeld. | + | |
| - | + | ||
| - | ^ Onderdeel ^ Status ^ | + | |
| - | | Basis plugin | 🟢 | | + | |
| - | | Maven build | 🟢 | | + | |
| - | | Java 25 | 🟢 | | + | |
| - | | Paper 26.2 | 🟢 | | + | |
| - | | MariaDB verbinding | 🟢 | | + | |
| - | | Database-schema | 🟢 | | + | |
| - | | Rental model | 🟢 | | + | |
| - | | `/huur` command | 🟡 | | + | |
| - | | Rental CRUD | 🟡 | | + | |
| - | | WorldGuard-integratie | 🟡 | | + | |
| - | | Vault economy | 🔴 | | + | |
| - | | LuckPerms-integratie | 🔴 | | + | |
| - | | Rental GUI | 🔴 | | + | |
| - | | Preview | 🔴 | | + | |
| - | | House members | 🔴 | | + | |
| - | | Shop employees | 🔴 | | + | |
| - | | ChestShop-integratie | 🔴 | | + | |
| - | | Hotelkamers | 🔴 | | + | |
| - | | Expiration scheduler | 🔴 | | + | |
| - | | 72 uur ontruiming | 🔴 | | + | |
| - | | WorldEdit reset | 🔴 | | + | |
| - | | Discord notificaties | 🔴 | | + | |
| - | | Audit logging | 🟡 | | + | |
| - | + | ||
| - | **Legenda: | + | |
| - | + | ||
| - | * 🟢 = geïmplementeerd | + | |
| - | * 🟡 = gedeeltelijk / in ontwikkeling | + | |
| - | * 🔴 = nog niet geïmplementeerd | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 📝 Onderhoud ===== | + | |
| - | + | ||
| - | **Laatste wijziging: | + | |
| - | + | ||
| - | **Wijziging: | + | |
| - | + | ||
| - | **Status:** 🟡 In ontwikkeling | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ===== 🔗 Externe links ===== | + | |
| - | * [[[https:// | + | ### Rental blijft op RESETTING |
| - | * [[[https:// | + | |
| - | * [[[https:// | + | |
| + | Controleer schematic, wereld, resetcoördinaten, | ||