/[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 1681 - (hide annotations) (download)
Wed Jan 25 22:03:19 2012 UTC (12 years, 4 months ago) by torben
Original Path: miscJava/bukkit-minecraft-plugins/CreativeWorld/src/dk/thoerup/bukkit/creativeworld/WorldChanged.java
File size: 3480 byte(s)
use new bukkit event api
1 torben 1657 package dk.thoerup.bukkit.creativeworld;
2    
3     import org.bukkit.*;
4     import org.bukkit.entity.*;
5 torben 1681 import org.bukkit.event.*;
6 torben 1657 import org.bukkit.event.player.*;
7     import org.bukkit.configuration.*;
8     import org.bukkit.inventory.*;
9    
10 torben 1681 public class WorldChanged implements Listener {
11 torben 1658 final static String STACK_TYPE = ".type";
12     final static String STACK_AMOUNT = ".amount";
13     final static String STACK_DAMAGE = ".damage";
14     final static String STACK_DATA = ".data";
15 torben 1657
16 torben 1658 final static String INVENTORY_CREATIVE = ".inventory.creative.";
17     final static String INVENTORY_CREATIVE_ARMOR = ".inventory.creative.armor.";
18    
19 torben 1657 CreativeMain plugin;
20     public WorldChanged(CreativeMain plugin) {
21     this.plugin = plugin;
22     }
23    
24 torben 1681 @EventHandler
25 torben 1657 public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
26    
27    
28     Player player = event.getPlayer();
29    
30     System.out.println( player.getName() + " : " + event.getFrom().getName() + " -> " + player.getWorld().getName() );
31    
32     Configuration config = plugin.getConfig();
33    
34     if (player.getWorld().getName().equalsIgnoreCase("creative") ) {
35     player.sendMessage(ChatColor.YELLOW + "You are now in creative world - have fun");
36     config.set( player.getName() + ".iscreative", true);
37    
38     PlayerInventory inv = player.getInventory();
39    
40     for (int i=0; i<inv.getSize(); i++) {
41 torben 1658 String node = player.getName() + INVENTORY_CREATIVE + i;;
42 torben 1657 //config.set( node, inv.getItem(i) );
43     saveItemStack(config, node, inv.getItem(i) );
44     }
45    
46     ItemStack armor[] = inv.getArmorContents();
47     for (int i=0; i<armor.length; i++) {
48 torben 1658 String node = player.getName() + INVENTORY_CREATIVE_ARMOR + i;;
49 torben 1657 //config.set( node, armor[i] );
50     saveItemStack(config, node, armor[i] );
51     }
52    
53     plugin.saveConfig();
54    
55     inv.clear();
56    
57     player.setGameMode( GameMode.CREATIVE );
58    
59     } else if (event.getFrom().getName().equalsIgnoreCase("creative") ) {
60     player.sendMessage(ChatColor.YELLOW + "You are now in survival world - watch out !!!");
61     config.set( player.getName() + ".iscreative", false);
62     player.setGameMode( GameMode.SURVIVAL );
63    
64     PlayerInventory inv = player.getInventory();
65     inv.clear();
66    
67     ItemStack items[] = new ItemStack[ inv.getSize() ];
68    
69     for (int i=0; i<inv.getSize(); i++) {
70 torben 1658 String node = player.getName() + INVENTORY_CREATIVE + i;;
71 torben 1657 //items[i] = config.getItemStack(node);
72     items[i] = getItemStack(config, node);
73     }
74    
75    
76    
77     ItemStack armor[] = new ItemStack[ inv.getArmorContents().length];
78     for (int i=0; i<armor.length; i++) {
79 torben 1658 String node = player.getName() + INVENTORY_CREATIVE_ARMOR + i;
80 torben 1657 //armor[i] = config.getItemStack(node);
81     armor[i] = getItemStack(config, node);
82     }
83    
84     inv.setContents( items );
85     inv.setArmorContents( armor );
86     }
87     }
88    
89    
90     public void saveItemStack(Configuration config, String node, ItemStack stack) {
91 torben 1658 config.set(node + STACK_TYPE, stack.getTypeId() );
92     config.set(node + STACK_AMOUNT, stack.getAmount() );
93     config.set(node + STACK_DAMAGE, (int)stack.getDurability() );
94     config.set(node + STACK_DATA, (int)stack.getData().getData() );
95 torben 1657 }
96    
97     public ItemStack getItemStack(Configuration config, String node) {
98 torben 1658 int type = config.getInt( node + STACK_TYPE);
99     int amount = config.getInt( node + STACK_AMOUNT);
100     short damage = (short) config.getInt(node + STACK_DAMAGE);
101     byte data = (byte) config.getInt(node + STACK_DATA);
102 torben 1657
103 torben 1663 ItemStack stack = new ItemStack(type,amount,damage,data);
104     stack.setDurability( damage ); //ItemStack constructor with Data value overrides durability
105     return stack;
106 torben 1657 }
107    
108     }

  ViewVC Help
Powered by ViewVC 1.1.20