|
43 | 43 | import com.laytonsmith.abstraction.events.MCPlayerQuitEvent;
|
44 | 44 | import com.laytonsmith.abstraction.events.MCPlayerResourcePackEvent;
|
45 | 45 | import com.laytonsmith.abstraction.events.MCPlayerRespawnEvent;
|
| 46 | +import com.laytonsmith.abstraction.events.MCPlayerStopUsingItemEvent; |
46 | 47 | import com.laytonsmith.abstraction.events.MCPlayerTeleportEvent;
|
47 | 48 | import com.laytonsmith.abstraction.events.MCPlayerToggleFlightEvent;
|
48 | 49 | import com.laytonsmith.abstraction.events.MCPlayerToggleSneakEvent;
|
@@ -2958,4 +2959,69 @@ public BindableEvent convert(CArray manualObject, Target t) {
|
2958 | 2959 | return null;
|
2959 | 2960 | }
|
2960 | 2961 | }
|
| 2962 | + |
| 2963 | + @api |
| 2964 | + public static class player_stop_using_item extends AbstractEvent { |
| 2965 | + |
| 2966 | + @Override |
| 2967 | + public String getName() { |
| 2968 | + return "player_stop_using_item"; |
| 2969 | + } |
| 2970 | + |
| 2971 | + @Override |
| 2972 | + public Driver driver() { |
| 2973 | + return Driver.PLAYER_STOP_USING_ITEM; |
| 2974 | + } |
| 2975 | + |
| 2976 | + @Override |
| 2977 | + public String docs() { |
| 2978 | + return "{}" |
| 2979 | + + " Fires when a player stops using an item, such as shields, bows, crossbows, tridents, brushes," |
| 2980 | + + " goat horns, or spyglasses. Edible items will also fire this if the player stops consuming" |
| 2981 | + + " before completion. This event cannot be cancelled and is only available on Paper 1.18.2+." |
| 2982 | + + " {player | item: The item that was used. | ticks: The number of ticks the item was used.)}" |
| 2983 | + + " {}" |
| 2984 | + + " {}"; |
| 2985 | + } |
| 2986 | + |
| 2987 | + @Override |
| 2988 | + protected PrefilterBuilder getPrefilterBuilder() { |
| 2989 | + return new PrefilterBuilder<MCPlayerStopUsingItemEvent>() |
| 2990 | + .set("player", "The player that was using the item.", new PlayerPrefilterMatcher<>()) |
| 2991 | + .set("itemname", "The item type being used", new ItemStackPrefilterMatcher<>() { |
| 2992 | + @Override |
| 2993 | + protected MCItemStack getItemStack(MCPlayerStopUsingItemEvent event) { |
| 2994 | + return event.getItem(); |
| 2995 | + } |
| 2996 | + }); |
| 2997 | + } |
| 2998 | + |
| 2999 | + @Override |
| 3000 | + public Map<String, Mixed> evaluate(BindableEvent event) throws EventException { |
| 3001 | + if(event instanceof MCPlayerStopUsingItemEvent e) { |
| 3002 | + Map<String, Mixed> map = new HashMap<>(); |
| 3003 | + map.put("player", new CString(e.getPlayer().getName(), Target.UNKNOWN)); |
| 3004 | + map.put("item", ObjectGenerator.GetGenerator().item(e.getItem(), Target.UNKNOWN)); |
| 3005 | + map.put("ticks", new CInt(e.getTicksHeldFor(), Target.UNKNOWN)); |
| 3006 | + return map; |
| 3007 | + } else { |
| 3008 | + throw new EventException("Event received was not an MCPlayerStopUsingItemEvent."); |
| 3009 | + } |
| 3010 | + } |
| 3011 | + |
| 3012 | + @Override |
| 3013 | + public boolean modifyEvent(String key, Mixed value, BindableEvent event) { |
| 3014 | + return false; |
| 3015 | + } |
| 3016 | + |
| 3017 | + @Override |
| 3018 | + public MSVersion since() { |
| 3019 | + return MSVersion.V3_3_5; |
| 3020 | + } |
| 3021 | + |
| 3022 | + @Override |
| 3023 | + public BindableEvent convert(CArray manualObject, Target t) { |
| 3024 | + return null; |
| 3025 | + } |
| 3026 | + } |
2961 | 3027 | }
|
0 commit comments