Skip to content

Commit d59544d

Browse files
Dump
1 parent 4774b3a commit d59544d

File tree

102 files changed

+12183
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+12183
-0
lines changed
Lines changed: 309 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,309 @@
1+
package org.hcsoups.hardcore;
2+
3+
import com.mongodb.DB;
4+
import com.mongodb.DBAddress;
5+
import com.mongodb.MongoClient;
6+
import org.bukkit.Bukkit;
7+
import org.bukkit.World;
8+
import org.bukkit.command.CommandSender;
9+
import org.bukkit.entity.Player;
10+
import org.bukkit.plugin.PluginManager;
11+
import org.bukkit.plugin.java.JavaPlugin;
12+
import org.bukkit.scheduler.BukkitRunnable;
13+
import org.hcsoups.hardcore.combattag.CombatTagHandler;
14+
import org.hcsoups.hardcore.command.Register;
15+
import org.hcsoups.hardcore.database.Database;
16+
import org.hcsoups.hardcore.entities.CustomEntityType;
17+
import org.hcsoups.hardcore.listeners.DeathListener;
18+
import org.hcsoups.hardcore.listeners.JoinListener;
19+
import org.hcsoups.hardcore.mobcapture.MobCapture;
20+
import org.hcsoups.hardcore.salvaging.Salvage;
21+
import org.hcsoups.hardcore.scoreboard.DaybreakBoard;
22+
import org.hcsoups.hardcore.scoreboard.ScoreboardHandler;
23+
import org.hcsoups.hardcore.scoreboard.ScoreboardTask;
24+
import org.hcsoups.hardcore.spawn.SpawnCommand;
25+
import org.hcsoups.hardcore.spawn.SpawnManager;
26+
import org.hcsoups.hardcore.stats.StatManager;
27+
import org.hcsoups.hardcore.teams.*;
28+
import org.hcsoups.hardcore.teams.commands.*;
29+
import org.hcsoups.hardcore.teams.listeners.CapListener;
30+
import org.hcsoups.hardcore.teams.listeners.ChatListener;
31+
import org.hcsoups.hardcore.teams.listeners.FriendlyFireListener;
32+
import org.hcsoups.hardcore.tracking.TrackingMethods;
33+
import org.hcsoups.hardcore.utils.Lag;
34+
import org.hcsoups.hardcore.utils.LagCommand;
35+
import org.hcsoups.hardcore.warps.*;
36+
import org.hcsoups.hardcore.xpbottles.XPBottles;
37+
import org.hcsoups.hardcore.zeus.annotations.Command;
38+
import org.hcsoups.hardcore.zeus.registers.bukkit.BukkitRegistrar;
39+
40+
import java.io.File;
41+
import java.net.UnknownHostException;
42+
import java.util.LinkedList;
43+
import java.util.List;
44+
45+
/**
46+
* Created by Ryan on 11/20/2014
47+
* <p/>
48+
* Project: HCSoups
49+
*/
50+
public class Hardcore extends JavaPlugin {
51+
52+
/**
53+
* TODO:
54+
* Add death hologram ✓
55+
* Improve scoreboards. ✓
56+
* Fix combat tag(Part of improving scoreboards) ✓
57+
* Fix tab completion for teams.
58+
* Add tab completing for warps.
59+
*/
60+
public List<TeamSubCommand> tcommands = new LinkedList<TeamSubCommand>();
61+
BukkitRegistrar registrar;
62+
Register register;
63+
File teamsFolder = new File(getDataFolder() + File.separator + "teams" + File.separator);
64+
File warpsFolder = new File(getDataFolder() + File.separator + "warps" + File.separator);
65+
DB db;
66+
Database dbs;
67+
static TeamManager tm;
68+
@Override
69+
public void onEnable() {
70+
System.gc();
71+
super.onEnable();
72+
registrar = new BukkitRegistrar();
73+
register = new Register();
74+
// handler = new ScoreboardHandler();
75+
76+
setupTeamCommands();
77+
try {
78+
db = MongoClient.connect(new DBAddress("localhost", "hardcore"));
79+
dbs = new Database(db);
80+
} catch (UnknownHostException ex) {
81+
ex.printStackTrace();
82+
}
83+
84+
85+
PluginManager manager = Bukkit.getPluginManager();
86+
manager.registerEvents(new FriendlyFireListener(), this);
87+
manager.registerEvents(new ChatListener(), this);
88+
manager.registerEvents(TeamManagerUUID.getInstance(), this);
89+
manager.registerEvents(new CombatTagHandler(), this);
90+
manager.registerEvents(new DeathListener(), this);
91+
manager.registerEvents(new JoinListener(), this);
92+
manager.registerEvents(new MobCapture(), this);
93+
manager.registerEvents(new XPBottles(), this);
94+
manager.registerEvents(new Salvage(), this);
95+
manager.registerEvents(new CapListener(), this);
96+
// manager.registerEvents(new MobLimiter(), this);
97+
manager.registerEvents(WarpManagerUUID.getInstance(), this);
98+
99+
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Lag(), 100L, 1L);
100+
101+
registrar.registerAll(WarpManagerUUID.getInstance());
102+
registrar.registerAll(new SpawnCommand());
103+
registrar.registerAll(this);
104+
try {
105+
register.registerCommand("team", new BaseTeamCommand(this));
106+
register.registerCommand("warp", new WarpCommand());
107+
register.registerCommand("warpas", new WarpAdminCommand());
108+
register.registerCommand("lag", new LagCommand());
109+
} catch (Exception ex) {
110+
ex.printStackTrace();
111+
}
112+
113+
StatManager.getInstance().loadStats();
114+
115+
if (!getDataFolder().exists()) {
116+
getDataFolder().mkdir();
117+
}
118+
119+
120+
121+
122+
CustomEntityType.registerEntities();
123+
XPBottles.createRecipes();
124+
125+
System.out.println("Loading teams into memory...");
126+
TeamManagerUUID.getInstance().loadTeams();
127+
System.out.println("Loading inTeams into memory...");
128+
try {
129+
TeamManagerUUID.getInstance().loadInTeam();
130+
} catch (Exception ex) {
131+
ex.printStackTrace();
132+
}
133+
134+
135+
System.out.println("Loading warps into memory...");
136+
WarpManagerUUID.getInstance().loadWarps();
137+
138+
System.out.println("Loading spawn into memory...");
139+
SpawnManager.getInstance().loadSpawn();
140+
141+
142+
System.out.println("Connected to database!");
143+
System.out.println("\n");
144+
System.out.println("\n");
145+
System.out.println("\n");
146+
System.out.println("Hardcore is ready...");
147+
148+
new ScoreboardTask().runTaskTimer(this, 20L, 20L);
149+
150+
new BukkitRunnable() {
151+
@Override
152+
public void run() {
153+
TeamManagerUUID.getInstance().saveInTeam();
154+
TeamManagerUUID.getInstance().saveTeams();
155+
WarpManagerUUID.getInstance().saveWarps();
156+
SpawnManager.getInstance().saveSpawn();
157+
StatManager.getInstance().saveStats();
158+
159+
if(Bukkit.getPlayer("rbrick") != null) {
160+
Player player = Bukkit.getPlayer("rbrick");
161+
player.sendMessage("§a§m---------------------------------------");
162+
player.sendMessage(" §c§lSaving warps & teams...");
163+
player.sendMessage(" §c§lMay cause lag.");
164+
player.sendMessage("§a§m---------------------------------------");
165+
}
166+
}
167+
}.runTaskTimerAsynchronously(this, 20L, 36000);
168+
//72000 = 30 minutes
169+
//36000
170+
}
171+
172+
@Override
173+
public void onLoad() {
174+
175+
}
176+
177+
void setupTeamCommands() {
178+
tcommands.add(new Create());
179+
tcommands.add(new Info());
180+
tcommands.add(new Join());
181+
tcommands.add(new Chat());
182+
tcommands.add(new SetPassword());
183+
tcommands.add(new Kick());
184+
tcommands.add(new SetFriendlyFire());
185+
tcommands.add(new Leave());
186+
tcommands.add(new Demote());
187+
tcommands.add(new Promote());
188+
tcommands.add(new Rally());
189+
tcommands.add(new SetRally());
190+
tcommands.add(new Hq());
191+
tcommands.add(new SetHq());
192+
tcommands.add(new Roster());
193+
}
194+
195+
@Override
196+
public void onDisable() {
197+
// Just in case
198+
TeamManagerUUID.getInstance().saveInTeam();
199+
TeamManagerUUID.getInstance().saveTeams();
200+
201+
WarpManagerUUID.getInstance().saveWarps();
202+
203+
SpawnManager.getInstance().saveSpawn();
204+
205+
StatManager.getInstance().saveStats();
206+
207+
for (File f : TeamManager.getInstance().getFilesToDelete()) {
208+
if (f.delete()) { //
209+
System.out.println("File deleted!");
210+
}
211+
}
212+
CustomEntityType.unregisterEntities();
213+
db.getMongo().close();
214+
}
215+
216+
@Command(name = "track", usage = "§c/track [Player/All]", minArgs = 1)
217+
public void track(CommandSender sender, String[] args) {
218+
if (!(sender instanceof Player)) {
219+
return;
220+
} else {
221+
Player p = (Player) sender;
222+
223+
if (p.getWorld().getEnvironment().equals(World.Environment.NETHER) || p.getWorld().getEnvironment().equals(World.Environment.THE_END)) {
224+
String env = p.getWorld().getEnvironment().equals(World.Environment.NETHER) ? "the nether." : "the end.";
225+
p.sendMessage("§cTracking is disabled in " + env);
226+
return;
227+
}
228+
229+
TrackingMethods track = new TrackingMethods();
230+
if (args[0].equalsIgnoreCase("all")) {
231+
track.setLoc(p.getLocation().getBlockX(), p.getLocation().getBlockY() - 1, p.getLocation().getBlockZ());
232+
track.TrackAll(p, null);
233+
} else {
234+
Player tracked = Bukkit.getPlayer(args[0]);
235+
if (tracked == null) {
236+
sender.sendMessage("§cCould not find \"" + args[0] + "\"");
237+
} else {
238+
track.setLoc(p.getLocation().getBlockX(), p.getLocation().getBlockY() - 1, p.getLocation().getBlockZ());
239+
track.Track(p, tracked);
240+
}
241+
}
242+
}
243+
}
244+
245+
@Command(name = "sbtoggle", usage = "§c/sbtoggle")
246+
public void toggleBoard(CommandSender sender, String[] args) {
247+
if(sender instanceof Player) {
248+
Player p = (Player) sender;
249+
if(ScoreboardHandler.isHidden(p)) {
250+
DaybreakBoard board = new DaybreakBoard(p);
251+
board.update();
252+
ScoreboardHandler.addBoard(p, board);
253+
ScoreboardHandler.show(p);
254+
p.sendMessage("§eScoreboard: §aVisible");
255+
} else {
256+
ScoreboardHandler.hide(p);
257+
p.sendMessage("§eScoreboard: §cHidden");
258+
}
259+
}
260+
}
261+
262+
@Command(name = "convertwarps", permission = "hardcore.convert")
263+
public void startConversion(final CommandSender sender, String[] args) {
264+
final WarpConverter con = new WarpConverter();
265+
new BukkitRunnable() {
266+
@Override
267+
public void run() {
268+
con.convert(sender);
269+
}
270+
}.runTaskAsynchronously(this);
271+
272+
}
273+
274+
@Command(name = "convertteams", permission = "hardcore.convert")
275+
public void startConversionTeams(final CommandSender sender, String[] args) {
276+
final TeamConverter con = new TeamConverter();
277+
new BukkitRunnable() {
278+
@Override
279+
public void run() {
280+
con.convert();
281+
}
282+
}.runTaskAsynchronously(this);
283+
284+
}
285+
286+
287+
public List<TeamSubCommand> getTcommands() {
288+
return tcommands;
289+
}
290+
291+
292+
public File getTeamsFolder() {
293+
return teamsFolder;
294+
}
295+
296+
public File getWarpsFolder() {
297+
return warpsFolder;
298+
}
299+
300+
public DB getMongo() {
301+
return db;
302+
}
303+
304+
public Database getDbs() {
305+
return dbs;
306+
}
307+
308+
309+
}

0 commit comments

Comments
 (0)