Fixed one random exception and one bug with the booklet.

Great.
Could've done that an hour ago.
This commit is contained in:
Ellpeck 2016-08-03 21:32:59 +02:00
parent f330657cf7
commit 5c8fba3d64
2 changed files with 33 additions and 9 deletions

View file

@ -33,6 +33,8 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraft.stats.Achievement; import net.minecraft.stats.Achievement;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import java.awt.*; import java.awt.*;
@ -46,6 +48,7 @@ public final class BookletUtils{
/** /**
* Tries to open a URL in the Browser * Tries to open a URL in the Browser
*/ */
@SideOnly(Side.CLIENT)
public static void openBrowser(String url){ public static void openBrowser(String url){
openBrowser(url, url); openBrowser(url, url);
} }
@ -56,6 +59,7 @@ public final class BookletUtils{
* @param url The URL * @param url The URL
* @param shiftUrl The URL to open when Shift is held * @param shiftUrl The URL to open when Shift is held
*/ */
@SideOnly(Side.CLIENT)
public static void openBrowser(String url, String shiftUrl){ public static void openBrowser(String url, String shiftUrl){
try{ try{
if(Desktop.isDesktopSupported()){ if(Desktop.isDesktopSupported()){
@ -75,6 +79,7 @@ public final class BookletUtils{
/** /**
* Draws the Title of the current chapter, current index entry or just "Actually Additions" if neither is present * Draws the Title of the current chapter, current index entry or just "Actually Additions" if neither is present
*/ */
@SideOnly(Side.CLIENT)
public static void drawTitle(GuiBooklet booklet){ public static void drawTitle(GuiBooklet booklet){
booklet.mc.getTextureManager().bindTexture(GuiBooklet.RES_LOC); booklet.mc.getTextureManager().bindTexture(GuiBooklet.RES_LOC);
//Upper title //Upper title
@ -122,6 +127,7 @@ public final class BookletUtils{
* *
* @param pre If the hover info texts or the icon should be drawn * @param pre If the hover info texts or the icon should be drawn
*/ */
@SideOnly(Side.CLIENT)
public static void drawAchievementInfo(GuiBooklet booklet, boolean pre, int mouseX, int mouseY){ public static void drawAchievementInfo(GuiBooklet booklet, boolean pre, int mouseX, int mouseY){
if(booklet.currentEntrySet.getCurrentChapter() == null){ if(booklet.currentEntrySet.getCurrentChapter() == null){
return; return;
@ -167,6 +173,7 @@ public final class BookletUtils{
* -the number of a page in a chapter * -the number of a page in a chapter
* -the amount of words and chars in the index (Just for teh lulz) * -the amount of words and chars in the index (Just for teh lulz)
*/ */
@SideOnly(Side.CLIENT)
public static void renderPre(GuiBooklet booklet, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){ public static void renderPre(GuiBooklet booklet, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){
if(booklet.currentEntrySet.getCurrentEntry() != null){ if(booklet.currentEntrySet.getCurrentEntry() != null){
//Renders Booklet Page Number and Content //Renders Booklet Page Number and Content
@ -192,6 +199,7 @@ public final class BookletUtils{
/** /**
* Draws all of the hovering texts for the buttons that need explanation in the booklet * Draws all of the hovering texts for the buttons that need explanation in the booklet
*/ */
@SideOnly(Side.CLIENT)
public static void doHoverTexts(GuiBooklet booklet, int mouseX, int mouseY){ public static void doHoverTexts(GuiBooklet booklet, int mouseX, int mouseY){
//Update all of the buttons' hovering texts //Update all of the buttons' hovering texts
for(Object button : booklet.getButtonList()){ for(Object button : booklet.getButtonList()){
@ -209,6 +217,7 @@ public final class BookletUtils{
/** /**
* Updates the search bar, should be called when it is getting typed into * Updates the search bar, should be called when it is getting typed into
*/ */
@SideOnly(Side.CLIENT)
public static void updateSearchBar(GuiBooklet booklet){ public static void updateSearchBar(GuiBooklet booklet){
if(booklet.currentEntrySet.getCurrentEntry() instanceof BookletEntryAllSearch){ if(booklet.currentEntrySet.getCurrentEntry() instanceof BookletEntryAllSearch){
BookletEntryAllSearch currentEntry = (BookletEntryAllSearch)booklet.currentEntrySet.getCurrentEntry(); BookletEntryAllSearch currentEntry = (BookletEntryAllSearch)booklet.currentEntrySet.getCurrentEntry();
@ -229,6 +238,7 @@ public final class BookletUtils{
} }
} }
@SideOnly(Side.CLIENT)
private static boolean getChapterStacksContainString(String text, IBookletChapter chapter){ private static boolean getChapterStacksContainString(String text, IBookletChapter chapter){
Minecraft mc = Minecraft.getMinecraft(); Minecraft mc = Minecraft.getMinecraft();
for(BookletPage page : chapter.getPages()){ for(BookletPage page : chapter.getPages()){
@ -251,6 +261,7 @@ public final class BookletUtils{
return false; return false;
} }
@SideOnly(Side.CLIENT)
public static void openIndexEntry(GuiBooklet booklet, IBookletEntry entry, int page, boolean resetTextField){ public static void openIndexEntry(GuiBooklet booklet, IBookletEntry entry, int page, boolean resetTextField){
booklet.searchField.setVisible(entry instanceof BookletEntryAllSearch); booklet.searchField.setVisible(entry instanceof BookletEntryAllSearch);
booklet.searchField.setFocused(entry instanceof BookletEntryAllSearch); booklet.searchField.setFocused(entry instanceof BookletEntryAllSearch);
@ -309,6 +320,7 @@ public final class BookletUtils{
/** /**
* Called when one of the buttons to open an index or a chapter is pressed * Called when one of the buttons to open an index or a chapter is pressed
*/ */
@SideOnly(Side.CLIENT)
public static void handleChapterButtonClick(GuiBooklet booklet, GuiButton button){ public static void handleChapterButtonClick(GuiBooklet booklet, GuiButton button){
int place = ArrayUtils.indexOf(booklet.chapterButtons, button); int place = ArrayUtils.indexOf(booklet.chapterButtons, button);
if(place >= 0){ if(place >= 0){
@ -332,6 +344,7 @@ public final class BookletUtils{
* Opens a chapter in the booklet. * Opens a chapter in the booklet.
* Can only be done when the chapter is not null and an index entry is opened in the booklet * Can only be done when the chapter is not null and an index entry is opened in the booklet
*/ */
@SideOnly(Side.CLIENT)
public static void openChapter(GuiBooklet booklet, IBookletChapter chapter, BookletPage page){ public static void openChapter(GuiBooklet booklet, IBookletChapter chapter, BookletPage page){
if(chapter == null || booklet.currentEntrySet.getCurrentEntry() == null){ if(chapter == null || booklet.currentEntrySet.getCurrentEntry() == null){
return; return;
@ -366,6 +379,7 @@ public final class BookletUtils{
/** /**
* Checks if a chapter has a certain page * Checks if a chapter has a certain page
*/ */
@SideOnly(Side.CLIENT)
private static boolean doesChapterHavePage(IBookletChapter chapter, BookletPage page){ private static boolean doesChapterHavePage(IBookletChapter chapter, BookletPage page){
for(BookletPage aPage : chapter.getPages()){ for(BookletPage aPage : chapter.getPages()){
if(aPage == page){ if(aPage == page){
@ -378,6 +392,7 @@ public final class BookletUtils{
/** /**
* Gets the next available page in the booklet (or null if there is none) * Gets the next available page in the booklet (or null if there is none)
*/ */
@SideOnly(Side.CLIENT)
private static BookletPage getNextPage(IBookletChapter chapter, BookletPage page){ private static BookletPage getNextPage(IBookletChapter chapter, BookletPage page){
for(int i = 0; i < chapter.getPages().length; i++){ for(int i = 0; i < chapter.getPages().length; i++){
if(chapter.getPages()[i] == page){ if(chapter.getPages()[i] == page){
@ -392,6 +407,7 @@ public final class BookletUtils{
/** /**
* Gets the previous available page in the booklet (or null if there is none) * Gets the previous available page in the booklet (or null if there is none)
*/ */
@SideOnly(Side.CLIENT)
private static BookletPage getPrevPage(IBookletChapter chapter, BookletPage page){ private static BookletPage getPrevPage(IBookletChapter chapter, BookletPage page){
for(int i = 0; i < chapter.getPages().length; i++){ for(int i = 0; i < chapter.getPages().length; i++){
if(chapter.getPages()[i] == page){ if(chapter.getPages()[i] == page){
@ -406,6 +422,7 @@ public final class BookletUtils{
/** /**
* Called when the "next page"-button is pressed * Called when the "next page"-button is pressed
*/ */
@SideOnly(Side.CLIENT)
public static void handleNextPage(GuiBooklet booklet){ public static void handleNextPage(GuiBooklet booklet){
if(booklet.currentEntrySet.getCurrentEntry() != null){ if(booklet.currentEntrySet.getCurrentEntry() != null){
if(booklet.currentEntrySet.getCurrentPage() != null){ if(booklet.currentEntrySet.getCurrentPage() != null){
@ -432,6 +449,7 @@ public final class BookletUtils{
/** /**
* Called when the "previous page"-button is pressed * Called when the "previous page"-button is pressed
*/ */
@SideOnly(Side.CLIENT)
public static void handlePreviousPage(GuiBooklet booklet){ public static void handlePreviousPage(GuiBooklet booklet){
if(booklet.currentEntrySet.getCurrentEntry() != null){ if(booklet.currentEntrySet.getCurrentEntry() != null){
if(booklet.currentEntrySet.getCurrentPage() != null){ if(booklet.currentEntrySet.getCurrentPage() != null){
@ -470,6 +488,7 @@ public final class BookletUtils{
return possiblePages; return possiblePages;
} }
@SideOnly(Side.CLIENT)
public static void saveBookPage(GuiBooklet gui, NBTTagCompound compound){ public static void saveBookPage(GuiBooklet gui, NBTTagCompound compound){
//Save Entry etc. //Save Entry etc.
compound.setTag("SavedEntry", gui.currentEntrySet.writeToNBT()); compound.setTag("SavedEntry", gui.currentEntrySet.writeToNBT());
@ -485,6 +504,7 @@ public final class BookletUtils{
compound.setTag("Bookmarks", list); compound.setTag("Bookmarks", list);
} }
@SideOnly(Side.CLIENT)
public static void openLastBookPage(GuiBooklet gui, NBTTagCompound compound){ public static void openLastBookPage(GuiBooklet gui, NBTTagCompound compound){
//Open Entry etc. //Open Entry etc.
EntrySet set = EntrySet.readFromNBT(compound.getCompoundTag("SavedEntry")); EntrySet set = EntrySet.readFromNBT(compound.getCompoundTag("SavedEntry"));

View file

@ -458,17 +458,21 @@ public class GuiBooklet extends GuiScreen implements IBookletGui{
@Override @Override
public void onGuiClosed(){ public void onGuiClosed(){
if(this.saveOnClose && this.shouldSaveDataNextClose){ if(this.saveOnClose && this.shouldSaveDataNextClose){
NBTTagCompound bookletData = new NBTTagCompound(); Minecraft mc = Minecraft.getMinecraft();
BookletUtils.saveBookPage(this, bookletData); //Happens when you get thrown out with the book open
if(mc.theWorld != null && mc.thePlayer != null){
NBTTagCompound bookletData = new NBTTagCompound();
BookletUtils.saveBookPage(this, bookletData);
NBTTagCompound extraData = new NBTTagCompound(); NBTTagCompound extraData = new NBTTagCompound();
extraData.setTag("BookletData", bookletData); extraData.setTag("BookletData", bookletData);
NBTTagCompound dataToSend = new NBTTagCompound(); NBTTagCompound dataToSend = new NBTTagCompound();
dataToSend.setTag("Data", extraData); dataToSend.setTag("Data", extraData);
dataToSend.setInteger("WorldID", Minecraft.getMinecraft().theWorld.provider.getDimension()); dataToSend.setInteger("WorldID", mc.theWorld.provider.getDimension());
dataToSend.setInteger("PlayerID", Minecraft.getMinecraft().thePlayer.getEntityId()); dataToSend.setInteger("PlayerID", mc.thePlayer.getEntityId());
PacketHandler.theNetwork.sendToServer(new PacketClientToServer(dataToSend, PacketHandler.CHANGE_PLAYER_DATA_HANDLER)); PacketHandler.theNetwork.sendToServer(new PacketClientToServer(dataToSend, PacketHandler.CHANGE_PLAYER_DATA_HANDLER));
}
} }
} }