Skip to content

Commit

Permalink
mimic: Add RPGInventoryItemsRegistry
Browse files Browse the repository at this point in the history
  • Loading branch information
osipxd committed Feb 14, 2021
1 parent f2faf7d commit 4f4da6f
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 3 deletions.
24 changes: 21 additions & 3 deletions src/main/java/ru/endlesscode/rpginventory/RPGInventory.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.ServicePriority;
import org.bukkit.plugin.ServicesManager;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
Expand All @@ -33,8 +34,10 @@
import ru.endlesscode.inspector.bukkit.plugin.PluginLifecycle;
import ru.endlesscode.inspector.bukkit.scheduler.TrackedBukkitRunnable;
import ru.endlesscode.mimic.classes.BukkitClassSystem;
import ru.endlesscode.mimic.items.BukkitItemsRegistry;
import ru.endlesscode.mimic.level.BukkitLevelSystem;
import ru.endlesscode.rpginventory.compat.VersionHandler;
import ru.endlesscode.rpginventory.compat.mimic.RPGInventoryItemsRegistry;
import ru.endlesscode.rpginventory.compat.mypet.MyPetManager;
import ru.endlesscode.rpginventory.event.listener.ArmorEquipListener;
import ru.endlesscode.rpginventory.event.listener.ElytraListener;
Expand Down Expand Up @@ -126,6 +129,15 @@ public void init() {
Config.init(this);
}

@Override
public void onLoad() {
if (!checkMimicEnabled()) {

This comment has been minimized.

Copy link
@osipxd

osipxd Feb 17, 2021

Author Member

Here should be if (checkMimicEnabled())

This comment has been minimized.

Copy link
@osipxd

osipxd Feb 17, 2021

Author Member

Hm... checkMimicEnabled() will be always false in onLoad so I should check it another way.

getServer()
.getServicesManager()
.register(BukkitItemsRegistry.class, new RPGInventoryItemsRegistry(), this, ServicePriority.High);
}
}

@Override
public void onEnable() {
if (!initMimicSystems()) {
Expand Down Expand Up @@ -191,19 +203,25 @@ public void onEnable() {
}

private boolean initMimicSystems() {
boolean isMimicEnabled = getServer().getPluginManager().isPluginEnabled("Mimic");
boolean isMimicEnabled = checkMimicEnabled();
if (isMimicEnabled) {
ServicesManager servicesManager = getServer().getServicesManager();
this.levelSystemProvider = servicesManager.load(BukkitLevelSystem.Provider.class);
Log.i("Level system ''{0}'' found.", this.levelSystemProvider.getId());
this.classSystemProvider = servicesManager.load(BukkitClassSystem.Provider.class);
Log.i("Class system ''{0}'' found.", this.classSystemProvider.getId());
} else {
getLogger().severe("Mimic is required for the plugin!");
getLogger().severe("Download it: https://www.spigotmc.org/resources/82515/");
Log.s("Mimic is required for RPGInventory to use levels and classes from other RPG plugins!");
Log.s("Download it from SpigotMC: https://www.spigotmc.org/resources/82515/");
getServer().getPluginManager().disablePlugin(this);
}
return isMimicEnabled;
}

private boolean checkMimicEnabled() {
return getServer().getPluginManager().isPluginEnabled("Mimic");
}

private boolean checkRequirements() {
// Check if plugin is enabled
if (!Config.getConfig().getBoolean("enabled")) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package ru.endlesscode.rpginventory.compat.mimic;

import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import ru.endlesscode.mimic.items.BukkitItemsRegistry;
import ru.endlesscode.rpginventory.RPGInventory;
import ru.endlesscode.rpginventory.item.CustomItem;
import ru.endlesscode.rpginventory.item.ItemManager;

import java.util.Collection;

public class RPGInventoryItemsRegistry implements BukkitItemsRegistry {

public static String ID = "rpginventory";

@NotNull
@Override
public String getId() {
return ID;
}

@Override
public boolean isEnabled() {
return RPGInventory.getInstance().isEnabled();
}

@NotNull
@Override
public Collection<String> getKnownIds() {
return ItemManager.getItemList();
}

@Nullable
@Override
public ItemStack getItem(@NotNull String itemId, int amount) {
ItemStack item = ItemManager.getItem(itemId);
if (item.getType() != Material.AIR) {
item.setAmount(amount);
return item;
} else {
return null;
}
}

@Nullable
@Override
public String getItemId(@NotNull ItemStack item) {
CustomItem customItem = ItemManager.getCustomItem(item);
if (customItem != null) {
return customItem.getId();
} else {
return null;
}
}

@Override
public boolean isItemExists(@NotNull String itemId) {
return ItemManager.hasItem(itemId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
public class CustomItem extends ClassedItem {
// Required options
@NotNull
private final String id;
@NotNull
private final String name;
private final List<ItemStat> stats = new ArrayList<>();

Expand All @@ -63,6 +65,7 @@ public class CustomItem extends ClassedItem {

CustomItem(String id, Texture texture, @NotNull ConfigurationSection config) {
super(texture, config);
this.id = id;

Rarity rarity = SafeEnums.valueOfOrDefault(Rarity.class, config.getString("rarity"), Rarity.COMMON);
this.name = StringUtils.coloredLine(rarity.getColor() + config.getString("name"));
Expand Down Expand Up @@ -189,6 +192,10 @@ boolean isUnbreakable() {
return unbreakable;
}

public @NotNull String getId() {
return id;
}

@SuppressWarnings("unused")
private enum Rarity {
COMMON('7'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,10 @@ public static List<String> getItemList() {
return new ArrayList<>(CUSTOM_ITEMS.keySet());
}

public static boolean hasItem(String itemId) {
return CUSTOM_ITEMS.containsKey(itemId);
}

@NotNull
public static ItemStack getItem(String itemId) {
CustomItem customItem = CUSTOM_ITEMS.get(itemId);
Expand Down

0 comments on commit 4f4da6f

Please sign in to comment.