8
8
import java .util .Objects ;
9
9
import java .util .Timer ;
10
10
import java .util .TimerTask ;
11
- import java .util .concurrent .ConcurrentHashMap ;
12
11
13
12
public class Checkly {
14
13
public static String FILE = System .getenv ("APPDATA" ) + "\\ .vimeworld\\ minigames\\ logs\\ latest.log" ;
15
- public static final ConcurrentHashMap < String , Boss > BOSSES = new ConcurrentHashMap <>() ;
14
+ public static final Boss [] BOSSES = new Boss [ 12 ] ;
16
15
17
16
public static Timer timer = new Timer ();
18
17
19
- private String lastString = "Первые две буквы в слове \" гребля \" означают групповая " ;
18
+ private String lastString = "" ;
20
19
private final Logger logger = new Logger ();
21
20
22
21
private boolean sound = false ;
23
22
24
23
public Checkly () {
25
- BOSSES .put ("Королевский зомби" , new Boss ("Королевский зомби" , getMinute (25 ), "/base" ));
26
- BOSSES .put ("Сточный слизень" , new Boss ("Сточный слизень" , getHour (1 ), "/mine 6" ));
27
- BOSSES .put ("Матка" , new Boss ("Матка" , getMinute (90 ), "/mine 10" ));
28
- BOSSES .put ("Йети" , new Boss ("Йети" , getHour (3 ), "/mine 15" ));
29
- BOSSES .put ("Коровка из Коровёнки" , new Boss ("Коровка из Коровёнки" , getHour (3 ), "/mine 13" ));
30
- BOSSES .put ("Левиафан" , new Boss ("Левиафан" , getMinute (150 ), "/village" ));
31
- BOSSES .put ("Небесный владыка" , new Boss ("Небесный владыка" , getHour (5 ), "/mine 23" ));
32
- BOSSES .put ("Хранитель подводного мира" , new Boss ("Хранитель подводного мира" , getHour (5 ), "/mine 18" ));
33
- BOSSES .put ("Холуй" , new Boss ("Холуй" , getMinute (45 ), "/mine 5" ));
34
-
35
- BOSSES .put ("Фенрир" , new Boss ("Фенрир" , getMinute (90 ), "/mine 8" ));
36
- BOSSES .put ("Все Всадники апокалипсиса" , new Boss ("Все Всадники апокалипсиса" , getMinute (150 ), "/mine 9" ));
37
- BOSSES .put ("Житель края" , new Boss ("Житель края" , getHour (4 ), "/mine 21" ));
38
-
39
- //BOSSES.put("Название босса", new Boss("Название босса", *время между убийством и появлением*, "*место, где он спавнится*"));
24
+ BOSSES [0 ] = new Boss ("Королевский зомби" , getMinute (25 ), "/base" , "&7" );
25
+ BOSSES [1 ] = new Boss ("Холуй" , getMinute (45 ), "/mine 5" , "&9" );
26
+ BOSSES [2 ] = new Boss ("Сточный слизень" , getHour (1 ), "/mine 6" , "&a" );
27
+ BOSSES [3 ] = new Boss ("Фенрир" , getMinute (90 ), "/mine 8" , "&c" );
28
+ BOSSES [4 ] = new Boss ("Все Всадники апокалипсиса" , getMinute (150 ), "/mine 9" , "&7" );
29
+ BOSSES [5 ] = new Boss ("Матка" , getMinute (90 ), "/mine 10" , "&2" );
30
+ BOSSES [6 ] = new Boss ("Коровка из Коровёнки" , getHour (3 ), "/mine 13" , "&d" );
31
+ BOSSES [7 ] = new Boss ("Йети" , getHour (3 ), "/mine 15" , "&b" );
32
+ BOSSES [8 ] = new Boss ("Левиафан" , getMinute (150 ), "/village" , "&6" );
33
+ BOSSES [9 ] = new Boss ("Хранитель подводного мира" , getHour (5 ), "/mine 18" , "&3" );
34
+ BOSSES [10 ] = new Boss ("Житель края" , getHour (4 ), "/mine 21" , "&5" );
35
+ BOSSES [11 ] = new Boss ("Небесный владыка" , getHour (5 ), "/mine 23" , "&f" );
40
36
41
37
this .header ();
42
38
this .checkLog ();
@@ -66,12 +62,18 @@ private void header() {
66
62
logger .successMessage ("~ При спавне босса - будет отправлено сообщение в программе и воспроизведен звуковой сигнал" );
67
63
logger .successMessage ("~ Изменить его можно, скопировав любой wav файл рядом с программой и назвав его snd.wav\n " );
68
64
65
+ if (!checkSound ()) logger .errorMessage ("</> Файл со звуком уведомления не найден. Необходимо поместить его рядом с программой, переименовав как snd.wav" );
66
+ }
67
+
68
+ private boolean checkSound (){
69
69
try {
70
70
AudioSystem .getAudioInputStream (new File ("./snd.wav" ));
71
71
sound = true ;
72
+
73
+ return true ;
72
74
}
73
75
catch (Exception e ){
74
- logger . errorMessage ( "</> Файл со звуком уведомления не найден. Поместите его обратно рядом с программой, назвав snd.wav" ) ;
76
+ return false ;
75
77
}
76
78
}
77
79
@@ -88,7 +90,7 @@ public void run() {
88
90
if (Objects .equals (last_line , lastString )) return ;
89
91
lastString = last_line ;
90
92
91
- for (Boss boss : BOSSES . values () ) {
93
+ for (Boss boss : BOSSES ) {
92
94
if (!boss .isKill (last_line )) continue ;
93
95
logger .killedMessage (boss );
94
96
@@ -106,10 +108,6 @@ public void run() {
106
108
Clip clip = AudioSystem .getClip ();
107
109
108
110
clip .open (ais );
109
- /*
110
- FloatControl vc = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
111
- vc.setValue(5);
112
- */
113
111
clip .setFramePosition (0 );
114
112
clip .start ();
115
113
0 commit comments