@@ -22,8 +22,12 @@ public class MentorCommand extends AbstractCommand {
22
22
23
23
private static int onlineTeachers = 0 ;
24
24
25
+
26
+ private Queue <GenericPlayer > mentors ;
27
+
25
28
public MentorCommand (Tregmine tregmine ) {
26
29
super (tregmine , "mentor" );
30
+ mentors = tregmine .getMentorQueue ();
27
31
onlineTeachers = tregmine .getOnlineTeachers ();
28
32
}
29
33
@@ -118,121 +122,108 @@ public static void startMentoring(Tregmine tregmine, GenericPlayer student, Gene
118
122
119
123
@ Override
120
124
public boolean handlePlayer (GenericPlayer player , String [] args ) {
121
- String action = "queue" ;
122
- if (args .length > 0 ) {
123
- action = args [0 ];
124
- }
125
-
126
- if ("queue" .equalsIgnoreCase (action )) {
127
- if (!player .canMentor ()) {
128
- error (player , "You have not been granted mentoring abilities." );
129
- return true ;
130
- }
131
-
132
- if (player .getStudent () != null ) {
133
- error (player , "You can only mentor one " + "student at any given time." );
134
- return true ;
135
- }
136
-
137
- Queue <GenericPlayer > students = tregmine .getStudentQueue ();
138
- if (students .size () > 0 ) {
139
- GenericPlayer student = students .poll ();
140
- startMentoring (tregmine , student , player );
141
- return true ;
142
- }
125
+ String action = args .length > 0 ? args [0 ] : "queue" ;
143
126
144
- Queue <GenericPlayer > mentors = tregmine .getMentorQueue ();
145
- mentors .offer (player );
146
-
147
- player .sendMessage (GREEN + "You are now part of the mentor queue. " + "You are number "
148
- + mentors .size () + ". Type /mentor cancel " + "to opt out." );
149
- } else if ("cancel" .equalsIgnoreCase (action )) {
150
- if (player .getRank () == Rank .TOURIST ) {
151
- GenericPlayer mentor = player .getMentor ();
152
-
153
- try (IContext ctx = tregmine .createContext ()) {
154
- IMentorLogDAO mentorLogDAO = ctx .getMentorLogDAO ();
155
- int mentorLogId = mentorLogDAO .getMentorLogId (player , mentor );
156
- mentorLogDAO .updateMentorLogEvent (mentorLogId , IMentorLogDAO .MentoringEvent .CANCELLED );
157
- } catch (DAOException e ) {
158
- throw new RuntimeException (e );
127
+ switch (action ) {
128
+ case "queue" :
129
+ if (!player .canMentor ()) {
130
+ error (player , "You have not been granted mentoring abilities." );
131
+ return true ;
159
132
}
160
133
161
- player .setMentor (null );
162
- mentor .setStudent (null );
163
-
164
- mentor .sendMessage (player .getName () + "" + RED + " cancelled " + "mentoring with you." );
165
- player .sendMessage (GREEN + "Mentoring cancelled. Attempting to " + "find you a new mentor." );
166
-
167
- findMentor (tregmine , player );
168
- } else {
169
- Queue <GenericPlayer > mentors = tregmine .getMentorQueue ();
170
- if (!mentors .contains (player )) {
171
- error (player , "You are not part of the mentor queue. "
172
- + "If you have already been assigned a student, you cannot " + "abort the mentoring." );
134
+ if (player .getStudent () != null ) {
135
+ error (player , "You can only mentor one " + "student at any given time." );
173
136
return true ;
174
137
}
175
- mentors .remove (player );
176
-
177
- player .sendMessage (GREEN + "You are no longer part of the mentor queue." );
178
- }
179
- } else if ("complete" .equalsIgnoreCase (action )) {
180
- if (!player .getRank ().canMentor () && tregmine .getOnlineTeachers () >= 1 ) {
181
- error (player , "There are mentors available, you cannot skip mentoring." );
182
- return true ;
183
- }
184
- if (tregmine .getOnlineTeachers () == 0 && player .getMentor () == null && player .getRank () == Rank .TOURIST ) {
185
- try (IContext ctx = tregmine .createContext ()) {
186
- player .setRank (Rank .SETTLER );
187
-
188
- IPlayerDAO playerDAO = ctx .getPlayerDAO ();
189
- playerDAO .updatePlayer (player );
190
- playerDAO .updatePlayerInfo (player );
191
138
192
- IMentorLogDAO mentorLogDAO = ctx .getMentorLogDAO ();
193
- int mentorLogId = mentorLogDAO .getMentorLogId (player , player );
194
-
195
- mentorLogDAO .updateMentorLogEvent (mentorLogId , IMentorLogDAO .MentoringEvent .SKIPPED );
196
- player .sendMessage (ChatColor .GREEN + "You have been elevated to settler status." );
197
- } catch (DAOException e ) {
198
- throw new RuntimeException (e );
139
+ Queue <GenericPlayer > students = tregmine .getStudentQueue ();
140
+ if (students .size () > 0 ) {
141
+ GenericPlayer student = students .poll ();
142
+ startMentoring (tregmine , student , player );
143
+ return true ;
199
144
}
200
- return true ;
201
- }
202
- GenericPlayer student = player .getStudent ();
203
- if (student == null ) {
204
- error (player , "You are not mentoring anyone right now." );
205
- return true ;
206
- }
207
- if (student != null ) {
208
- try (IContext ctx = tregmine .createContext ()) {
209
- student .setRank (Rank .SETTLER );
210
-
211
- IPlayerDAO playerDAO = ctx .getPlayerDAO ();
212
- playerDAO .updatePlayer (student );
213
- playerDAO .updatePlayerInfo (student );
214
-
215
- player .setStudent (null );
216
- student .setMentor (null );
217
-
218
- IMentorLogDAO mentorLogDAO = ctx .getMentorLogDAO ();
219
- int mentorLogId = mentorLogDAO .getMentorLogId (student , player );
220
-
221
- mentorLogDAO .updateMentorLogEvent (mentorLogId , IMentorLogDAO .MentoringEvent .COMPLETED );
222
- player .sendMessage (GREEN + "Mentoring of " + student .getName () + GREEN + " has now finished!" );
223
- player .giveExp (100 );
224
-
225
- student .sendMessage (GREEN + "Congratulations! You have now achieved "
226
- + "settler status. We hope you'll enjoy your stay on Tregmine!" );
227
- } catch (DAOException e ) {
228
- throw new RuntimeException (e );
145
+ mentors .offer (player );
146
+
147
+ player .sendMessage (GREEN + "You are now part of the mentor queue. " + "You are number "
148
+ + mentors .size () + ". Type /mentor cancel " + "to opt out." );
149
+ break ;
150
+ case "cancel" :
151
+ if (player .getRank () == Rank .TOURIST ) {
152
+ GenericPlayer mentor = player .getMentor ();
153
+
154
+ try (IContext ctx = tregmine .createContext ()) {
155
+ IMentorLogDAO mentorLogDAO = ctx .getMentorLogDAO ();
156
+ int mentorLogId = mentorLogDAO .getMentorLogId (player , mentor );
157
+ mentorLogDAO .updateMentorLogEvent (mentorLogId , IMentorLogDAO .MentoringEvent .CANCELLED );
158
+ } catch (DAOException e ) {
159
+ throw new RuntimeException (e );
160
+ }
161
+
162
+ player .setMentor (null );
163
+ mentor .setStudent (null );
164
+
165
+ mentor .sendMessage (player .getName () + "" + RED + " cancelled " + "mentoring with you." );
166
+ player .sendMessage (GREEN + "Mentoring cancelled. Attempting to " + "find you a new mentor." );
167
+
168
+ findMentor (tregmine , player );
169
+ } else {
170
+ Queue <GenericPlayer > mentors = tregmine .getMentorQueue ();
171
+ if (!mentors .contains (player )) return error (player , "You are not part of the mentor queue. "
172
+ + "If you have already been assigned a student, you cannot " + "abort the mentoring." );
173
+ mentors .remove (player );
174
+
175
+ player .sendMessage (GREEN + "You are no longer part of the mentor queue." );
229
176
}
230
- return true ;
231
- }
232
- } else {
233
- return false ;
177
+ case "complete" :
178
+ if (!player .getRank ().canMentor () && tregmine .getOnlineTeachers () >= 1 ) return error (player , "There are mentors available, you cannot skip mentoring." );
179
+ if (tregmine .getOnlineTeachers () == 0 && player .getMentor () == null && player .getRank () == Rank .TOURIST ) {
180
+ try (IContext ctx = tregmine .createContext ()) {
181
+ player .setRank (Rank .SETTLER );
182
+
183
+ IPlayerDAO playerDAO = ctx .getPlayerDAO ();
184
+ playerDAO .updatePlayer (player );
185
+ playerDAO .updatePlayerInfo (player );
186
+
187
+ IMentorLogDAO mentorLogDAO = ctx .getMentorLogDAO ();
188
+ int mentorLogId = mentorLogDAO .getMentorLogId (player , player );
189
+
190
+ mentorLogDAO .updateMentorLogEvent (mentorLogId , IMentorLogDAO .MentoringEvent .SKIPPED );
191
+ player .sendMessage (ChatColor .GREEN + "You have been elevated to settler status." );
192
+ } catch (DAOException e ) {
193
+ throw new RuntimeException (e );
194
+ }
195
+ return true ;
196
+ }
197
+ GenericPlayer student = player .getStudent ();
198
+ if (student == null ) return error (player , "You are not mentoring anyone right now." );
199
+ if (student != null ) {
200
+ try (IContext ctx = tregmine .createContext ()) {
201
+ student .setRank (Rank .SETTLER );
202
+
203
+ IPlayerDAO playerDAO = ctx .getPlayerDAO ();
204
+ playerDAO .updatePlayer (student );
205
+ playerDAO .updatePlayerInfo (student );
206
+
207
+ player .setStudent (null );
208
+ student .setMentor (null );
209
+
210
+ IMentorLogDAO mentorLogDAO = ctx .getMentorLogDAO ();
211
+ int mentorLogId = mentorLogDAO .getMentorLogId (student , player );
212
+
213
+ mentorLogDAO .updateMentorLogEvent (mentorLogId , IMentorLogDAO .MentoringEvent .COMPLETED );
214
+ player .sendMessage (GREEN + "Mentoring of " + student .getName () + GREEN + " has now finished!" );
215
+ player .giveExp (100 );
216
+
217
+ student .sendMessage (GREEN + "Congratulations! You have now achieved "
218
+ + "settler status. We hope you'll enjoy your stay on Tregmine!" );
219
+ } catch (DAOException e ) {
220
+ throw new RuntimeException (e );
221
+ }
222
+ return true ;
223
+ }
224
+ default :
225
+ return false ;
234
226
}
235
-
236
227
return true ;
237
228
}
238
229
}
0 commit comments