Migration to Maven, removing buggy code
In preparation for using sk89q's command framework
This commit is contained in:
parent
70a94aa4b1
commit
b490df861e
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/target/
|
12
README.md
12
README.md
@ -3,8 +3,18 @@ DiscoSheep
|
|||||||
|
|
||||||
A plugin for [Bukkit](http://bukkit.org/), the Minecraft server API. This is a from-scratch remake of the fabulous [DiscoSheep plugin](http://forums.bukkit.org/threads/inactive-fun-discosheep-v0-3-uninvited-guesssts-permissions-and-source-code-522.7106/) which spawns a dance party of sheep at your whim.
|
A plugin for [Bukkit](http://bukkit.org/), the Minecraft server API. This is a from-scratch remake of the fabulous [DiscoSheep plugin](http://forums.bukkit.org/threads/inactive-fun-discosheep-v0-3-uninvited-guesssts-permissions-and-source-code-522.7106/) which spawns a dance party of sheep at your whim.
|
||||||
|
|
||||||
|
###DiscoFix###
|
||||||
|
An attempt to fix up DiscoSheep. No new big features. A short (non-binding) todo list:
|
||||||
|
* fix NPE for guests
|
||||||
|
* refactor command handling (use sk89q's framework)
|
||||||
|
* fix wifi, bluetooth, GPS (wipe dalvik x333)
|
||||||
|
* you tell me
|
||||||
|
|
||||||
|
##A note on UUIDs##
|
||||||
|
DiscoSheep doesn't store anything after a party and getPlayer(name), and disco-party-on-join is handled by a permissions plugin. Thus, we don't need to worry about the migration to UUIDs.
|
||||||
|
|
||||||
###Versions###
|
###Versions###
|
||||||
Tested up to CraftBukkit build 2918 (RB for 1.6.4 R2.0); can be built with Java 6.
|
Tested up to CraftBukkit build 2918 (RB for 1.6.4 R2.0); can be built with Java 7.
|
||||||
|
|
||||||
###[BukkitDev](http://dev.bukkit.org/bukkit-plugins/superdiscosheep/)###
|
###[BukkitDev](http://dev.bukkit.org/bukkit-plugins/superdiscosheep/)###
|
||||||
|
|
||||||
|
52
pom.xml
Normal file
52
pom.xml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>ca.gibstick</groupId>
|
||||||
|
<artifactId>DiscoSheep</artifactId>
|
||||||
|
<version>1.1.2</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>bukkit-repo</id>
|
||||||
|
<url>http://repo.bukkit.org/content/groups/public/</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bukkit</groupId>
|
||||||
|
<artifactId>bukkit</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
<version>1.7.9-R0.2</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<finalName>DiscoSheep</finalName>
|
||||||
|
<sourceDirectory>src/main/java</sourceDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<targetPath>.</targetPath>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
<directory>src/main/resources/</directory>
|
||||||
|
<includes>
|
||||||
|
<include>plugin.yml</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.1</version>
|
||||||
|
<configuration>
|
||||||
|
<compilerArgs>
|
||||||
|
<arg>-Xlint:deprecation</arg>
|
||||||
|
</compilerArgs>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<maven.compiler.source>1.7</maven.compiler.source>
|
||||||
|
<maven.compiler.target>1.7</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
</project>
|
@ -276,7 +276,7 @@ public class DiscoParty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
loc = player.getLocation();
|
loc = player.getLocation();
|
||||||
this.spawnFloor(world, new Location(world, loc.getBlockX(), loc.getBlockY() - 1, loc.getBlockZ()));
|
//this.spawnFloor(world, new Location(world, loc.getBlockX(), loc.getBlockY() - 1, loc.getBlockZ()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void spawnSheep(World world, Location loc) {
|
void spawnSheep(World world, Location loc) {
|
||||||
@ -428,9 +428,9 @@ public class DiscoParty {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Block block : this.floorBlocks) {
|
/* for (Block block : this.floorBlocks) {
|
||||||
this.randomizeFloor(block);
|
this.randomizeFloor(block);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -25,7 +25,7 @@ public final class DiscoSheep extends JavaPlugin {
|
|||||||
static final String PERMISSION_SPAWNGUESTS = "discosheep.party.spawnguests";
|
static final String PERMISSION_SPAWNGUESTS = "discosheep.party.spawnguests";
|
||||||
static final String PERMISSION_TOGGLEPARTYONJOIN = "discosheep.admin.toggleonjoin";
|
static final String PERMISSION_TOGGLEPARTYONJOIN = "discosheep.admin.toggleonjoin";
|
||||||
static final String PERMISSION_LIGHTNING = "discosheep.party.lightning";
|
static final String PERMISSION_LIGHTNING = "discosheep.party.lightning";
|
||||||
static boolean partyOnJoin = true;
|
static boolean partyOnJoin = false;
|
||||||
Map<String, DiscoParty> parties = new HashMap<String, DiscoParty>();
|
Map<String, DiscoParty> parties = new HashMap<String, DiscoParty>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -48,22 +48,21 @@ public final class DiscoSheep extends JavaPlugin {
|
|||||||
* Iterate through all live entities and create default configuration values for them
|
* Iterate through all live entities and create default configuration values for them
|
||||||
* excludes bosses and other mobs that throw NPE
|
* excludes bosses and other mobs that throw NPE
|
||||||
*/
|
*/
|
||||||
for (EntityType ent : EntityType.values()) {
|
/* for (EntityType ent : EntityType.values()) {
|
||||||
if (ent.isAlive()
|
if (ent.isAlive()
|
||||||
&& !ent.equals(EntityType.ENDER_DRAGON)
|
&& !ent.equals(EntityType.ENDER_DRAGON)
|
||||||
&& !ent.equals(EntityType.WITHER)
|
&& !ent.equals(EntityType.WITHER)
|
||||||
&& !ent.equals(EntityType.PIG_ZOMBIE)
|
&& !ent.equals(EntityType.PIG_ZOMBIE)
|
||||||
&& !ent.equals(EntityType.OCELOT)
|
&& !ent.equals(EntityType.OCELOT)
|
||||||
&& !ent.equals(EntityType.CAVE_SPIDER)
|
&& !ent.equals(EntityType.CAVE_SPIDER)
|
||||||
&& !ent.equals(EntityType.MAGMA_CUBE)
|
&& !ent.equals(EntityType.MAGMA_CUBE)
|
||||||
&& !ent.equals(EntityType.MUSHROOM_COW)
|
&& !ent.equals(EntityType.MUSHROOM_COW)
|
||||||
&& !ent.equals(EntityType.IRON_GOLEM)
|
&& !ent.equals(EntityType.IRON_GOLEM)
|
||||||
&& !ent.equals(EntityType.PLAYER)) {
|
&& !ent.equals(EntityType.PLAYER)) {
|
||||||
getConfig().addDefault("default.guests." + ent.toString(), 0);
|
getConfig().addDefault("default.guests." + ent.toString(), 0);
|
||||||
getConfig().addDefault("max.guests." + ent.toString(), 0);
|
getConfig().addDefault("max.guests." + ent.toString(), 0);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
loadConfigFromDisk();
|
loadConfigFromDisk();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,13 +81,13 @@ public final class DiscoSheep extends JavaPlugin {
|
|||||||
DiscoParty.defaultDuration = toTicks(getConfig().getInt("default.duration"));
|
DiscoParty.defaultDuration = toTicks(getConfig().getInt("default.duration"));
|
||||||
DiscoParty.defaultPeriod = getConfig().getInt("default.period-ticks");
|
DiscoParty.defaultPeriod = getConfig().getInt("default.period-ticks");
|
||||||
|
|
||||||
for (String key : getConfig().getConfigurationSection("default.guests").getKeys(false)) {
|
/* for (String key : getConfig().getConfigurationSection("default.guests").getKeys(false)) {
|
||||||
DiscoParty.getDefaultGuestNumbers().put(key, getConfig().getInt("default.guests." + key));
|
DiscoParty.getDefaultGuestNumbers().put(key, getConfig().getInt("default.guests." + key));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String key : getConfig().getConfigurationSection("max.guests").getKeys(false)) {
|
for (String key : getConfig().getConfigurationSection("max.guests").getKeys(false)) {
|
||||||
DiscoParty.getMaxGuestNumbers().put(key, getConfig().getInt("max.guests." + key));
|
DiscoParty.getMaxGuestNumbers().put(key, getConfig().getInt("max.guests." + key));
|
||||||
}
|
}*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,9 +103,9 @@ public final class DiscoSheep extends JavaPlugin {
|
|||||||
getConfig().set("default.duration", toSeconds_i(DiscoParty.defaultDuration));
|
getConfig().set("default.duration", toSeconds_i(DiscoParty.defaultDuration));
|
||||||
getConfig().set("default.period-ticks", DiscoParty.defaultPeriod);
|
getConfig().set("default.period-ticks", DiscoParty.defaultPeriod);
|
||||||
|
|
||||||
for (Map.Entry<String, Integer> entry : DiscoParty.getDefaultGuestNumbers().entrySet()) {
|
/* for (Map.Entry<String, Integer> entry : DiscoParty.getDefaultGuestNumbers().entrySet()) {
|
||||||
getConfig().set("default.guests." + entry.getKey(), entry.getValue());
|
getConfig().set("default.guests." + entry.getKey(), entry.getValue());
|
||||||
}
|
}*/
|
||||||
|
|
||||||
saveConfig();
|
saveConfig();
|
||||||
}
|
}
|
||||||
@ -176,8 +175,8 @@ public final class DiscoSheep extends JavaPlugin {
|
|||||||
+ "-t <integer>: set the party duration in seconds\n"
|
+ "-t <integer>: set the party duration in seconds\n"
|
||||||
+ "-p <ticks>: set the number of ticks between each disco beat\n"
|
+ "-p <ticks>: set the number of ticks between each disco beat\n"
|
||||||
+ "-r <integer>: set radius of the area in which sheep can spawn\n"
|
+ "-r <integer>: set radius of the area in which sheep can spawn\n"
|
||||||
+ "-g <mob> <number>: set spawns for other mobs"
|
//+ "-g <mob> <number>: set spawns for other mobs\n"
|
||||||
+ "-l: enables lightning"
|
+ "-l: enables lightning\n"
|
||||||
+ "-fw: enables fireworks");
|
+ "-fw: enables fireworks");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -219,7 +218,10 @@ public final class DiscoSheep extends JavaPlugin {
|
|||||||
return noPermsMessage(sender, PERMISSION_RELOAD);
|
return noPermsMessage(sender, PERMISSION_RELOAD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings( "deprecation" )
|
||||||
|
// UUIDs not necessary since DiscoSheep only lasts for one session at most
|
||||||
|
// and permissions will handle onJoin DiscoSheep
|
||||||
boolean partyOtherCommand(String[] players, CommandSender sender, DiscoParty party) {
|
boolean partyOtherCommand(String[] players, CommandSender sender, DiscoParty party) {
|
||||||
if (sender.hasPermission(PERMISSION_OTHER)) {
|
if (sender.hasPermission(PERMISSION_OTHER)) {
|
||||||
Player p;
|
Player p;
|
@ -9,7 +9,7 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
public class DiscoSheepCommandExecutor implements CommandExecutor {
|
public class DiscoSheepCommandExecutor implements CommandExecutor {
|
||||||
|
|
||||||
private DiscoSheep parent;
|
private final DiscoSheep parent;
|
||||||
|
|
||||||
public DiscoSheepCommandExecutor(DiscoSheep parent) {
|
public DiscoSheepCommandExecutor(DiscoSheep parent) {
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
@ -147,26 +147,26 @@ public class DiscoSheepCommandExecutor implements CommandExecutor {
|
|||||||
+ DiscoParty.maxPeriod + "]");
|
+ DiscoParty.maxPeriod + "]");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else if (args[i].equalsIgnoreCase("-g")) {
|
// } else if (args[i].equalsIgnoreCase("-g")) {
|
||||||
if (!sender.hasPermission(DiscoSheep.PERMISSION_SPAWNGUESTS)) {
|
// if (!sender.hasPermission(DiscoSheep.PERMISSION_SPAWNGUESTS)) {
|
||||||
return parent.noPermsMessage(sender, DiscoSheep.PERMISSION_SPAWNGUESTS);
|
// return parent.noPermsMessage(sender, DiscoSheep.PERMISSION_SPAWNGUESTS);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (parseNextArg(args, i, "none")) {
|
// if (parseNextArg(args, i, "none")) {
|
||||||
return parent.clearGuests(mainParty);
|
// return parent.clearGuests(mainParty);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
String[] guests = getNextArgs(args, i + 1);
|
// String[] guests = getNextArgs(args, i + 1);
|
||||||
int j = 0;
|
// int j = 0;
|
||||||
while (j < guests.length - 1) {
|
// while (j < guests.length - 1) {
|
||||||
try {
|
// try {
|
||||||
mainParty.setGuestNumber(guests[j], getNextIntArg(guests, j));
|
// mainParty.setGuestNumber(guests[j], getNextIntArg(guests, j));
|
||||||
} catch (IllegalArgumentException e) {
|
// } catch (IllegalArgumentException e) {
|
||||||
sender.sendMessage(ChatColor.RED + "Invalid arguments: " + ChatColor.WHITE + guests[j] + ", " + guests[j + 1]
|
// sender.sendMessage(ChatColor.RED + "Invalid arguments: " + ChatColor.WHITE + guests[j] + ", " + guests[j + 1]
|
||||||
+ ".\nEither a name typo or a number that is not within limits.");
|
// + ".\nEither a name typo or a number that is not within limits.");
|
||||||
}
|
// }
|
||||||
j += 2; // skip over two arguments, since they come in pairs of entity-number
|
// j += 2; // skip over two arguments, since they come in pairs of entity-number
|
||||||
}
|
// }
|
||||||
} else if (args[i].equalsIgnoreCase("-l")) {
|
} else if (args[i].equalsIgnoreCase("-l")) {
|
||||||
if (!sender.hasPermission(DiscoSheep.PERMISSION_LIGHTNING)) {
|
if (!sender.hasPermission(DiscoSheep.PERMISSION_LIGHTNING)) {
|
||||||
return parent.noPermsMessage(sender, DiscoSheep.PERMISSION_LIGHTNING);
|
return parent.noPermsMessage(sender, DiscoSheep.PERMISSION_LIGHTNING);
|
93
src/main/resources/plugin.yml
Normal file
93
src/main/resources/plugin.yml
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
name: DiscoSheep
|
||||||
|
main: ca.gibstick.discosheep.DiscoSheep
|
||||||
|
authors: [Gibstick, RangerMauve]
|
||||||
|
version: 1.1.1
|
||||||
|
commands:
|
||||||
|
ds:
|
||||||
|
description: "Main DiscoSheep command"
|
||||||
|
usage: |
|
||||||
|
<command> <subcommand> [arguments]
|
||||||
|
Use /ds help for more information
|
||||||
|
To stop your party, use /ds stop.
|
||||||
|
permissions:
|
||||||
|
# If default is set to false, console will not have permission!
|
||||||
|
discosheep.*:
|
||||||
|
description: Permission node for all DiscoSheep commands
|
||||||
|
default: op
|
||||||
|
children:
|
||||||
|
discosheep.party: true
|
||||||
|
discosheep.admin: true
|
||||||
|
discosheep.party.*:
|
||||||
|
description: All permissions related to parties
|
||||||
|
defualt: op
|
||||||
|
children:
|
||||||
|
discosheep.party.me: true
|
||||||
|
discosheep.party.all: true
|
||||||
|
discosheep.party.fireworks: true
|
||||||
|
discosheep.party.other: true
|
||||||
|
discosheep.party.changeperiod: true
|
||||||
|
discosheep.party.spawnguests: true
|
||||||
|
discosheep.party.lightning: true
|
||||||
|
discosheep.admin.*:
|
||||||
|
description: Suggested permissions for administrators
|
||||||
|
default: op
|
||||||
|
children:
|
||||||
|
discosheep.admin.stopall: true
|
||||||
|
discosheep.admin.reload: true
|
||||||
|
discosheep.admin.changedefaults: true
|
||||||
|
discosheep.admin.saveconfig: true
|
||||||
|
discosheep.admin.toggleonjoin: true
|
||||||
|
discosheep.party.me:
|
||||||
|
description: Allows a player to have a party of one
|
||||||
|
default: op
|
||||||
|
discosheep.party.all:
|
||||||
|
description: Allows a player to call a server-wide party
|
||||||
|
default: op
|
||||||
|
discosheep.admin.stopall:
|
||||||
|
description: Allows a player to stop all parties on the server
|
||||||
|
default: op
|
||||||
|
discosheep.party.fireworks:
|
||||||
|
description: Allows a player to enable have parties with fireworks
|
||||||
|
default: op
|
||||||
|
discosheep.admin.reload:
|
||||||
|
description: Allows a player to reload settings from config.yml
|
||||||
|
default: op
|
||||||
|
discosheep.party.other:
|
||||||
|
description: Allows a player to call parties for other people, including themselves.
|
||||||
|
default: op
|
||||||
|
children:
|
||||||
|
discosheep.party.me: true
|
||||||
|
discosheep.party.changeperiod:
|
||||||
|
description: Allows a player to use the -p switch
|
||||||
|
default: op
|
||||||
|
discosheep.admin.changedefaults:
|
||||||
|
description: Allows a player to change the default settings
|
||||||
|
default: op
|
||||||
|
discosheep.admin.saveconfig:
|
||||||
|
description: Allows a player to save the config with current values set in memory
|
||||||
|
default: op
|
||||||
|
discosheep.party.onjoin:
|
||||||
|
description: Gives a player a disco party on join
|
||||||
|
default: false
|
||||||
|
discosheep.party.spawnguests:
|
||||||
|
description: Allow a player to spawn other mobs
|
||||||
|
default: op
|
||||||
|
discosheep.admin.toggleonjoin:
|
||||||
|
description: Allow a player to toggle party-on-join functionality (force disable)
|
||||||
|
default: op
|
||||||
|
discosheep.party.lightning:
|
||||||
|
description: Allow a player to use lightning for parties
|
||||||
|
default: op
|
||||||
|
# FOR BACKWARDS COMPAT FROM 1.1 TO 1.1.1
|
||||||
|
discosheep.party:
|
||||||
|
children:
|
||||||
|
discosheep.party.me: true
|
||||||
|
discosheep.partyall:
|
||||||
|
children:
|
||||||
|
discosheep.party.all: true
|
||||||
|
discosheep.reload:
|
||||||
|
children:
|
||||||
|
discoshep.admin.reload: true
|
||||||
|
discosheep.stopall:
|
||||||
|
children:
|
||||||
|
discosheep.admin.stopall: true
|
Loading…
Reference in New Issue
Block a user