MC 1.3.1:
 - Adventure GameMode Inventory (optional)
 - Region Flag for Adventure Inventory
This commit is contained in:
Jascha Starke 2012-08-04 11:23:55 +02:00
parent 50f022e1fb
commit 585aa06fae
7 changed files with 48 additions and 18 deletions

View file

@ -48,6 +48,11 @@ store:
# default: "inventories" # default: "inventories"
folder: "inventories" folder: "inventories"
# SeparateAdventureInventory
# When true, your players get a separate inventory when switching to adventure gamemode (2). Otherwise
# they have the default survival inventory while in adventure gamemode.
adventure: false
limit: limit:
# LimitsEnabled # LimitsEnabled
# Use this option to disable all drop/pvp/etc. preventions while in creative mode. While you also can get this # Use this option to disable all drop/pvp/etc. preventions while in creative mode. While you also can get this

View file

@ -1,6 +1,6 @@
name: LimitedCreative name: LimitedCreative
main: de.jaschastarke.minecraft.limitedcreative.Core main: de.jaschastarke.minecraft.limitedcreative.Core
version: 1.2.5 version: 1.3.0a
softdepend: [WorldGuard, WorldEdit, MultiInv] softdepend: [WorldGuard, WorldEdit, MultiInv]
dev-url: http://dev.bukkit.org/server-mods/limited-creative/ dev-url: http://dev.bukkit.org/server-mods/limited-creative/
commands: commands:

View file

@ -3,7 +3,7 @@
<groupId>de.jaschastarke</groupId> <groupId>de.jaschastarke</groupId>
<artifactId>LimitedCreative</artifactId> <artifactId>LimitedCreative</artifactId>
<name>LimitedCreative</name> <name>LimitedCreative</name>
<version>1.2.5</version> <version>1.3.0a</version>
<url>https://github.com/possi/LimitedCreative</url> <url>https://github.com/possi/LimitedCreative</url>
<scm> <scm>
<connection>scm:git:git://github.com/possi/LimitedCreative.git</connection> <connection>scm:git:git://github.com/possi/LimitedCreative.git</connection>
@ -68,7 +68,7 @@
<dependency> <dependency>
<groupId>org.bukkit</groupId> <groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId> <artifactId>bukkit</artifactId>
<version>1.2.5-R4.0</version> <version>1.3.1-R0.1-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sk89q</groupId> <groupId>com.sk89q</groupId>

View file

@ -43,6 +43,7 @@ public class Configuration {
public enum Option { public enum Option {
STORECREATIVE("store.creative", true), STORECREATIVE("store.creative", true),
CREATIVEARMOR("store.armor.enabled", true), CREATIVEARMOR("store.armor.enabled", true),
ADVENTUREINV("store.adventure", false),
REGION_OPTIONAL("region.optional", true), REGION_OPTIONAL("region.optional", true),
REGION_REMEMBER("region.remember", true), REGION_REMEMBER("region.remember", true),
BLOCKPICKUP("limit.pickup", true), BLOCKPICKUP("limit.pickup", true),
@ -127,6 +128,9 @@ public class Configuration {
public String getInventoryFolder() { public String getInventoryFolder() {
return c.getString("store.folder", "inventories"); return c.getString("store.folder", "inventories");
} }
public boolean getAdventureInv() {
return this.getBoolean(Option.ADVENTUREINV);
}
public boolean getBlockPickupInCreative() { public boolean getBlockPickupInCreative() {
return this.getBoolean(Option.BLOCKPICKUP); return this.getBoolean(Option.BLOCKPICKUP);
} }

View file

@ -35,10 +35,11 @@ public class Inventory {
public enum Target { public enum Target {
SURVIVAL, SURVIVAL,
CREATIVE; CREATIVE,
ADVENTURE;
public static Target getTarget(GameMode gm) { public static Target getTarget(GameMode gm) {
return gm == GameMode.CREATIVE ? Target.CREATIVE : Target.SURVIVAL; return Target.valueOf(gm.name());
} }
} }
@ -60,6 +61,10 @@ public class Inventory {
Core.debug(getPlayer().getName()+": store inventory: "+getPlayer().getGameMode()); Core.debug(getPlayer().getName()+": store inventory: "+getPlayer().getGameMode());
storage.store(this, Target.getTarget(getPlayer().getGameMode())); storage.store(this, Target.getTarget(getPlayer().getGameMode()));
} }
public void save(GameMode gm) {
Core.debug(getPlayer().getName()+": store inventory: "+gm);
storage.store(this, Target.getTarget(gm));
}
public void load() { public void load() {
load(getPlayer().getGameMode()); load(getPlayer().getGameMode());

View file

@ -195,8 +195,17 @@ public class LCPlayer {
if (plugin.config.getPermissionToKeepInventory() && hasPermission(Perms.KEEPINVENTORY)) if (plugin.config.getPermissionToKeepInventory() && hasPermission(Perms.KEEPINVENTORY))
return true; return true;
getPlayer().closeInventory(); getPlayer().closeInventory();
if (gm != GameMode.CREATIVE || plugin.config.getStoreCreative())
getInv().save(); GameMode cgm = getPlayer().getGameMode();
if (gm == GameMode.ADVENTURE && !plugin.config.getAdventureInv())
gm = GameMode.SURVIVAL;
if (cgm == GameMode.ADVENTURE && !plugin.config.getAdventureInv())
cgm = GameMode.SURVIVAL;
if (gm != cgm) {
if (gm != GameMode.CREATIVE || plugin.config.getStoreCreative()) {
getInv().save(cgm);
}
if (gm == GameMode.CREATIVE) { if (gm == GameMode.CREATIVE) {
if (plugin.config.getStoreCreative() && getInv().isStored(GameMode.CREATIVE)) { if (plugin.config.getStoreCreative() && getInv().isStored(GameMode.CREATIVE)) {
getInv().load(GameMode.CREATIVE); getInv().load(GameMode.CREATIVE);
@ -207,8 +216,13 @@ public class LCPlayer {
} else if (gm == GameMode.SURVIVAL) { } else if (gm == GameMode.SURVIVAL) {
if (getInv().isStored(GameMode.SURVIVAL)) if (getInv().isStored(GameMode.SURVIVAL))
getInv().load(GameMode.SURVIVAL); getInv().load(GameMode.SURVIVAL);
} else if (gm == GameMode.ADVENTURE) {
if (getInv().isStored(GameMode.ADVENTURE))
getInv().load(GameMode.ADVENTURE);
else
getInv().clear();
}
} }
} }
return true; return true;
} }

View file

@ -23,6 +23,8 @@ public class GameModeFlag extends Flag<GameMode> {
return GameMode.CREATIVE; return GameMode.CREATIVE;
} else if (input.equalsIgnoreCase("survival")) { } else if (input.equalsIgnoreCase("survival")) {
return GameMode.SURVIVAL; return GameMode.SURVIVAL;
} else if (input.equalsIgnoreCase("adventure")) {
return GameMode.ADVENTURE;
} else if (input.equalsIgnoreCase("none")) { } else if (input.equalsIgnoreCase("none")) {
return null; return null;
} else { } else {