Move button specific values from ReportCategory to ReportCategoryButton
This is done to separate the code out so that we can add a GLOBAL value to the enum for handling of ABUSIVE reports (these types of reports do not have a specific category). In its current state it's is very closely inter-twined.
This commit is contained in:
parent
c1354081ea
commit
95507a740c
@ -6,6 +6,7 @@ import java.util.List;
|
|||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains the reasons a player can be reported for.
|
* Contains the reasons a player can be reported for.
|
||||||
@ -14,28 +15,19 @@ import mineplex.core.common.util.C;
|
|||||||
public enum ReportCategory
|
public enum ReportCategory
|
||||||
{
|
{
|
||||||
|
|
||||||
// descriptions borrowed from PunishPage
|
HACKING(0, 3),
|
||||||
HACKING(0, 3, Material.IRON_SWORD, C.cRedB + "Hacking", "X-ray, Forcefield, Speed, Fly etc"),
|
CHAT_ABUSE(1, 1);
|
||||||
CHAT_ABUSE(1, 1, Material.BOOK_AND_QUILL, C.cDBlueB + "Chat Abuse", "Verbal Abuse, Spam, Harassment, Trolling, etc");
|
|
||||||
|
|
||||||
private int _id;
|
private int _id;
|
||||||
private int _notifyThreshold;
|
private int _notifyThreshold;
|
||||||
private Material _displayMaterial;
|
|
||||||
private String _title;
|
|
||||||
private List<String> _lore;
|
|
||||||
|
|
||||||
ReportCategory(int id, int notifyThreshold, Material displayMaterial, String title, String... lore)
|
private String _name;
|
||||||
|
|
||||||
|
ReportCategory(int id, int notifyThreshold)
|
||||||
{
|
{
|
||||||
_id = id;
|
_id = id;
|
||||||
_notifyThreshold = notifyThreshold;
|
_notifyThreshold = notifyThreshold;
|
||||||
_displayMaterial = displayMaterial;
|
_name = StringUtils.capitalize(name().toLowerCase().replace(" ", ""));
|
||||||
_title = title;
|
|
||||||
_lore = new ArrayList<>();
|
|
||||||
|
|
||||||
// prefix are lore lines
|
|
||||||
for (String loreLine : lore) {
|
|
||||||
_lore.add(C.cGray + loreLine);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getId()
|
public int getId()
|
||||||
@ -43,26 +35,16 @@ public enum ReportCategory
|
|||||||
return _id;
|
return _id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return _name;
|
||||||
|
}
|
||||||
|
|
||||||
public int getNotifyThreshold()
|
public int getNotifyThreshold()
|
||||||
{
|
{
|
||||||
return _notifyThreshold;
|
return _notifyThreshold;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Material getItemMaterial()
|
|
||||||
{
|
|
||||||
return _displayMaterial;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTitle()
|
|
||||||
{
|
|
||||||
return _title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getDescription()
|
|
||||||
{
|
|
||||||
return _lore;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ReportCategory fromId(int id)
|
public static ReportCategory fromId(int id)
|
||||||
{
|
{
|
||||||
for (ReportCategory category : values())
|
for (ReportCategory category : values())
|
||||||
|
@ -211,7 +211,7 @@ public class ReportManager {
|
|||||||
// Report #2 > 5 total reporter(s).
|
// Report #2 > 5 total reporter(s).
|
||||||
JsonMessage message = new JsonMessage(F.main(prefix, String.format("%s - %s (%s)",
|
JsonMessage message = new JsonMessage(F.main(prefix, String.format("%s - %s (%s)",
|
||||||
C.cGoldB + suspectName + C.mBody,
|
C.cGoldB + suspectName + C.mBody,
|
||||||
reason, C.cGoldB + report.getCategory().getTitle() + C.mBody))
|
reason, C.cGoldB + report.getCategory().getName() + C.mBody))
|
||||||
+ "\n"
|
+ "\n"
|
||||||
+ F.main(prefix, String.format("Reported by %s.", reporter.getName()))
|
+ F.main(prefix, String.format("Reported by %s.", reporter.getName()))
|
||||||
+ "\n"
|
+ "\n"
|
||||||
|
@ -1,8 +1,15 @@
|
|||||||
package mineplex.core.report.ui;
|
package mineplex.core.report.ui;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.gui.SimpleGuiItem;
|
import mineplex.core.gui.SimpleGuiItem;
|
||||||
import mineplex.core.report.ReportCategory;
|
import mineplex.core.report.ReportCategory;
|
||||||
|
|
||||||
@ -12,19 +19,37 @@ import mineplex.core.report.ReportCategory;
|
|||||||
*/
|
*/
|
||||||
public class ReportCategoryButton extends SimpleGuiItem
|
public class ReportCategoryButton extends SimpleGuiItem
|
||||||
{
|
{
|
||||||
|
// initialize the display items we use
|
||||||
|
private static Map<ReportCategory, ItemStack> ITEM_STACKS = new EnumMap<ReportCategory, ItemStack>(ReportCategory.class)
|
||||||
|
{{
|
||||||
|
ItemStack hackItem = new ItemStack(Material.IRON_SWORD, 1);
|
||||||
|
ItemMeta hackItemMeta = hackItem.getItemMeta();
|
||||||
|
hackItemMeta.setDisplayName(C.cRedB + "Hacking");
|
||||||
|
hackItemMeta.setLore(Collections.singletonList(C.cGray + "X-ray, Forcefield, Speed, Fly etc"));
|
||||||
|
hackItem.setItemMeta(hackItemMeta);
|
||||||
|
put(ReportCategory.HACKING, hackItem);
|
||||||
|
|
||||||
|
ItemStack chatAbuseItem = new ItemStack(Material.BOOK_AND_QUILL, 1);
|
||||||
|
ItemMeta chatAbuseItemMeta = chatAbuseItem.getItemMeta();
|
||||||
|
chatAbuseItemMeta.setDisplayName(C.cDBlueB + "Chat Abuse");
|
||||||
|
chatAbuseItemMeta.setLore(Collections.singletonList("Verbal Abuse, Spam, Harassment, Trolling, etc"));
|
||||||
|
chatAbuseItem.setItemMeta(chatAbuseItemMeta);
|
||||||
|
put(ReportCategory.CHAT_ABUSE, chatAbuseItem);
|
||||||
|
}};
|
||||||
|
|
||||||
private ReportCategoryPage _reportCategoryPage;
|
private ReportCategoryPage _reportCategoryPage;
|
||||||
private ReportCategory _category;
|
private ReportCategory _category;
|
||||||
|
|
||||||
public ReportCategoryButton(ReportCategoryPage reportCategoryPage, ReportCategory category) {
|
public ReportCategoryButton(ReportCategoryPage reportCategoryPage, ReportCategory reportCategory)
|
||||||
super(category.getItemMaterial(), 1, (short) 0);
|
{
|
||||||
|
this(reportCategoryPage, reportCategory, ITEM_STACKS.get(reportCategory));
|
||||||
|
}
|
||||||
|
|
||||||
ItemMeta itemMeta = getItemMeta();
|
public ReportCategoryButton(ReportCategoryPage reportCategoryPage, ReportCategory reportCategory, ItemStack itemStack)
|
||||||
itemMeta.setDisplayName(category.getTitle());
|
{
|
||||||
itemMeta.setLore(category.getDescription());
|
super(itemStack);
|
||||||
setItemMeta(itemMeta);
|
_reportCategoryPage = reportCategoryPage;
|
||||||
|
_category = reportCategory;
|
||||||
this._reportCategoryPage = reportCategoryPage;
|
|
||||||
this._category = category;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user