MineClear - Mine Sweeper Game Plugin
A mine sweeper game plugin developed for Nukkit servers, supporting custom game areas, timing functions, and game record saving.
Features
...
Custom mine sweeper game areas
Game timing function
Game record saving
Automatic game reset when player leaves the area
Automatic game reset when player switches maps
Custom mine count setting
Beautiful game interface
MineClear - Mine Sweeper Game Plugin
A mine sweeper game plugin developed for Nukkit servers, supporting custom game areas, timing functions, and game record saving.
Features
...
Custom mine sweeper game areas
Game timing function
Game record saving
Automatic game reset when player leaves the area
Automatic game reset when player switches maps
Custom mine count setting
Beautiful game interface
MineClear - Mine Sweeper Game Plugin
A mine sweeper game plugin developed for Nukkit servers, supporting custom game areas, timing functions, and game record saving.
Features
...
Custom mine sweeper game areas
Game timing function
Game record saving
Automatic game reset when player leaves the area
Automatic game reset when player switches maps
Custom mine count setting
Beautiful game interface
MineClear - Mine Sweeper Game Plugin
A mine sweeper game plugin developed for Nukkit servers, supporting custom game areas, timing functions, and game record saving.
Features
...
Custom mine sweeper game areas
Game timing function
Game record saving
Automatic game reset when player leaves the area
Automatic game reset when player switches maps
Custom mine count setting
Beautiful game interface
Fake Inventories
Easily create fake inventories that players can interact with.
Download
Usage
1. Add Dependency in plugin.yml
depend: - FakeInventories2. Get Service
public void onEnable() { RegisteredServiceProvider<FakeInventories> provider = getServer().getServiceManager().getProvider(FakeInventories.class); if (provider == null || provider.getProvider() == null) {...
Easily create fake inventories that players can interact with.
depend:
- FakeInventories
public void onEnable() {
RegisteredServiceProvider<FakeInventories> provider =
getServer().getServiceManager().getProvider(FakeInventories.class);
if (provider == null || provider.getProvider() == null) {
getLogger().error("FakeInventories not found!");
getServer().getPluginManager().disablePlugin(this);
return;
}
FakeInventories fakeInventories = provider.getProvider();
}
Single Chest (27 slots):
ChestFakeInventory inventory = new ChestFakeInventory();
// or with custom title
ChestFakeInventory inventory = new ChestFakeInventory(null, "Custom Title");
Double Chest (54 slots):
DoubleChestFakeInventory inventory = new DoubleChestFakeInventory();
// or with custom title
DoubleChestFakeInventory inventory = new DoubleChestFakeInventory(null, "Custom Title");
Hopper (5 slots):
HopperFakeInventory inventory = new HopperFakeInventory();
// or with custom title
HopperFakeInventory inventory = new HopperFakeInventory(null, "Custom Title");
inventory.setItem(0, Item.get(Item.DIAMOND));
inventory.setItem(1, Item.get(Item.GOLD_INGOT, 0, 64));
inventory.addListener(event -> {
Player player = event.getPlayer();
SlotChangeAction action = event.getAction();
int slot = action.getSlot();
Item sourceItem = action.getSourceItem(); // item before change
Item targetItem = action.getTargetItem(); // item after change
// Cancel the action (prevent item modification)
event.setCancelled();
// Handle click logic
player.sendMessage("You clicked slot " + slot);
});
player.addWindow(inventory);
public class MyPlugin extends PluginBase {
public void openMenu(Player player) {
ChestFakeInventory menu = new ChestFakeInventory(null, "My Menu");
// Set menu items
menu.setItem(0, Item.get(Item.DIAMOND).setCustomName("Option 1"));
menu.setItem(1, Item.get(Item.EMERALD).setCustomName("Option 2"));
menu.setItem(2, Item.get(Item.GOLD_INGOT).setCustomName("Option 3"));
// Handle clicks
menu.addListener(event -> {
event.setCancelled(); // Prevent taking items
Player p = event.getPlayer();
int slot = event.getAction().getSlot();
switch (slot) {
case 0:
p.sendMessage("Selected Option 1");
break;
case 1:
p.sendMessage("Selected Option 2");
break;
case 2:
p.sendMessage("Selected Option 3");
break;
}
p.removeWindow(event.getInventory()); // Close menu
});
player.addWindow(menu);
}
}
<repositories>
<repository>
<id>repo-lanink-cn</id>
<url>https://repo.lanink.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.nukkitx</groupId>
<artifactId>fakeinventories</artifactId>
<version>1.0.3-MOT-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
1.1.0
注意事项
- 从版本
1.0.1配置文件的自动更新不会受到配置文件的控制,配置文件如果有新的内容将会自动执行更新- 从版本
1.0.1起会对配置文件的版本号有异常的配置文件进行重置,在重置时会对旧配置文件进行备份- 不要随意修改配置文件的版本号,否则配置文件的更新机制所带来的后果需要自负
- 建议备份好已经配置好的配置文件,以便在配置文件自动更新时出现问题可以及时恢复
更新内容
- 删除代码中无用的参数 < ea296d7c >
- 调整并精简部分代码 <...