/[projects]/miscJava/bukkit-minecraft-plugins/CreativeWorld/src/dk/thoerup/bukkit/creativeworld/WorldChanged.java
ViewVC logotype

Contents of /miscJava/bukkit-minecraft-plugins/CreativeWorld/src/dk/thoerup/bukkit/creativeworld/WorldChanged.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1657 - (show annotations) (download)
Sat Dec 10 19:33:19 2011 UTC (12 years, 5 months ago) by torben
File size: 2996 byte(s)
Import creative world


1 package dk.thoerup.bukkit.creativeworld;
2
3 import org.bukkit.*;
4 import org.bukkit.entity.*;
5 import org.bukkit.event.player.*;
6 import org.bukkit.configuration.*;
7 import org.bukkit.inventory.*;
8
9 public class WorldChanged extends PlayerListener {
10
11 CreativeMain plugin;
12 public WorldChanged(CreativeMain plugin) {
13 this.plugin = plugin;
14 }
15
16 @Override
17 public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
18
19
20 Player player = event.getPlayer();
21
22 System.out.println( player.getName() + " : " + event.getFrom().getName() + " -> " + player.getWorld().getName() );
23
24 Configuration config = plugin.getConfig();
25
26 if (player.getWorld().getName().equalsIgnoreCase("creative") ) {
27 player.sendMessage(ChatColor.YELLOW + "You are now in creative world - have fun");
28 config.set( player.getName() + ".iscreative", true);
29
30 PlayerInventory inv = player.getInventory();
31
32 for (int i=0; i<inv.getSize(); i++) {
33 String node = player.getName() + ".inventory.creative." + i;;
34 //config.set( node, inv.getItem(i) );
35 saveItemStack(config, node, inv.getItem(i) );
36 }
37
38 ItemStack armor[] = inv.getArmorContents();
39 for (int i=0; i<armor.length; i++) {
40 String node = player.getName() + ".inventory.creative.armor." + i;;
41 //config.set( node, armor[i] );
42 saveItemStack(config, node, armor[i] );
43 }
44
45 plugin.saveConfig();
46
47 inv.clear();
48
49 player.setGameMode( GameMode.CREATIVE );
50
51 } else if (event.getFrom().getName().equalsIgnoreCase("creative") ) {
52 player.sendMessage(ChatColor.YELLOW + "You are now in survival world - watch out !!!");
53 config.set( player.getName() + ".iscreative", false);
54 player.setGameMode( GameMode.SURVIVAL );
55
56 PlayerInventory inv = player.getInventory();
57 inv.clear();
58
59 ItemStack items[] = new ItemStack[ inv.getSize() ];
60
61 for (int i=0; i<inv.getSize(); i++) {
62 String node = player.getName() + ".inventory.creative." + i;;
63 //items[i] = config.getItemStack(node);
64 items[i] = getItemStack(config, node);
65 }
66
67
68
69 ItemStack armor[] = new ItemStack[ inv.getArmorContents().length];
70 for (int i=0; i<armor.length; i++) {
71 String node = player.getName() + ".inventory.creative.armor." + i;
72 //armor[i] = config.getItemStack(node);
73 armor[i] = getItemStack(config, node);
74 }
75
76 inv.setContents( items );
77 inv.setArmorContents( armor );
78 }
79 }
80
81
82 public void saveItemStack(Configuration config, String node, ItemStack stack) {
83 config.set(node + ".type", stack.getTypeId() );
84 config.set(node + ".amount", stack.getAmount() );
85 config.set(node + ".damage", (int)stack.getDurability() );
86 config.set(node + ".data", (int)stack.getData().getData() );
87 }
88
89 public ItemStack getItemStack(Configuration config, String node) {
90 int type = config.getInt( node + ".type");
91 int amount = config.getInt( node + ".amount");
92 short damage = (short) config.getInt(node + ".damage");
93 byte data = (byte) config.getInt(node + ".data");
94
95 return new ItemStack(type,amount,damage,data);
96 }
97
98 }

  ViewVC Help
Powered by ViewVC 1.1.20