Skip to content

Commit 26cf8b9

Browse files
committed
First public commit
0 parents  commit 26cf8b9

127 files changed

Lines changed: 20026 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.project

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>ezauction</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
<buildCommand>
14+
<name>org.eclipse.m2e.core.maven2Builder</name>
15+
<arguments>
16+
</arguments>
17+
</buildCommand>
18+
</buildSpec>
19+
<natures>
20+
<nature>org.eclipse.jdt.core.javanature</nature>
21+
<nature>org.eclipse.m2e.core.maven2Nature</nature>
22+
</natures>
23+
<filteredResources>
24+
<filter>
25+
<id>1761967149275</id>
26+
<name></name>
27+
<type>30</type>
28+
<matcher>
29+
<id>org.eclipse.core.resources.regexFilterMatcher</id>
30+
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
31+
</matcher>
32+
</filter>
33+
</filteredResources>
34+
</projectDescription>

CONTRIBUTING.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Contributing to EzAuction
2+
3+
Thank you for your interest in contributing to EzAuction! We welcome contributions from everyone. Please read these guidelines to help us maintain a high-quality, collaborative project.
4+
5+
## How to Contribute
6+
7+
### 1. Reporting Issues
8+
- Use [GitHub Issues](https://github.com/ez-plugins/ezauction/issues) to report bugs, request features, or ask questions.
9+
- Please provide as much detail as possible, including steps to reproduce, logs, and your environment.
10+
11+
### 2. Submitting Pull Requests
12+
- Fork the repository and create your branch from `main`.
13+
- Follow the existing code style and conventions.
14+
- Write clear, concise commit messages.
15+
- Include tests for new features or bug fixes when possible.
16+
- Ensure your code builds and passes all tests before submitting.
17+
- Reference related issues in your PR description (e.g., `Closes #123`).
18+
19+
### 3. Code Style
20+
- Use 4 spaces for indentation (Java).
21+
- Use descriptive names for classes, methods, and variables.
22+
- Document public classes and methods with Javadoc.
23+
- Keep gameplay features organized in dedicated packages or classes, following the existing project structure.
24+
25+
### 4. Documentation
26+
- Update documentation in the `docs/` folder as needed.
27+
- Add or update code samples and API references if your change affects public APIs.
28+
29+
### 5. Reviewing and Merging
30+
- All PRs are reviewed by maintainers.
31+
- Address review comments promptly.
32+
- PRs may be squashed and merged for a clean history.
33+
34+
## Code of Conduct
35+
36+
This project follows the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). Be respectful and inclusive in all interactions.
37+
38+
## License
39+
40+
By contributing, you agree that your contributions will be licensed under the MIT License.
41+
42+
---
43+
44+
For any questions, open an issue or contact the maintainers. Thank you for helping make EzAuction better!

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Gyvex (63536625)
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
2+
3+
4+
# EzAuction
5+
6+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7+
[![Build](https://img.shields.io/badge/build-passing-brightgreen)](https://github.com/Gyvex/ezauction/actions)
8+
[![Java](https://img.shields.io/badge/java-17%2B-blue)](https://adoptium.net/)
9+
10+
**EzAuction** is a modern, extensible Minecraft auction plugin for Bukkit/Spigot servers. It features a user-friendly GUI, robust API, and comprehensive event system for both server owners and plugin developers.
11+
12+
---
13+
14+
## 📑 Table of Contents
15+
- [Requirements](#-requirements)
16+
- [Installation](#-installation)
17+
- [Features](#-features)
18+
- [Configuration](#-configuration)
19+
- [Permissions & Commands](#-permissions--commands)
20+
- [Documentation](#-documentation)
21+
- [Usage Examples](#-usage-examples)
22+
- [Contributing](#-contributing)
23+
- [Support & Community](#-support--community)
24+
- [License](#-license)
25+
26+
---
27+
28+
## 📦 Requirements
29+
- Java 17 or higher ([Adoptium](https://adoptium.net/))
30+
- Bukkit/Spigot/Paper server (1.17+ recommended)
31+
32+
## 🚀 Installation
33+
1. Download the latest EzAuction JAR from the [releases page](https://github.com/Gyvex/ezauction/releases).
34+
2. Place the JAR in your server's `plugins/` directory.
35+
3. Start or reload your server.
36+
4. Configure the plugin as needed (see below).
37+
38+
## ✨ Features
39+
- Intuitive auction GUI for browsing, buying, and selling
40+
- Buy/sell items with in-game currency
41+
- Configurable listing rules, durations, and permissions
42+
- Search, filter, and sort auction listings
43+
- Expiry and auto-removal of old listings
44+
- Customizable messages and GUI appearance
45+
- Full event and API support for developers
46+
- Multi-language support (via config)
47+
- Actively maintained and open source
48+
49+
## ⚙️ Configuration
50+
Default configuration files are generated on first run in `plugins/EzAuction/`.
51+
52+
**Key configuration options in `config.yml`:**
53+
54+
- `listing-max-duration`: Maximum time (in hours) a listing can stay active
55+
- `listing-fee`: Flat or percentage fee for creating a listing
56+
- `currency-type`: Vault, XP, or custom economy
57+
- `max-listings-per-player`: Limit the number of active listings per player
58+
- `allow-bidding`: Enable/disable bidding (if supported)
59+
- `gui-title`: Customize the auction GUI title
60+
- `language`: Set the plugin language (see `lang/` folder)
61+
62+
After editing, reload the plugin or restart the server to apply changes.
63+
64+
## 🛡️ Permissions & Commands
65+
66+
**Main Commands:**
67+
68+
| Command | Description | Permission |
69+
|------------------------|------------------------------------|---------------------------|
70+
| `/auction` | Open the auction browser GUI | `ezauction.use` |
71+
| `/auction sell <price>`| List held item for sale | `ezauction.sell` |
72+
| `/auction cancel` | Cancel your active listing | `ezauction.cancel` |
73+
| `/auction reload` | Reload plugin configuration | `ezauction.admin.reload` |
74+
75+
**Key Permissions:**
76+
77+
- `ezauction.use`: Access the auction GUI
78+
- `ezauction.sell`: List items for sale
79+
- `ezauction.cancel`: Cancel own listings
80+
- `ezauction.admin.*`: All admin permissions
81+
82+
See the [docs/permissions.md](../docs/permissions.md) for a full list.
83+
84+
## 📚 Documentation
85+
- [API Reference](docs/api.md): Public classes, methods, and code samples
86+
- [Event Reference](docs/events.md): All plugin events, listener registration, and event payloads
87+
- [Configuration Guide](docs/configuration.md): All config options explained
88+
- [Permissions](docs/permissions.md): All permissions and their usage
89+
- [Full Documentation](docs/): Guides, advanced usage, and troubleshooting
90+
91+
## 🛠️ Usage Examples
92+
93+
### Creating a Listing
94+
```java
95+
AuctionOperationResult result = auctionManager.createListing(player, itemStack, price, duration);
96+
if (result.success()) {
97+
// Listing created
98+
} else {
99+
player.sendMessage(result.message());
100+
}
101+
```
102+
103+
### Listening for Events
104+
```java
105+
@EventHandler
106+
public void onAuctionListingCreate(AuctionListingCreateEvent event) {
107+
// Custom logic here
108+
}
109+
```
110+
111+
---
112+
113+
## 🤝 Contributing
114+
Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines, or open an issue/PR.
115+
116+
## 🛡️ Support & Community
117+
- For help, open an issue on GitHub or contact the maintainers.
118+
- Feature requests and bug reports are encouraged.
119+
120+
## 📄 License
121+
EzAuction is licensed under the [MIT License](LICENSE). Copyright (c) 2026 Gyvex (63536625).
122+
123+
---
124+
125+
For full documentation, see the [docs/](docs/) folder. For support, open an issue or contact the maintainers.

docs/api.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# EzAuction Plugin API Documentation
2+
3+
This document provides a comprehensive reference for developers integrating with the EzAuction plugin. All public classes, methods, and extension points are documented with usage examples.
4+
5+
## Table of Contents
6+
- [Overview](#overview)
7+
- [Main API Classes](#main-api-classes)
8+
- [Key Methods & Usage](#key-methods--usage)
9+
- [Code Samples](#code-samples)
10+
11+
---
12+
13+
## Overview
14+
EzAuction exposes a robust API for interacting with auctions, listings, and events. Use these APIs to create, query, and manage auctions programmatically.
15+
16+
## Main API Classes
17+
- `AuctionManager` — Central access point for auction operations.
18+
- `AuctionListingService` — Handles creation, cancellation, and purchase of listings.
19+
- `AuctionOrderService` — Manages buy orders.
20+
- `AuctionReturnService` — Handles item returns.
21+
- `AuctionQueryService` — Query and statistics for listings/orders.
22+
23+
## Key Methods & Usage
24+
25+
### Creating a Listing
26+
```java
27+
AuctionOperationResult result = auctionManager.createListing(player, itemStack, price, duration);
28+
if (result.success()) {
29+
// Listing created
30+
} else {
31+
player.sendMessage(result.message());
32+
}
33+
```
34+
35+
### Querying Listings
36+
```java
37+
List<AuctionListing> listings = auctionManager.listActiveListings();
38+
for (AuctionListing listing : listings) {
39+
// Process listing
40+
}
41+
```
42+
43+
### Cancelling a Listing
44+
```java
45+
AuctionOperationResult result = auctionManager.cancelListing(player.getUniqueId(), listingId);
46+
```
47+
48+
## Code Samples
49+
50+
### Registering a Custom Listener
51+
See [docs/events.md](events.md) for event listener code samples.
52+
53+
---
54+
For more details, see the full Javadoc or contact the maintainers.

0 commit comments

Comments
 (0)