@@ -23,6 +23,9 @@ public class RulesManager {
23
23
double pageCount ;
24
24
public List <String > rules ;
25
25
public RuleMode ruleMode ;
26
+ public boolean pageSelectorEnabled ;
27
+ public String prefix ;
28
+ public String suffix ;
26
29
27
30
public RulesManager (SST plugin ) {
28
31
this .plugin = plugin ;
@@ -36,6 +39,9 @@ public void reloadRules() {
36
39
pageCount = (double ) rules .size () / splitRulesEvery ;
37
40
pageCount = Math .ceil (pageCount );
38
41
ruleMode = RuleMode .valueOf (file .getString ("mode" ).toUpperCase (Locale .ROOT ));
42
+ pageSelectorEnabled = file .getBoolean ("page-selector.enabled" );
43
+ prefix = file .getString ("prefix" );
44
+ suffix = file .getString ("suffix" );
39
45
}
40
46
41
47
public List <List <String >> setupRulePages (CommandSender sender ) {
@@ -65,19 +71,47 @@ public List<String> getRulesPage(int page) {
65
71
}
66
72
67
73
public void sendRules (CommandSender sender , int page ) {
74
+ page = Math .max (1 , page );
68
75
if (rules .isEmpty ()) {
69
76
sender .sendMessage (Utils .getString (file , "no-rule" , sender ));
70
77
return ;
71
78
}
72
-
73
79
if (ruleMode == RuleMode .BOOK && sender instanceof Player ) {
74
80
openRuleBook ((Player ) sender );
75
81
} else {
76
- sender .sendMessage (Utils .getString (file , "prefix" , sender ));
82
+ String pageString = String .valueOf (page );
83
+ sendComponent (sender , page , pageString );
84
+
85
+ if (!prefix .isEmpty ()) {
86
+ String coloredPrefix = Utils .replacePlaceholders (prefix , sender , true );
87
+ sender .sendMessage (coloredPrefix .replace ("%page%" , pageString ));
88
+ }
77
89
for (String s : getRulesPage (page )) {
78
90
sender .sendMessage (Utils .replacePlaceholders (s , sender , true ));
79
91
}
80
- sender .sendMessage (Utils .getString (file , "suffix" , sender ));
92
+ if (!suffix .isEmpty ()) {
93
+ String coloredSuffix = Utils .replacePlaceholders (suffix , sender , true );
94
+ sender .sendMessage (coloredSuffix .replace ("%page%" , pageString ));
95
+ }
96
+
97
+ sendComponent (sender , page , pageString );
98
+ }
99
+ }
100
+
101
+ public void sendComponent (CommandSender sender , int page , String pageString ) {
102
+ if (pageSelectorEnabled ) {
103
+ TextComponent component = new TextComponent (Utils .getString (file , "page-selector.back" , sender ));
104
+ component .setClickEvent (new ClickEvent (ClickEvent .Action .RUN_COMMAND , "/rules " + (page - 1 )));
105
+
106
+ TextComponent middle = new TextComponent (Utils .getString (file , "page-selector.middle" , sender )
107
+ .replace ("%page%" , pageString ));
108
+
109
+ BaseComponent next = new TextComponent (Utils .getString (file , "page-selector.next" , sender ));
110
+ next .setClickEvent (new ClickEvent (ClickEvent .Action .RUN_COMMAND , "/rules " + (page + 1 )));
111
+
112
+ component .addExtra (middle );
113
+ component .addExtra (next );
114
+ sender .sendMessage (component );
81
115
}
82
116
}
83
117
0 commit comments