azaza10290292-maker

Joined 2026
0
Score
2
Public projects
7
Views

Badges2/14

II
Going Public
common
I
First Build
common

Top projects2

StreakPlugin

+0

You are a senior Java software engineer and Minecraft Paper plugin developer. Create a production-quality Minecraft plugin named **StreakPlugin** using **Java 21**, **Paper API 1.21+**, and **Maven**. The plugin should be designed like a real open-source project with clean architecture, SOLID principles, OOP, dependency injection where appropriate, asynchronous database operations, and highly modular code. The code must be clean, documented, scalable, and easy to maintain. Never place business logic inside listeners or GUI classes. ================================================== PROJECT STRUCTURE ================================================== StreakPlugin │ ├── StreakPlugin.java │ ├── api/ │ ├── StreakAPI.java │ ├── RequestAPI.java │ ├── RewardAPI.java │ └── StatisticsAPI.java │ ├── command/ │ ├── StreakCommand.java │ ├── StreakAcceptCommand.java │ ├── StreakDenyCommand.java │ ├── StreakCancelCommand.java │ ├── StreakTopCommand.java │ └── StreakAdminCommand.java │ ├── gui/ │ ├── MainGui.java │ ├── PlayerSelectorGui.java │ ├── RequestsGui.java │ ├── RewardsGui.java │ ├── StatisticsGui.java │ ├── LeaderboardGui.java │ ├── PartnerGui.java │ └── ConfirmGui.java │ ├── listener/ │ ├── AsyncChatListener.java │ ├── JoinListener.java │ ├── QuitListener.java │ ├── InventoryClickListener.java │ ├── InventoryCloseListener.java │ └── PlayerInteractListener.java │ ├── manager/ │ ├── StreakManager.java │ ├── RequestManager.java │ ├── ChatManager.java │ ├── ProgressManager.java │ ├── RewardManager.java │ ├── RewardClaimManager.java │ ├── NotificationManager.java │ ├── StatisticsManager.java │ ├── LeaderboardManager.java │ ├── CooldownManager.java │ ├── GuiManager.java │ └── StorageManager.java │ ├── model/ │ ├── StreakData.java │ ├── StreakPair.java │ ├── StreakRequest.java │ ├── DailyProgress.java │ ├── Reward.java │ ├── RewardHistory.java │ ├── PlayerStatistics.java │ ├── LeaderboardEntry.java │ └── Notification.java │ ├── enum/ │ ├── PairStatus.java │ ├── RequestStatus.java │ ├── RewardType.java │ ├── NotificationType.java │ ├── ChatStatus.java │ └── GuiType.java │ ├── storage/ │ ├── Storage.java │ ├── SQLiteStorage.java │ ├── MySQLStorage.java │ ├── DatabaseManager.java │ └── DataSerializer.java │ ├── scheduler/ │ ├── DailyResetTask.java │ ├── ReminderTask.java │ ├── ExpireRequestTask.java │ ├── AutoSaveTask.java │ └── LeaderboardTask.java │ ├── event/ │ ├── StreakCreateEvent.java │ ├── StreakIncreaseEvent.java │ ├── StreakBreakEvent.java │ ├── StreakRewardEvent.java │ ├── RewardClaimEvent.java │ ├── StreakRequestSendEvent.java │ ├── StreakRequestAcceptEvent.java │ ├── StreakRequestDenyEvent.java │ └── DailyProgressCompleteEvent.java │ ├── service/ │ ├── ChatService.java │ ├── RewardService.java │ ├── RequestService.java │ └── StatisticsService.java │ ├── util/ │ ├── TimeUtil.java │ ├── MessageUtil.java │ ├── ItemUtil.java │ ├── HeadUtil.java │ ├── InventoryUtil.java │ ├── PlayerUtil.java │ └── ValidationUtil.java │ └── config/ ├── config.yml ├── rewards.yml ├── gui.yml ├── messages.yml └── database.yml ================================================== PLUGIN FEATURES ================================================== Create a TikTok-style friendship streak system. Players execute /streak to open the main GUI. Players can click another online player's head to send a streak request. The target player can: - Accept - Deny - Ignore After acceptance: - Both players become partners. - Only one active partner per player. - Requests automatically expire after a configurable time. ================================================== CHAT STREAK LOGIC ================================================== A streak only progresses when BOTH partners have chatted during the same day. Requirements: - Only messages sent in public chat count. - Ignore commands. - Ignore empty messages. - Ignore spam (configurable cooldown). - Only the first valid message per player counts. - Both partners must complete their chat before the daily reset. If completed: - Increase streak by one. - Save progress. - Fire custom events. - Check milestone rewards. - Send notifications. If incomplete: - Break streak. - Reset progress. - Save statistics. - Notify both players. ================================================== REWARD SYSTEM ================================================== Rewards are fully configurable in rewards.yml. Support: - Vault economy - Console commands - Player commands - Items - XP - Permissions - Custom messages - Sounds - Titles - ActionBars Example: Day 1: - $1000 Day 5: - $7000 - Diamond x1 Day 10: - Netherite - Money - Commands Every 5-day milestone should support custom rewards. ================================================== GUI SYSTEM ================================================== Create modern inventory GUIs with configurable layouts. Main GUI - Partner - Current streak - Highest streak - Today's progress - Rewards - Statistics - Pending requests - Leaderboard Player Selector GUI - Shows online player heads. - Pagination. - Search support. Requests GUI - Accept - Deny - Expiration timer Rewards GUI - Locked milestones - Unlocked milestones - Claimed rewards - Upcoming rewards Statistics GUI - Current streak - Highest streak - Total streaks - Total rewards - Days completed - Broken streaks Leaderboard GUI - Top streaks - Pagination Partner GUI - Partner information - Last chat - Progress - Join date ================================================== DATABASE ================================================== Support SQLite and MySQL. Create repositories. Automatic table creation. Prepared statements. Async loading and saving. Caching layer. ================================================== CUSTOM EVENTS ================================================== Create: - StreakCreateEvent - StreakIncreaseEvent - StreakBreakEvent - RewardClaimEvent - StreakRewardEvent - StreakRequestSendEvent - StreakRequestAcceptEvent - StreakRequestDenyEvent - DailyProgressCompleteEvent ================================================== PERFORMANCE ================================================== Never block the main server thread. Run database operations asynchronously. Cache player and streak data. Minimize database queries. Use efficient collections. ================================================== CONFIGURATION ================================================== Generate: - plugin.yml - config.yml - gui.yml - rewards.yml - messages.yml - database.yml Everything must be configurable. ================================================== OUTPUT ================================================== Generate the complete Maven project. Create every package, every class, every interface, every enum, every event, every manager, every model, every scheduler, every GUI, every configuration file, and implement production-ready code. Write code one file at a time in dependency order so the project compiles successfully from start to finish. Do not leave TODOs or placeholder implementations unless absolutely necessary.

minecraftspigot-java4 views

StreakPlugin

+0

Advanced Prompt – Minecraft TikTok-Style Streak Plugin You are a senior Java software engineer and Minecraft Paper plugin developer. Your task is to design and implement a production-quality, modular, and highly scalable Paper plugin called StreakPlugin. The code should follow clean architecture, SOLID principles, and modern Java practices. Avoid putting business logic inside listeners or GUI classes. Everything should be separated into managers, services, models, repositories/storage, and utilities. --- Project Information Name: StreakPlugin Language: Java 17+ Platform: Paper API (1.20+) Build Tool: Maven Storage: SQLite by default MySQL support Easy to switch between storage types Economy: Vault UUID-based data (never player names) --- Plugin Goal Create a TikTok-style friendship streak system inside Minecraft. Players send streak requests to each other. After both players become partners, they must chat with each other every day to keep their streak alive. If they fail to do so before the daily reset, the streak breaks. Players earn milestone rewards based on their streak. Everything should be configurable. --- Required Maven Structure StreakPlugin/ │ ├── pom.xml │ ├── src/ │ ├── main/ │ │ │ ├── java/ │ │ └── com/synkaimc/streak/ │ │ │ │ ├── StreakPlugin.java │ │ │ │ ├── api/ │ │ ├── command/ │ │ ├── config/ │ │ ├── database/ │ │ ├── event/ │ │ ├── gui/ │ │ ├── listener/ │ │ ├── manager/ │ │ ├── model/ │ │ ├── scheduler/ │ │ ├── service/ │ │ ├── storage/ │ │ ├── util/ │ │ └── wrapper/ │ │ │ └── resources/ │ ├── plugin.yml │ ├── config.yml │ ├── messages.yml │ ├── rewards.yml │ └── gui.yml --- Streak System A player executes: /streak The GUI opens. The GUI displays: Current streak Highest streak Partner Today's progress Pending requests Rewards Statistics Leaderboard --- Sending Requests Players can click another player's head. This creates a request. Request states: NONE ↓ PENDING ↓ ACCEPTED ↓ ACTIVE Rules: Cannot send request to yourself Cannot send duplicate request Cannot send if already in streak Requests expire Can cancel pending request --- Streak Pair Logic Each streak pair contains: UUID A UUID B Current Streak Highest Streak Status Created Date Last Progress Date Last Chat Date Today's Progress Reward History --- Chat Logic This is the most important part. Only chatting with your partner counts. Requirements: Player A must chat. Player B must chat. Only the first valid chat counts. Spam must not count. Messages must not be empty. Commands do not count. Example: Steve: hello ↓ Steve completed today Alex: hi ↓ Alex completed today ↓ Both complete ↓ Increase streak --- Daily Progress Track: Player A chatted Player B chatted Current day Completed --- Daily Reset Runs every midnight. For every streak pair: If both players completed today's requirement: Increase streak Reset today's progress Else: Break streak Reset streak Notify players --- Reward System Completely configurable. Example rewards: Day 1 Money Items Commands XP Permissions ---------------- Day 5 Money Diamond Commands ---------------- Day 10 Money Netherite Keys Commands ---------------- Every 5 days Custom reward Support: Vault money Console commands Player commands Items XP Permissions --- GUI Main GUI Request GUI Rewards GUI Statistics GUI Leaderboard GUI Partner Profile GUI Confirmation GUI Everything configurable inside gui.yml. --- Statistics Track: Current streak Highest streak Total streaks Rewards claimed Broken streaks Longest partnership Days completed Requests sent Requests accepted --- Notifications Support: Chat messages Action bar Boss bar Title Sound Examples: ❤️ Request Sent ❤️ Request Accepted 🔥 Streak Increased 🎁 Reward Ready 💔 Streak Broken ⚠ Partner hasn't chatted today --- Scheduler Create separate scheduler classes. Examples: DailyResetTask ReminderTask RequestExpireTask RewardTask LeaderboardTask --- Events Create custom events. Examples: StreakCreateEvent StreakIncreaseEvent StreakBreakEvent StreakRewardEvent StreakRequestSendEvent StreakRequestAcceptEvent StreakRequestDenyEvent PartnerChatEvent DailyProgressCompleteEvent --- Managers Create managers: StreakManager RequestManager RewardManager ChatManager ProgressManager NotificationManager GuiManager LeaderboardManager StorageManager CooldownManager ConfigManager StatisticsManager --- Models Create models: StreakPair DailyProgress Reward RewardHistory StreakRequest PlayerStatistics Notification --- Storage Support: SQLite MySQL Automatic table creation Prepared statements Async database operations Repository pattern --- Performance Use async tasks where appropriate. Avoid blocking the main thread. Cache player data. Minimize database queries. --- Code Style Use: SOLID principles Dependency injection where appropriate Interfaces Enums Builder pattern where useful Javadocs for public APIs Proper exception handling Meaningful class and method names --- Deliverables Generate: Complete Maven project pom.xml plugin.yml Folder structure All Java classes Database schema Managers Models Events Listeners GUI framework Config files Reward system Scheduler system Complete implementation with clean, scalable, production-ready code.

minecraftspigot-java3 views

Want your name on a profile like this?