Skip to content

Commit bcaf29d

Browse files
Update PageDecoration.java
1 parent d4a497c commit bcaf29d

File tree

1 file changed

+72
-1
lines changed

1 file changed

+72
-1
lines changed

src/main/java/me/flame/menus/menu/PageDecoration.java

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import me.flame.menus.menu.fillers.MenuFiller;
77

88
import org.bukkit.Material;
9-
import org.bukkit.entity.*;
109
import org.bukkit.inventory.ItemStack;
1110
import org.jetbrains.annotations.Contract;
1211
import org.jetbrains.annotations.NotNull;
@@ -90,4 +89,76 @@ public void fillPages(ItemStack itemStack) {
9089
}
9190
}
9291
}
92+
93+
public void fillRow(int row, Material borderMaterial) {
94+
final int size = menu.getSize();
95+
96+
MenuItem itemStack = MenuItem.of(new ItemStack(borderMaterial));
97+
for (Page page : menu.pageList) {
98+
for (int i = 0; i < size; i++) {
99+
if (i / 9 == row) page.setItem(i, itemStack);
100+
}
101+
}
102+
}
103+
104+
public void fillRow(int row, ItemStack borderMaterial) {
105+
final int size = menu.getSize();
106+
107+
MenuItem itemStack = MenuItem.of(borderMaterial);
108+
for (Page page : menu.pageList) {
109+
for (int i = 0; i < size; i++) {
110+
if (i / 9 == row) page.setItem(i, itemStack);
111+
}
112+
}
113+
}
114+
115+
public void fillRow(int row, MenuItem itemStack) {
116+
final int size = menu.getSize();
117+
118+
for (Page page : menu.pageList) {
119+
for (int i = 0; i < size; i++) {
120+
if (i / 9 == row) page.setItem(i, itemStack);
121+
}
122+
}
123+
}
124+
125+
public void fillArea(int length, int width, Material borderMaterial) {
126+
final int size = menu.getSize();
127+
128+
MenuItem itemStack = MenuItem.of(new ItemStack(borderMaterial));
129+
for (Page page : menu.pageList) {
130+
for (int i = 0; i < size; i++) {
131+
if (isInArea(i, length, width)) page.setItem(i, itemStack);
132+
}
133+
}
134+
}
135+
136+
public void fillArea(int length, int width, ItemStack borderMaterial) {
137+
final int size = menu.getSize();
138+
139+
MenuItem itemStack = MenuItem.of(borderMaterial);
140+
for (Page page : menu.pageList) {
141+
for (int i = 0; i < size; i++) {
142+
if (isInArea(i, length, width)) page.setItem(i, itemStack);
143+
}
144+
}
145+
}
146+
147+
public void fillArea(int length, int width, MenuItem itemStack) {
148+
final int size = menu.getSize();
149+
150+
for (Page page : menu.pageList) {
151+
for (int i = 0; i < size; i++) {
152+
if (isInArea(i, length, width)) page.setItem(i, itemStack);
153+
}
154+
}
155+
}
156+
157+
// simple geometry to check if a slot is in an area of L*W
158+
159+
private static boolean isInArea(int slot, int length, int width) {
160+
int rows = length / 9;
161+
int startRow = slot / 9;
162+
return startRow < rows && slot % 9 < width;
163+
}
93164
}

0 commit comments

Comments
 (0)