diff --git a/src/main/java/ru/dbotthepony/mc/otm/android/AndroidResearch.java b/src/main/java/ru/dbotthepony/mc/otm/android/AndroidResearch.java index 8044a902d..50808e7d1 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/android/AndroidResearch.java +++ b/src/main/java/ru/dbotthepony/mc/otm/android/AndroidResearch.java @@ -27,7 +27,12 @@ public abstract class AndroidResearch implements INBTSerializable { } public void unResearch() { + if (!researched) + return; + researched = false; + onUnresearched(); + markDirty(); } public AndroidResearch(AndroidResearchType type, AndroidCapabilityPlayer capability) { @@ -51,6 +56,8 @@ public abstract class AndroidResearch implements INBTSerializable { * Should *only* refund research cost to host, not reverse its effects */ abstract public void refund(); + abstract public void onUnresearched(); + abstract public void onResearched(); abstract public void consumeCost(); abstract public boolean canAfford(); diff --git a/src/main/java/ru/dbotthepony/mc/otm/android/AndroidResearchBuilder.java b/src/main/java/ru/dbotthepony/mc/otm/android/AndroidResearchBuilder.java index 236845315..c93409ede 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/android/AndroidResearchBuilder.java +++ b/src/main/java/ru/dbotthepony/mc/otm/android/AndroidResearchBuilder.java @@ -300,6 +300,11 @@ public class AndroidResearchBuilder { } } + @Override + public void onUnresearched() { + + } + @Override public boolean canAfford() { if (capability.ply.experienceLevel < experience)