Remove cartographers entirely

This commit is contained in:
CocoTheOwner 2022-01-24 13:36:39 +01:00
parent 4ade79a307
commit 510535fdd4
2 changed files with 27 additions and 3 deletions

View File

@ -24,8 +24,10 @@ import com.volmit.iris.engine.object.IrisVillagerOverride;
import com.volmit.iris.engine.object.IrisVillagerTrade; import com.volmit.iris.engine.object.IrisVillagerTrade;
import com.volmit.iris.util.plugin.IrisService; import com.volmit.iris.util.plugin.IrisService;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Villager;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.VillagerAcquireTradeEvent; import org.bukkit.event.entity.VillagerAcquireTradeEvent;
import org.bukkit.event.entity.VillagerCareerChangeEvent;
public class VillageSVC implements IrisService { public class VillageSVC implements IrisService {
@Override @Override
@ -38,9 +40,28 @@ public class VillageSVC implements IrisService {
} }
/** @EventHandler
public void on(VillagerCareerChangeEvent event) {
if (!IrisToolbelt.isIrisWorld(event.getEntity().getWorld())) {
return;
}
if (!IrisToolbelt.access(event.getEntity().getWorld())
.getEngine().getDimension().isRemoveCartographersDueToCrash()) {
return;
}
if (event.getProfession().equals(Villager.Profession.CARTOGRAPHER)) {
event.setCancelled(true);
Iris.info("Cancelled Cartographer Villager to prevent server crash!");
}
}
/*
* Replace or disable villager trade add event to prevent explorer map * Replace or disable villager trade add event to prevent explorer map
*/ */
/* Removed due to MC breaking stuff again. This event is now called after the cartographer maps are made,
so it can fuck right off.
@EventHandler @EventHandler
public void on(VillagerAcquireTradeEvent event) { public void on(VillagerAcquireTradeEvent event) {
if(!IrisToolbelt.isIrisWorld((event.getEntity().getWorld()))) { if(!IrisToolbelt.isIrisWorld((event.getEntity().getWorld()))) {
@ -71,4 +92,5 @@ public class VillageSVC implements IrisService {
event.setRecipe(trade.convert()); event.setRecipe(trade.convert());
Iris.debug("Overrode cartographer trade with: " + trade + " to prevent allowing cartography map trades"); Iris.debug("Overrode cartographer trade with: " + trade + " to prevent allowing cartography map trades");
} }
*/
} }

View File

@ -223,8 +223,10 @@ public class IrisDimension extends IrisRegistrant {
private IrisMaterialPalette rockPalette = new IrisMaterialPalette().qclear().qadd("stone"); private IrisMaterialPalette rockPalette = new IrisMaterialPalette().qclear().qadd("stone");
@Desc("The palette of blocks for 'water'") @Desc("The palette of blocks for 'water'")
private IrisMaterialPalette fluidPalette = new IrisMaterialPalette().qclear().qadd("water"); private IrisMaterialPalette fluidPalette = new IrisMaterialPalette().qclear().qadd("water");
@Desc("Cartographer map trade overrides") // @Desc("Cartographer map trade overrides")
private IrisVillagerOverride patchCartographers = new IrisVillagerOverride().setDisableTrade(false); // private IrisVillagerOverride patchCartographers = new IrisVillagerOverride().setDisableTrade(false);
@Desc("Remove cartographers so they do not crash the server (Iris worlds only)")
private boolean removeCartographersDueToCrash = true;
@Desc("Collection of ores to be generated") @Desc("Collection of ores to be generated")
@ArrayType(type = IrisOreGenerator.class, min = 1) @ArrayType(type = IrisOreGenerator.class, min = 1)
private KList<IrisOreGenerator> ores = new KList<>(); private KList<IrisOreGenerator> ores = new KList<>();