1
+ package org .pvpzone .shanko .effecttrails ;
2
+
3
+ import java .util .HashMap ;
4
+ import org .bukkit .command .Command ;
5
+ import org .bukkit .command .CommandSender ;
6
+ import org .bukkit .entity .Player ;
7
+ import org .bukkit .plugin .java .JavaPlugin ;
8
+ import org .pvpzone .shanko .effecttrails .effects .*;
9
+
10
+ /**
11
+ * This is a plugin meant to provide particle trails for players to
12
+ * activate/deactivate. It is meant for an extra cosmetic look for a player
13
+ *
14
+ * @author Jose Rivera
15
+ *
16
+ */
17
+ public final class EffectTrails extends JavaPlugin {
18
+ public static EffectTrails effectTrails ;
19
+ private HashMap <Player , SpecialEffect > players = new HashMap <Player , SpecialEffect >();
20
+
21
+ /**
22
+ * Setup the plugin when it's enabled
23
+ */
24
+ @ Override
25
+ public void onEnable () {
26
+ effectTrails = this ;
27
+
28
+ // register our listener
29
+ getServer ().getPluginManager ().registerEvents (
30
+ new EntityEffectPlayerListener (), this );
31
+
32
+ // repeat this task to continue the effects for each player
33
+ this .getServer ().getScheduler ()
34
+ .scheduleSyncRepeatingTask (this , new Runnable () {
35
+ @ Override
36
+ public void run () {
37
+ for (Player p : players .keySet ()) {
38
+ players .get (p ).playEffect (p .getLocation ());
39
+ }
40
+ }
41
+ }, 30L , 30L );
42
+ }
43
+
44
+ @ Override
45
+ public void onDisable () {
46
+ }
47
+
48
+ /**
49
+ * Handles commands sent to the plugin
50
+ */
51
+ public boolean onCommand (CommandSender sender , Command cmd , String label ,
52
+ String [] args ) {
53
+ if (!(sender instanceof Player )) {
54
+ return false ;
55
+ }
56
+ //Display the help information
57
+ if (cmd .getName ().equalsIgnoreCase ("spark" )) {
58
+ sender .sendMessage ("Effect Trails:\n " + "/smoke\n " + "/fire\n "
59
+ + "/ender\n " + "/aura\n " + "/blood\n " + "/poop\n "
60
+ + "/rumble\n " + "/sparkoff\n " );
61
+ return true ;
62
+ }
63
+ //Turn off a spark
64
+ else if (cmd .getName ().equalsIgnoreCase ("sparkoff" )) {
65
+ if (players .containsKey ((Player ) sender )) {
66
+ players .remove ((Player ) sender );
67
+ }
68
+ sender .sendMessage ("Effect Removed" );
69
+ return true ;
70
+ }
71
+ //Activate fire spark
72
+ else if (cmd .getName ().equalsIgnoreCase ("fire" )) {
73
+ sender .sendMessage ("Fire Effect Activated!" );
74
+ if (players .containsKey (sender )) {
75
+ players .remove (sender );
76
+ }
77
+ players .put ((Player ) sender , new FireEffect ());
78
+ return true ;
79
+ }
80
+ //Activate ender spark
81
+ else if (cmd .getName ().equalsIgnoreCase ("ender" )) {
82
+ sender .sendMessage ("Ender Effect Activated!" );
83
+ if (players .containsKey (sender )) {
84
+ players .remove (sender );
85
+ }
86
+ players .put ((Player ) sender , new EnderEffect ());
87
+ return true ;
88
+ }
89
+ //Activate smoke spark
90
+ else if (cmd .getName ().equalsIgnoreCase ("smoke" )) {
91
+ sender .sendMessage ("Smoke Effect Activated!" );
92
+ if (players .containsKey (sender )) {
93
+ players .remove (sender );
94
+ }
95
+ players .put ((Player ) sender , new SmokeEffect ());
96
+ return true ;
97
+ }
98
+ //Activate blood spark
99
+ else if (cmd .getName ().equalsIgnoreCase ("blood" )) {
100
+ sender .sendMessage ("Blood Effect Activated!" );
101
+ if (players .containsKey (sender )) {
102
+ players .remove (sender );
103
+ }
104
+ players .put ((Player ) sender , new BloodEffect ());
105
+ return true ;
106
+ }
107
+ //Activate aura spark
108
+ else if (cmd .getName ().equalsIgnoreCase ("aura" )) {
109
+ sender .sendMessage ("Aura Effect Activated!" );
110
+ if (players .containsKey (sender )) {
111
+ players .remove (sender );
112
+ }
113
+ players .put ((Player ) sender , new AuraEffect ());
114
+ return true ;
115
+ }
116
+ //Activate poop spark
117
+ else if (cmd .getName ().equalsIgnoreCase ("poop" )) {
118
+ sender .sendMessage ("Poop Effect Activated!" );
119
+ if (players .containsKey (sender )) {
120
+ players .remove (sender );
121
+ }
122
+ players .put ((Player ) sender , new PoopEffect ());
123
+ return true ;
124
+ }
125
+ //Activate rumble spark
126
+ else if (cmd .getName ().equalsIgnoreCase ("rumble" )) {
127
+ sender .sendMessage ("Rumble Effect Activated!" );
128
+ if (players .containsKey (sender )) {
129
+ players .remove (sender );
130
+ }
131
+ players .put ((Player ) sender , new RumbleEffect ());
132
+ return true ;
133
+ }
134
+ return false ;
135
+ }
136
+
137
+ /**
138
+ * Returns the hashmap containing the player and their spark
139
+ * @return
140
+ */
141
+ public HashMap <Player , SpecialEffect > getPlayerMap () {
142
+ return players ;
143
+ }
144
+
145
+ }
0 commit comments