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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1657 - (hide annotations) (download)
Sat Dec 10 19:33:19 2011 UTC (12 years, 5 months ago) by torben
Original Path: miscJava/bukkit-minecraft-plugins/CreativeWorld/src/dk/thoerup/bukkit/creativeworld/WorldChanged.java
File size: 2996 byte(s)
Import creative world


1 torben 1657 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