コード例 #1
0
    def save_and_exit_settings(self):
        if self.browse_field.text() == "":
            SETTINGS.setValue("MinecraftDirectory", utils.get_default_minecraft_dir())
        else:
            SETTINGS.setValue("MinecraftDirectory", self.browse_field.text())

        SETTINGS.setValue("IGTTimer", int(self.igt_timer_check.isChecked()))
        SETTINGS.setValue("RTATimer", int(self.rta_timer_check.isChecked()))
        SETTINGS.setValue("ShowWorldName", int(self.world_name_check.isChecked()))
        SETTINGS.setValue("ShowHours", int(self.hours_check.isChecked()))
        SETTINGS.setValue("AutoStopTimers", int(self.auto_stop_check.isChecked()))

        SETTINGS.setValue("RTAHotkey", self.rta_hotkey)
        SETTINGS.setValue("RTAResetHotkey", self.rta_reset_hotkey)

        SETTINGS.setValue("Opacity", self.opacity_slider.value() / 100)

        if self.dark_theme_button.isChecked():
            SETTINGS.setValue("Theme", "dark")
        elif self.light_theme_button.isChecked():
            SETTINGS.setValue("Theme", "light")

        self.close()
        self.new = TimerWindow()
        self.new.show()
コード例 #2
0
def get_last_played_level():
    mc_dir = SETTINGS.value("MinecraftDirectory",
                            utils.get_default_minecraft_dir())
    mc_saves = os.path.join(mc_dir, "saves")

    worlds_recently_modified = sorted(
        [os.path.join(mc_saves, s) for s in os.listdir(mc_saves)],
        key=os.path.getmtime,
        reverse=True)
    for world in worlds_recently_modified:
        try:
            level = NBTFile(os.path.join(world, "level.dat"))
            with open(
                    os.path.join(
                        world, "advancements",
                        os.listdir(os.path.join(world,
                                                "advancements"))[0])) as f:
                advancements = dict(json.load(f))
            break
        except:
            continue

    data = {
        "name": str(level["Data"]["LevelName"]),
        "version": str(level["Data"]["Version"]["Name"]),
        "dataversion": int(str(level["Data"]["DataVersion"])),
        "adv": advancements
    }

    return data
コード例 #3
0
def get_last_played_level():
    mc_dir = SETTINGS.value("MinecraftDirectory", utils.get_default_minecraft_dir())
    mc_saves = os.path.join(mc_dir, "saves")

    worlds_recently_modified = sorted([os.path.join(mc_saves, s) for s in os.listdir(mc_saves)], key=os.path.getmtime, reverse=True)
    for w in worlds_recently_modified.copy()[:5]:
        try:
            world = w
            level = NBTFile(os.path.join(world, "level.dat"))
            if not int(str(level["Data"]["Time"])):
                continue
            else:
                break
        except:
            continue

    try:
        with open(os.path.join(world, "stats", os.listdir(os.path.join(world, "stats"))[0]), "r") as f:
            stats = json.load(f)
    except: #* If it's pre 1.7.2
        stats = None

    try:
        seen_credits = bool(int(str(level["Data"]["Player"]["seenCredits"])))
    except: #* If it's pre 1.12 OR a server
        seen_credits = None

    try:
        data = {
            "name": str(level["Data"]["LevelName"]),
            "version": str(level["Data"]["Version"]["Name"]),
            "igt": stats["stat.playOneMinute"] if int(str(level["Data"]["DataVersion"])) < 1451 else stats["stats"]["minecraft:custom"]["minecraft:play_one_minute"],
            "seen_credits": seen_credits,
            "pre17": False
        }
    except: #* If it's pre 1.9
        try:
            data = {
                "name": str(level["Data"]["LevelName"]),
                "version": "Pre 1.9",
                "igt": stats["stat.playOneMinute"],
                "seen_credits": seen_credits,
                "pre17": False
            }
        except: #* If it's pre 1.7.2
            data = {
                "name": str(level["Data"]["LevelName"]),
                "version": "Pre 1.7.2",
                "igt": utils.get_pre17_igt(mc_dir),
                "seen_credits": seen_credits,
                "pre17": True
            }

    return data
コード例 #4
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        uic.loadUi(os.path.join(DIRECTORY, "SettingsWindow.ui"), self)
        self.setWindowFlag(Qt.WindowStaysOnTopHint)
        self.setWindowIcon(QIcon(os.path.join(DIRECTORY, "Resources", "icons.ico")))

        self.author_text.linkActivated.connect(self.open_link)
        self.author_text.setText(f"By NinjaSnail1080\u3000|\u3000<a href='https://github.com/NinjaSnail1080/mc-universal-in-game-timer'>Github</a> (v{__version__})")

        self.browse_field.setText(SETTINGS.value("MinecraftDirectory", utils.get_default_minecraft_dir()))
        self.browse_field.setFocus()
        self.browse_button.clicked.connect(self.browse_for_mc_dir)

        if bool(int(SETTINGS.value("IGTTimer", 1))):
            self.igt_timer_check.setChecked(True)
        if bool(int(SETTINGS.value("RTATimer", 0))):
            self.rta_timer_check.setChecked(True)
        if bool(int(SETTINGS.value("ShowWorldName", 1))):
            self.world_name_check.setChecked(True)
        if bool(int(SETTINGS.value("ShowHours", 1))):
            self.hours_check.setChecked(True)

        if bool(int(SETTINGS.value("AutoStopTimers", 0))):
            self.auto_stop_check.setChecked(True)

        if SETTINGS.value("RTAHotkey", None) is None:
            self.rta_hotkey = None
        else:
            self.rta_hotkey = SETTINGS.value("RTAHotkey")
            self.set_rta_hotkey.setKeySequence(self.rta_hotkey)
        self.set_rta_hotkey.keySequenceChanged.connect(self.change_rta_hotkey)

        if SETTINGS.value("RTAResetHotkey", None) is None:
            self.rta_reset_hotkey = None
        else:
            self.rta_reset_hotkey = SETTINGS.value("RTAResetHotkey")
            self.set_rta_reset_hotkey.setKeySequence(self.rta_reset_hotkey)
        self.set_rta_reset_hotkey.keySequenceChanged.connect(self.change_rta_reset_hotkey)

        self.opacity_slider.setMinimum(10)
        self.opacity_slider.setMaximum(100)
        self.opacity_slider.setSingleStep(1)
        self.opacity_slider.setTickInterval(10)
        self.opacity_slider.setTickPosition(QSlider.TicksBothSides)
        self.opacity_slider.valueChanged.connect(self.change_opacity_percentage)
        self.opacity_slider.setValue(int(float(SETTINGS.value("Opacity", 0.5))*100))

        if SETTINGS.value("Theme", "dark") == "dark":
            self.dark_theme_button.setChecked(True)
        else:
            self.light_theme_button.setChecked(True)

        if sys.platform == "darwin":
            self.continue_button.setText("Save  (double-click)") #? idk why this bug exists
        else:
            self.continue_button.setText("Save")
        self.continue_button.clicked.connect(self.save_and_exit_settings)

        frame = self.frameGeometry()
        screen = QDesktopWidget().primaryScreen()
        screen_center = QDesktopWidget().screenGeometry(screen).center()
        frame.moveCenter(screen_center)
        self.move(frame.topLeft())

        self.setFixedSize(430, 530)
        self.show()
コード例 #5
0
import sys
import os
import time

import utils

try:
    DIRECTORY = sys._MEIPASS
except:
    DIRECTORY = os.path.dirname(__file__)

__version__ = open(os.path.join(DIRECTORY, "VERSION.txt")).read()

SETTINGS = QSettings(QSettings.NativeFormat, QSettings.UserScope, "Minecraft Universal In-Game Timer")

SETTINGS.setValue("ResetTime", utils.get_pre17_igt(SETTINGS.value("MinecraftDirectory", utils.get_default_minecraft_dir())))

#* Default Minecraft color codes (white and black omitted for obvious reasons)
MC_COLORS = {
    "dark_red": "#AA0000",
    "red": "#FF5555",
    "gold": "#FFAA00",
    "yellow": "#FFFF55",
    "dark_green": "#00AA00",
    "green": "#55FF55",
    "aqua": "#55FFFF",
    "dark_aqua": "#00AAAA",
    "dark_blue": "#0000AA",
    "blue": "#5555FF",
    "light_purple": "#FF55FF",
    "dark_purple": "#AA00AA",
コード例 #6
0
try:
    DIRECTORY = sys._MEIPASS
except:
    DIRECTORY = os.path.dirname(__file__)

with open(os.path.join(DIRECTORY, "VERSION.txt")) as f:
    __version__ = f.read()

SETTINGS = QSettings(QSettings.NativeFormat, QSettings.UserScope,
                     "Minecraft Universal In-Game Timer")

SETTINGS.setValue(
    "ResetTime",
    utils.get_pre17_igt(
        SETTINGS.value("MinecraftDirectory",
                       utils.get_default_minecraft_dir())))

#* Default Minecraft color codes (white and black omitted for obvious reasons)
MC_COLORS = {
    "dark_red": "#AA0000",
    "red": "#FF5555",
    "gold": "#FFAA00",
    "yellow": "#FFFF55",
    "dark_green": "#00AA00",
    "green": "#55FF55",
    "aqua": "#55FFFF",
    "dark_aqua": "#00AAAA",
    "dark_blue": "#0000AA",
    "blue": "#5555FF",
    "light_purple": "#FF55FF",
    "dark_purple": "#AA00AA",