/* * This file is part of FTB Launcher. * * Copyright © 2012-2016, FTB Launcher Contributors <https://github.com/Slowpoke101/FTBLaunch/> * FTB Launcher is licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.ftb.util; import javax.swing.JOptionPane; import net.ftb.gui.LaunchFrame; import net.ftb.gui.dialogs.YNDialog; import net.ftb.locale.I18N; import net.ftb.log.Logger; public class GameUtils { public static void killMC () { // if Mc is running if (LaunchFrame.MCRunning) { // open confirm dialog for closing MC YNDialog yn = new YNDialog("KILL_MC_MESSAGE", "KILL_MC_CONFIRM", "KILL_MC_TITLE"); yn.setVisible(true); yn.toFront(); if (yn.ready && yn.ret && LaunchFrame.MCRunning && LaunchFrame.getProcMonitor() != null) { Logger.logWarn("MC Killed by the user!"); LaunchFrame.getProcMonitor().stop(); } yn.setVisible(false); } else { Logger.logInfo("No Minecraft Process currently running to kill"); } } public static void threadDumpMC () { boolean ret = true; // if Mc is running if (LaunchFrame.MCRunning) { // open confirm dialog for closing MC YNDialog yn = new YNDialog("TD_MC_MESSAGE", "TD_MC_CONFIRM", "TD_MC_TITLE"); yn.setVisible(true); yn.toFront(); if (yn.ready && yn.ret && LaunchFrame.MCRunning && LaunchFrame.getProcMonitor() != null) { Logger.logWarn("Getting thread dump from MC"); ret = OSUtils.genThreadDump(LaunchFrame.getProcMonitor().getPid()); } yn.setVisible(false); if (ret == false) { ErrorUtils.showClickableMessage(I18N.getLocaleString("TD_MC_FAIL_MESSAGE"), JOptionPane.ERROR_MESSAGE); } } else { Logger.logInfo("No Minecraft Process currently running to thread dump"); } } }