Skip to content

Commit

Permalink
Prep for #3 and completed #5
Browse files Browse the repository at this point in the history
  • Loading branch information
DonoA committed Nov 5, 2014
1 parent 9945dab commit f52ab7b
Show file tree
Hide file tree
Showing 8 changed files with 224 additions and 161 deletions.
54 changes: 25 additions & 29 deletions src/main/java/org/bvsd/manhattanplugin/Commands.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@

package org.bvsd.manhattanplugin;

import java.util.ArrayList;
import org.bvsd.manhattanplugin.HostileZones.HostileZone;
import java.util.Arrays;
import java.util.Random;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Sign;
import org.bukkit.command.Command;
Expand All @@ -22,10 +21,7 @@
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bvsd.manhattanplugin.PlayerSaveStorage.PlayerSaveArmor;
import org.bvsd.manhattanplugin.PlayerSaveStorage.PlayerSaveData;
import org.bvsd.manhattanplugin.PlayerSaveStorage.PlayerSaveItemStack;
import org.bvsd.manhattanplugin.PlayerSaveStorage.PlayerSaveLocation;

/**
*
Expand Down Expand Up @@ -71,19 +67,19 @@ public boolean onCommand(CommandSender cs, Command cmd, String label, String[] a
//DG
if(cmd.getName().equalsIgnoreCase("deathgames") && args.length>0){
if(args[0].equalsIgnoreCase("join")){
if(DBmanager.DGplayers.contains(player.getName())){
if(DeathGame.DGplayers.contains(player.getName())){
player.sendMessage("You are already in the Death Games");
}else{
DBmanager.DGplayers.add(player.getName());
DeathGame.DGplayers.add(player.getName());
player.sendMessage("You are now part of the deathgames");
}
return true;
}else if(args[0].equalsIgnoreCase("leave")){
if(!DBmanager.DGplayers.contains(player.getName())){
if(!DeathGame.DGplayers.contains(player.getName())){
player.sendMessage("You are not in the Death Games");
}else{
if(DBmanager.DGtarget.equalsIgnoreCase(player.getName())){
DBmanager.DGplayers.remove(player.getName());
if(DeathGame.DGtarget.equalsIgnoreCase(player.getName())){
DeathGame.DGplayers.remove(player.getName());
player.sendMessage("You are no longer in the deathgames");
}else{
player.sendMessage("You are the target, you cannot leave untill midnight!");
Expand All @@ -99,37 +95,37 @@ public boolean onCommand(CommandSender cs, Command cmd, String label, String[] a
player.getInventory().addItem(sword);
return true;
}else if(args[0].equalsIgnoreCase("target")&&player.isOp()){
player.sendMessage(DBmanager.DGtarget);
player.sendMessage(DeathGame.DGtarget);
return true;
}else if(args[0].equalsIgnoreCase("reroll")&&player.isOp()){
Bukkit.broadcastMessage("Selecting new DeathGames Target...");
if(Bukkit.getOfflinePlayer(DBmanager.DGtarget).isOnline()){
if(!Bukkit.getPlayer(DBmanager.DGtarget).getLocation().getWorld().getName().equalsIgnoreCase("C-Main")){
Bukkit.getPlayer(DBmanager.DGtarget).getInventory().addItem(new ItemStack(Material.GOLD_INGOT));
if(Bukkit.getOfflinePlayer(DeathGame.DGtarget).isOnline()){
if(!Bukkit.getPlayer(DeathGame.DGtarget).getLocation().getWorld().getName().equalsIgnoreCase("C-Main")){
Bukkit.getPlayer(DeathGame.DGtarget).getInventory().addItem(new ItemStack(Material.GOLD_INGOT));
}else{
if(mms.oldTargets.containsKey(DBmanager.DGtarget)){
mms.oldTargets.put(DBmanager.DGtarget, mms.oldTargets.get(DBmanager.DGtarget)+1);
if(mms.oldTargets.containsKey(DeathGame.DGtarget)){
mms.oldTargets.put(DeathGame.DGtarget, mms.oldTargets.get(DeathGame.DGtarget)+1);
}else{
mms.oldTargets.put(DBmanager.DGtarget, 1);
mms.oldTargets.put(DeathGame.DGtarget, 1);
}
}
}else{
if(mms.oldTargets.containsKey(DBmanager.DGtarget)){
mms.oldTargets.put(DBmanager.DGtarget, mms.oldTargets.get(DBmanager.DGtarget)+1);
if(mms.oldTargets.containsKey(DeathGame.DGtarget)){
mms.oldTargets.put(DeathGame.DGtarget, mms.oldTargets.get(DeathGame.DGtarget)+1);
}else{
mms.oldTargets.put(DBmanager.DGtarget, 1);
mms.oldTargets.put(DeathGame.DGtarget, 1);
}
}
Random gen = new Random();
String ntar = DBmanager.DGplayers.get((int) (gen.nextInt(DBmanager.DGplayers.size())));
while(ntar.equals(DBmanager.DGtarget)&&DBmanager.DGplayers.size()>1){
ntar = DBmanager.DGplayers.get((int) (gen.nextInt(DBmanager.DGplayers.size())));
String ntar = DeathGame.DGplayers.get((int) (gen.nextInt(DeathGame.DGplayers.size())));
while(ntar.equals(DeathGame.DGtarget)&&DeathGame.DGplayers.size()>1){
ntar = DeathGame.DGplayers.get((int) (gen.nextInt(DeathGame.DGplayers.size())));
}
DBmanager.DGtarget = ntar;
DBmanager.DGsign.getBlock().setType(Material.SIGN_POST);
Sign DS = (Sign)DBmanager.DGsign.getBlock().getState();
DeathGame.DGtarget = ntar;
DeathGame.DGsign.getBlock().setType(Material.SIGN_POST);
Sign DS = (Sign)DeathGame.DGsign.getBlock().getState();
DS.setLine(1, ChatColor.AQUA + "Death Games:");
DS.setLine(2, ChatColor.BLUE + DBmanager.DGtarget);
DS.setLine(2, ChatColor.BLUE + DeathGame.DGtarget);
DS.update();

return true;
Expand All @@ -138,15 +134,15 @@ public boolean onCommand(CommandSender cs, Command cmd, String label, String[] a
//WorldJump
if(cmd.getName().equalsIgnoreCase("worldjump")){
PlayerSaveData pd = DBmanager.Playerdats.get(player.getName());
if(player.getLocation().getWorld().getName().equalsIgnoreCase("c-main")){
if(player.getLocation().getWorld().equals(mms.CreativeWorld)){
pd.CreativeSave.Imprint(player);
for(PotionEffect effect : player.getActivePotionEffects()){
player.removePotionEffect(effect.getType());
}
pd.SurvivalSave.SetImprint(player);
return true;
}
if(player.getLocation().getWorld().getName().contains("S-")){
if(player.getLocation().getWorld().getName().contains(mms.SurvivalWorld.getName())){
pd.SurvivalSave.Imprint(player);
pd.CreativeSave.SetImprint(player);
return true;
Expand Down
77 changes: 9 additions & 68 deletions src/main/java/org/bvsd/manhattanplugin/DBmanager.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,19 @@

package org.bvsd.manhattanplugin;

import org.bvsd.manhattanplugin.HostileZones.HostileZone;
import org.bvsd.manhattanplugin.PlayerSaveStorage.PlayerSaveData;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

/**
*
Expand All @@ -35,12 +27,6 @@
public class DBmanager {
public static HashMap<String, PlayerSaveData> Playerdats = new HashMap<>();

public static List<String> DGplayers = new ArrayList<>();

public static String DGtarget = "dallen1393";

public static Location DGsign;

public static List<HostileZone> HZones = new ArrayList<>();

public static File PSF = new File(mms.plugin.getDataFolder() + System.getProperty("file.separator") + "PlayerSaves");
Expand Down Expand Up @@ -111,52 +97,26 @@ public static void LoadPlayers(String pName){
//player load
public static void SaveDG(){
try {
FileWriter fr = new FileWriter(mms.plugin.getDataFolder() + System.getProperty("file.separator")+ "DeathGames.DGdat");
try (PrintWriter writer = new PrintWriter(fr)) {
writer.println("Players:");
for(String s:DGplayers){
writer.println(" - " + s);
}
writer.println("target: " + DGtarget);
//loc
writer.println("SignLoc:");
writer.println(" - Wname: " + DGsign.getWorld().getName());
writer.println(" - X: " + DGsign.getBlockX());
writer.println(" - Y: " + DGsign.getBlockY());
writer.println(" - Z: " + DGsign.getBlockZ());
//DG old targets save:
writer.close();
}
fr.close();
mms.dg = mms.JSon.readValue(new File(mms.plugin.getDataFolder() + System.getProperty("file.separator")+ "DeathGames.DGdat"), DeathGame.class);
} catch (FileNotFoundException ex) {
Logger.getLogger(DBmanager.class.getName()).log(Level.SEVERE, null, ex);
mms.dg = new DeathGame();
} catch (IOException ex) {
System.out.println("IO ERROR");
}
}
public static void LoadDG(){
if(!new File(mms.plugin.getDataFolder() + System.getProperty("file.separator")+ "DeathGames.DGdat").exists()){
DGplayers = new ArrayList<>();
DGtarget = "none";
DGsign = Bukkit.getWorld("S-Main").getSpawnLocation();
DeathGame.DGplayers = new ArrayList<>();
DeathGame.DGtarget = "none";
DeathGame.DGsign = mms.SurvivalWorld.getSpawnLocation();
return;
}else{
try {
RandomAccessFile s = new RandomAccessFile(new File(mms.plugin.getDataFolder() + System.getProperty("file.separator")+ "DeathGames.DGdat"), "rw");
String line = s.readLine();
line = s.readLine();
while(!line.contains("target: ")){
DGplayers.add(line.replace(" - ", ""));
line = s.readLine();
}
DGtarget = line.replace("target: ", "");
line = s.readLine();
DGsign =new Location(Bukkit.getWorld(s.readLine().replace(" - Wname: ", "")), Integer.parseInt(s.readLine().replace(" - X: ", "")), Integer.parseInt(s.readLine().replace(" - Y: ", "")), Integer.parseInt(s.readLine().replace(" - Z: ", "")));
//DG old targets load:
DeathGame dg = mms.JSon.readValue(new File(mms.plugin.getDataFolder() + System.getProperty("file.separator")+ "DeathGames.DGdat"), DeathGame.class);
} catch (FileNotFoundException ex) {
Logger.getLogger(DBmanager.class.getName()).log(Level.SEVERE, null, ex);
Logger.getLogger(DBmanager.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(DBmanager.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("IO ERROR");
}
}
}
Expand Down Expand Up @@ -188,23 +148,4 @@ public static void LoadHZones(){
HZones.add(new HostileZone(loc, rad, diff));
}
}
private static ItemStack mkIs(String name, List<String> lore, Material type, short durab, Map<Enchantment, Integer> ench, int stack, boolean hasMeta){
ItemStack rtn = new ItemStack(type);
if(durab != -1){
rtn.setDurability(durab);
}
rtn.setAmount(stack);
if(hasMeta){
ItemMeta ism = rtn.getItemMeta();
for(Enchantment e : ench.keySet()){
ism.addEnchant(e, ench.get(e), true);
}
if(!name.equalsIgnoreCase("-1")){
ism.setDisplayName(name);
}
ism.setLore(lore);
rtn.setItemMeta(ism);
}
return rtn;
}
}
129 changes: 129 additions & 0 deletions src/main/java/org/bvsd/manhattanplugin/DeathGame.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
/*
* This file is part of ManhattanPlugin.
*
* ManhattanPlugin is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ManhattanPlugin is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with ManhattanPlugin. If not, see <http://www.gnu.org/licenses/>.
*
*
*/

package org.bvsd.manhattanplugin;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Random;
import lombok.Getter;
import lombok.Setter;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Sign;
import org.bukkit.inventory.ItemStack;
import org.bvsd.manhattanplugin.PlayerSaveStorage.PlayerSaveItemStack;

/**
*
* @author Donovan
*/
public class DeathGame {
@Getter @Setter
public static List<String> DGplayers = new ArrayList<>();
@Getter @Setter
public static String DGtarget = "dallen1393";
@Getter @Setter
public static Location DGsign;
@Getter @Setter
public static PlayerSaveItemStack[] Gear;

public DeathGame(ItemStack[] Gear){
Calendar c = Calendar.getInstance();c.add(Calendar.DAY_OF_MONTH, 1);c.set(Calendar.HOUR_OF_DAY, 0);c.set(Calendar.MINUTE, 0);c.set(Calendar.SECOND, 0);c.set(Calendar.MILLISECOND, 0);
long seconds = (c.getTimeInMillis()-System.currentTimeMillis())/1000;
Bukkit.getScheduler().scheduleSyncRepeatingTask(mms.plugin, new Runnable() {
@Override
public void run() {
Bukkit.broadcastMessage("Selecting new DeathGames Target...");
if(Bukkit.getOfflinePlayer(DGtarget).isOnline()){
if(!Bukkit.getPlayer(DGtarget).getLocation().getWorld().getName().equalsIgnoreCase("C-Main")){
Bukkit.getPlayer(DGtarget).getInventory().addItem(new ItemStack(Material.GOLD_INGOT));
}else{
if(mms.oldTargets.containsKey(DGtarget)){
mms.oldTargets.put(DGtarget, mms.oldTargets.get(DGtarget)+1);
}else{
mms.oldTargets.put(DGtarget, 1);
}
}
}else{
if(mms.oldTargets.containsKey(DGtarget)){
mms.oldTargets.put(DGtarget, mms.oldTargets.get(DGtarget)+1);
}else{
mms.oldTargets.put(DGtarget, 1);
}
}
Random gen = new Random();
String ntar = DGplayers.get((int) (gen.nextInt(DGplayers.size())));
while(ntar.equals(DGtarget)&&DGplayers.size()>1){
ntar = DGplayers.get((int) (gen.nextInt(DGplayers.size())));
}
DGtarget = ntar;
DGsign.getBlock().setType(Material.SIGN_POST);
Sign DS = (Sign)DGsign.getBlock().getState();
DS.setLine(1, ChatColor.AQUA + "Death Games:");
DS.setLine(2, ChatColor.BLUE + DGtarget);
DS.update();
}
}, seconds*20, 24 * (60 * 60 * 20));
}
public DeathGame(){
Calendar c = Calendar.getInstance();c.add(Calendar.DAY_OF_MONTH, 1);c.set(Calendar.HOUR_OF_DAY, 0);c.set(Calendar.MINUTE, 0);c.set(Calendar.SECOND, 0);c.set(Calendar.MILLISECOND, 0);
long seconds = (c.getTimeInMillis()-System.currentTimeMillis())/1000;
Bukkit.getScheduler().scheduleSyncRepeatingTask(mms.plugin, new Runnable() {
@Override
public void run() {
Bukkit.broadcastMessage("Selecting new DeathGames Target...");
if(Bukkit.getOfflinePlayer(DGtarget).isOnline()){
if(!Bukkit.getPlayer(DGtarget).getLocation().getWorld().getName().equalsIgnoreCase("C-Main")){
Bukkit.getPlayer(DGtarget).getInventory().addItem(new ItemStack(Material.GOLD_INGOT));
}else{
if(mms.oldTargets.containsKey(DGtarget)){
mms.oldTargets.put(DGtarget, mms.oldTargets.get(DGtarget)+1);
}else{
mms.oldTargets.put(DGtarget, 1);
}
}
}else{
if(mms.oldTargets.containsKey(DGtarget)){
mms.oldTargets.put(DGtarget, mms.oldTargets.get(DGtarget)+1);
}else{
mms.oldTargets.put(DGtarget, 1);
}
}
Random gen = new Random();
String ntar = DGplayers.get((int) (gen.nextInt(DGplayers.size())));
while(ntar.equals(DGtarget)&&DGplayers.size()>1){
ntar = DGplayers.get((int) (gen.nextInt(DGplayers.size())));
}
DGtarget = ntar;
DGsign.getBlock().setType(Material.SIGN_POST);
Sign DS = (Sign)DGsign.getBlock().getState();
DS.setLine(1, ChatColor.AQUA + "Death Games:");
DS.setLine(2, ChatColor.BLUE + DGtarget);
DS.update();
}
}, seconds*20, 24 * (60 * 60 * 20));
}
public static void NewTarget(){

}
}
Loading

0 comments on commit f52ab7b

Please sign in to comment.