Skip to content

Commit 6ce4313

Browse files
committed
Update documentation, refactor class/package locations
1 parent 58fbcd0 commit 6ce4313

File tree

13 files changed

+84
-45
lines changed

13 files changed

+84
-45
lines changed

build.gradle

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ uri "https://github.com/SamJakob/SpiGUI"
1010
java {
1111
sourceCompatibility = 1.8
1212
targetCompatibility = 1.8
13+
14+
withJavadocJar()
15+
withSourcesJar()
1316
}
1417

1518
repositories {
@@ -33,6 +36,8 @@ dependencies {
3336
implementation group: 'org.spigotmc', name: 'spigot-api', version: '1.8.8-R0.1-SNAPSHOT'
3437
}
3538

39+
// Builds Spigot runnable plugin from the test package.
40+
// Can be used to demonstrate and test functionality.
3641
tasks.register('testJar', Jar) {
3742
from sourceSets.main.output.classesDirs
3843
from sourceSets.test.output.classesDirs
@@ -43,41 +48,21 @@ tasks.register('testJar', Jar) {
4348
archiveBaseName.set("SpiGUITest")
4449
}
4550

46-
tasks.register('sourcesJar', Jar) {
47-
archiveClassifier.set('sources')
48-
from sourceSets.main.java.sourceDirectories
49-
}
50-
51-
tasks.register('classesJar', Jar) {
52-
from sourceSets.main.output.classesDirs
53-
}
51+
javadoc {
52+
if (JavaVersion.current().isJava9Compatible()) {
53+
options.addBooleanOption('html5', true);
54+
}
5455

55-
tasks.register('documentation', Javadoc) {
5656
source = sourceSets.main.java.sourceDirectories
5757
classpath += configurations.compileClasspath
5858

5959
options.memberLevel = JavadocMemberLevel.PRIVATE
6060
}
6161

62-
tasks.register('javadocJar', Jar) {
63-
dependsOn documentation
64-
archiveClassifier.set('javadoc')
65-
from documentation.destinationDir
66-
}
67-
68-
artifacts {
69-
archives classesJar
70-
archives javadocJar
71-
archives sourcesJar
72-
}
73-
7462
publishing {
7563
publications {
7664
SpiGUI(MavenPublication) {
7765
from components.java
78-
79-
artifact(javadocJar)
80-
artifact(sourcesJar)
8166
}
8267
}
8368
}

src/main/java/com/samjakob/spigui/SpiGUI.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package com.samjakob.spigui;
22

33
import com.samjakob.spigui.buttons.SGButton;
4+
import com.samjakob.spigui.menu.SGMenu;
45
import com.samjakob.spigui.menu.SGMenuListener;
56
import com.samjakob.spigui.menu.SGOpenMenu;
67
import com.samjakob.spigui.item.ItemBuilder;
7-
import com.samjakob.spigui.pagination.SGToolbarBuilder;
8+
import com.samjakob.spigui.toolbar.SGToolbarBuilder;
89
import org.bukkit.Material;
910
import org.bukkit.entity.Player;
1011
import org.bukkit.inventory.Inventory;
@@ -14,11 +15,13 @@
1415
import java.util.List;
1516

1617
/**
17-
* A comprehensive GUI API for Spigot with pages support.<br>
18-
* <a href="https://github.com/SamJakob/SpiGUI">https://github.com/SamJakob/SpiGUI</a>
19-
*
20-
* @author SamJakob
21-
* @version 1.3.0
18+
* The core class for the SpiGUI library.<br>
19+
* One instance of the SpiGUI class is registered for each plugin using it.
20+
* <p>
21+
* The expected usage of SpiGUI is that you register a SpiGUI instance for your
22+
* plugin with <code>new SpiGUI(this);</code> in your class that extends
23+
* <code>JavaPlugin</code>. You can then use the instance you've created throughout
24+
* your project to create GUIs that use SpiGUI.
2225
*/
2326
public class SpiGUI {
2427

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/**
2+
* Clickable elements for SpiGUI menus ({@link com.samjakob.spigui.menu.SGMenu}).<br>
3+
* Presently, only a button is implemented: {@link com.samjakob.spigui.buttons.SGButton}.
4+
*
5+
* @since 1.0.0
6+
* @version 1.3.0
7+
*/
8+
package com.samjakob.spigui.buttons;
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
* The {@link com.samjakob.spigui.item.ItemBuilder} API (and friends).<br>
3+
* This holds the ItemBuilder API class and other classes (or enums) used to implement it.
4+
*/
5+
package com.samjakob.spigui.item;

src/main/java/com/samjakob/spigui/SGMenu.java renamed to src/main/java/com/samjakob/spigui/menu/SGMenu.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
package com.samjakob.spigui;
1+
package com.samjakob.spigui.menu;
22

3+
import com.samjakob.spigui.SpiGUI;
34
import com.samjakob.spigui.buttons.SGButton;
4-
import com.samjakob.spigui.pagination.SGToolbarBuilder;
5-
import com.samjakob.spigui.pagination.SGToolbarButtonType;
5+
import com.samjakob.spigui.toolbar.SGToolbarBuilder;
6+
import com.samjakob.spigui.toolbar.SGToolbarButtonType;
67
import org.bukkit.Bukkit;
78
import org.bukkit.ChatColor;
89
import org.bukkit.entity.HumanEntity;
@@ -50,16 +51,21 @@ public class SGMenu implements InventoryHolder {
5051
private Consumer<SGMenu> onPageChange;
5152

5253
/**
54+
* <b>Intended for internal use only. Use {@link SpiGUI#create(String, int)} or {@link SpiGUI#create(String, int, String)}!</b><br>
5355
* Used by the library internally to construct an SGMenu.
56+
* <p>
5457
* The name parameter is color code translated.
5558
*
5659
* @param owner The plugin the inventory should be associated with.
5760
* @param spiGUI The SpiGUI that created this inventory.
5861
* @param name The display name of the inventory.
5962
* @param rowsPerPage The number of rows per page.
6063
* @param tag The inventory's tag.
64+
*
65+
* @see SpiGUI#create(String, int)
66+
* @see SpiGUI#create(String, int, String)
6167
*/
62-
SGMenu(JavaPlugin owner, SpiGUI spiGUI, String name, int rowsPerPage, String tag) {
68+
public SGMenu(JavaPlugin owner, SpiGUI spiGUI, String name, int rowsPerPage, String tag) {
6369
this.owner = owner;
6470
this.spiGUI = spiGUI;
6571
this.name = ChatColor.translateAlternateColorCodes('&', name);

src/main/java/com/samjakob/spigui/menu/SGMenuListener.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package com.samjakob.spigui.menu;
22

3-
import com.samjakob.spigui.SGMenu;
43
import com.samjakob.spigui.SpiGUI;
54
import com.samjakob.spigui.buttons.SGButton;
6-
import com.samjakob.spigui.pagination.SGToolbarBuilder;
7-
import com.samjakob.spigui.pagination.SGToolbarButtonType;
5+
import com.samjakob.spigui.toolbar.SGToolbarBuilder;
6+
import com.samjakob.spigui.toolbar.SGToolbarButtonType;
87
import org.bukkit.event.EventHandler;
98
import org.bukkit.event.EventPriority;
109
import org.bukkit.event.Listener;

src/main/java/com/samjakob/spigui/menu/SGOpenMenu.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.samjakob.spigui.menu;
22

3-
import com.samjakob.spigui.SGMenu;
43
import org.bukkit.entity.Player;
54

5+
/**
6+
* Used to refer to an open menu.
7+
*/
68
public class SGOpenMenu {
79

810
private final SGMenu gui;
@@ -13,10 +15,18 @@ public SGOpenMenu(SGMenu gui, Player player) {
1315
this.player = player;
1416
}
1517

16-
public SGMenu getGUI() {
18+
/**
19+
* Get the open {@link SGMenu} instance.
20+
* @return The menu that is open.
21+
*/
22+
public SGMenu getMenu() {
1723
return this.gui;
1824
}
1925

26+
/**
27+
* Get the player viewing the {@link SGMenu}.
28+
* @return The player viewing the menu.
29+
*/
2030
public Player getPlayer() {
2131
return this.player;
2232
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
* Menu definitions, including the listener (which handles user events).<br>
3+
* See: {@link com.samjakob.spigui.menu.SGMenu}.
4+
*/
5+
package com.samjakob.spigui.menu;

src/main/java/com/samjakob/spigui/pagination/SGToolbarBuilder.java renamed to src/main/java/com/samjakob/spigui/toolbar/SGToolbarBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.samjakob.spigui.pagination;
1+
package com.samjakob.spigui.toolbar;
22

3-
import com.samjakob.spigui.SGMenu;
3+
import com.samjakob.spigui.menu.SGMenu;
44
import com.samjakob.spigui.buttons.SGButton;
55

66
public interface SGToolbarBuilder {

src/main/java/com/samjakob/spigui/pagination/SGToolbarButtonType.java renamed to src/main/java/com/samjakob/spigui/toolbar/SGToolbarButtonType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.samjakob.spigui.pagination;
1+
package com.samjakob.spigui.toolbar;
22

33
import java.util.AbstractMap;
44
import java.util.Map;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/**
2+
* The Toolbar API.<br>
3+
* Used to override the pagination buttons, or to add fixed toolbar items.
4+
* <p>
5+
* This contains the {@link com.samjakob.spigui.toolbar.SGToolbarBuilder} interface,
6+
* responsible for delegating the building of each toolbar button.
7+
* <p>
8+
* For usage,
9+
* see {@link com.samjakob.spigui.menu.SGMenu#setToolbarBuilder(com.samjakob.spigui.toolbar.SGToolbarBuilder)}
10+
* or {@link com.samjakob.spigui.SpiGUI#setDefaultToolbarBuilder(com.samjakob.spigui.toolbar.SGToolbarBuilder)}.
11+
*/
12+
package com.samjakob.spigui.toolbar;

src/main/java/package-info.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/**
2+
* A comprehensive GUI API for Spigot with pages support.<br>
3+
* <a href="https://github.com/SamJakob/SpiGUI">https://github.com/SamJakob/SpiGUI</a>
4+
*
5+
* @since 1.0.0
6+
* @version 1.3.0
7+
*/
8+
package com.samjakob.spigui;

src/test/java/com/samjakob/spiguitest/SpiGUITest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.samjakob.spiguitest;
22

3-
import com.samjakob.spigui.SGMenu;
3+
import com.samjakob.spigui.menu.SGMenu;
44
import com.samjakob.spigui.SpiGUI;
55
import com.samjakob.spigui.buttons.SGButton;
66
import com.samjakob.spigui.item.ItemBuilder;
@@ -16,11 +16,9 @@
1616
import org.bukkit.scheduler.BukkitRunnable;
1717
import org.bukkit.scheduler.BukkitTask;
1818

19-
import java.time.Duration;
2019
import java.util.*;
2120
import java.util.concurrent.ThreadLocalRandom;
2221
import java.util.concurrent.TimeUnit;
23-
import java.util.concurrent.atomic.AtomicInteger;
2422
import java.util.concurrent.atomic.AtomicReference;
2523
import java.util.stream.Collectors;
2624
import java.util.stream.IntStream;

0 commit comments

Comments
 (0)