diff --git a/README.md b/README.md index bab0b86..801e7a5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,7 @@ -# mods +# NSIS Installer for PolyMC components +## Changelog + +### 2024-04-14 + +- Initial release diff --git a/datas/LICENSE b/datas/LICENSE new file mode 100644 index 0000000..7337456 --- /dev/null +++ b/datas/LICENSE @@ -0,0 +1,7 @@ +Copyright 2024 Zogg + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/datas/header.bmp b/datas/header.bmp new file mode 100644 index 0000000..fb967d3 Binary files /dev/null and b/datas/header.bmp differ diff --git a/datas/server-icon.ico b/datas/server-icon.ico new file mode 100644 index 0000000..f96f102 Binary files /dev/null and b/datas/server-icon.ico differ diff --git a/datas/server-icon.png b/datas/server-icon.png new file mode 100644 index 0000000..04aa3bf Binary files /dev/null and b/datas/server-icon.png differ diff --git a/datas/welcomefinish.bmp b/datas/welcomefinish.bmp new file mode 100644 index 0000000..96dc22e Binary files /dev/null and b/datas/welcomefinish.bmp differ diff --git a/datas/work/android-chrome-144x144.png b/datas/work/android-chrome-144x144.png new file mode 100644 index 0000000..3903c7e Binary files /dev/null and b/datas/work/android-chrome-144x144.png differ diff --git a/datas/work/avatar.webp b/datas/work/avatar.webp new file mode 100644 index 0000000..b80d35a Binary files /dev/null and b/datas/work/avatar.webp differ diff --git a/datas/work/favicon.webp b/datas/work/favicon.webp new file mode 100644 index 0000000..b6988ca Binary files /dev/null and b/datas/work/favicon.webp differ diff --git a/datas/work/header.xcf b/datas/work/header.xcf new file mode 100644 index 0000000..2c58c24 Binary files /dev/null and b/datas/work/header.xcf differ diff --git a/datas/work/logo.webp b/datas/work/logo.webp new file mode 100644 index 0000000..9977539 Binary files /dev/null and b/datas/work/logo.webp differ diff --git a/datas/work/welcomefinish.xcf b/datas/work/welcomefinish.xcf new file mode 100644 index 0000000..7dccb2c Binary files /dev/null and b/datas/work/welcomefinish.xcf differ diff --git a/files/PolyMC/instances/common/config/betterf3.json b/files/PolyMC/instances/common/config/betterf3.json new file mode 100644 index 0000000..364af06 --- /dev/null +++ b/files/PolyMC/instances/common/config/betterf3.json @@ -0,0 +1,177 @@ +{ + "general": { + "disable_mod": false, + "hide_bossbar": true, + "shadow_text": true, + "auto_start": false, + "animationSpeed": 1.0, + "always_show_ping": false, + "hide_debug_crosshair": false, + "background_color": 1867534416, + "space_modules": false, + "always_show_profiler": false, + "animations": false, + "fontScale": 1.0, + "hide_sidebar": true, + "always_show_tps": false + }, + "modules_right": [ + { + "name": "target", + "name_color": 43775, + "value_color": 16777045, + "lines": { + "id_fluid": true, + "fluid_tags": true, + "block_states": true, + "targeted_block": true, + "block_tags": true, + "id_block": true, + "nothing": true, + "nothing2": true, + "targeted_fluid": true, + "targeted_entity": true, + "fluid_states": true + }, + "enabled": true + } + ], + "modules_left": [ + { + "name": "minecraft", + "name_color": 10506797, + "value_color": 43520, + "lines": { + "minecraft": true + }, + "enabled": true + }, + { + "empty_lines": 1, + "name": "empty", + "lines": { + "nothing": true + }, + "enabled": true + }, + { + "color_high": 5635925, + "color_med": 16777045, + "name": "fps", + "lines": { + "fps": true + }, + "enabled": true, + "color_low": 16733525 + }, + { + "name": "graphics", + "name_color": 16755200, + "value_color": 5636095, + "lines": { + "shader": true, + "render_distance": true, + "graphics": true, + "clouds": true, + "biome_blend_radius": true + }, + "enabled": true + }, + { + "empty_lines": 1, + "name": "empty", + "lines": { + "nothing": true + }, + "enabled": true + }, + { + "color_x": 16733525, + "color_y": 5635925, + "color_z": 5636095, + "name": "coords", + "name_color": 16733525, + "lines": { + "chunk_coords": true, + "player_coords": true, + "block_coords": true, + "velocity": true, + "chunk_relative_coords": true, + "abs_velocity": true + }, + "enabled": true + }, + { + "empty_lines": 1, + "name": "empty", + "lines": { + "nothing": true + }, + "enabled": true + }, + { + "name": "location", + "name_color": 43520, + "value_color": 5636095, + "lines": { + "light": true, + "biome": true, + "rotation": true, + "facing": true, + "slime_chunk": true, + "local_difficulty": true, + "day_ticks": true, + "days_played": true, + "dimension": true, + "highest_block": true, + "highest_block_server": true, + "light_server": true + }, + "enabled": true + }, + { + "empty_lines": 1, + "name": "empty", + "lines": { + "nothing": true + }, + "enabled": true + }, + { + "name": "entity", + "name_color": 16733525, + "value_color": 16777045, + "total_entities_color": 16755200, + "lines": { + "entities": true, + "water_creature": true, + "underground_water_creature": true, + "ambient": true, + "particles": true, + "axolotls": true, + "creature": true, + "water_ambient": true, + "monster": true, + "misc": true + }, + "enabled": true + }, + { + "empty_lines": 1, + "name": "empty", + "lines": { + "nothing": true + }, + "enabled": true + }, + { + "name": "miscleft", + "name_color": 16645526, + "value_color": 5636095, + "lines": { + "misc_left": true + }, + "enabled": true + } + ] +} \ No newline at end of file diff --git a/files/PolyMC/instances/common/config/jade.json b/files/PolyMC/instances/common/config/jade.json new file mode 100644 index 0000000..9106a18 --- /dev/null +++ b/files/PolyMC/instances/common/config/jade.json @@ -0,0 +1,44 @@ +{ + "general": { + "hintOverlayToggle": true, + "hintNarratorToggle": true, + "previewOverlay": true, + "displayTooltip": true, + "displayBlocks": true, + "displayEntities": true, + "displayBosses": true, + "displayMode": "TOGGLE", + "hideFromDebug": true, + "hideFromTabList": true, + "enableTextToSpeech": false, + "ttsMode": "PRESS", + "fluidMode": "ANY", + "reachDistance": 0.0, + "debug": false, + "itemModNameTooltip": true, + "bossBarOverlapMode": "PUSH_DOWN", + "builtinCamouflage": true + }, + "overlay": { + "activeTheme": "jade:dark", + "themesHash": -328442023, + "overlayPosX": 0.0, + "overlayPosY": 1.0, + "overlayScale": 1.0, + "overlayAnchorX": 0.0, + "overlayAnchorY": 0.0, + "overlaySquare": true, + "flipMainHand": false, + "autoScaleThreshold": 0.4, + "alpha": 0.7, + "iconMode": "TOP", + "animation": true, + "disappearingDelay": 0.0 + }, + "formatting": { + "itemModNameStyle": { + "italic": true, + "color": "blue" + } + } +} \ No newline at end of file diff --git a/files/PolyMC/instances/common/config/sodium-extra-options.json b/files/PolyMC/instances/common/config/sodium-extra-options.json new file mode 100644 index 0000000..91d778b --- /dev/null +++ b/files/PolyMC/instances/common/config/sodium-extra-options.json @@ -0,0 +1,173 @@ +{ + "animation_settings": { + "animation": false, + "water": false, + "lava": false, + "fire": false, + "portal": false, + "block_animations": false, + "sculk_sensor": false + }, + "particle_settings": { + "particles": false, + "rain_splash": false, + "block_break": false, + "block_breaking": false, + "other": { + "minecraft:sweep_attack": false, + "minecraft:end_rod": false, + "minecraft:block": false, + "minecraft:sonic_boom": false, + "minecraft:item_snowball": false, + "minecraft:bubble": false, + "minecraft:ash": false, + "minecraft:white_ash": false, + "minecraft:sculk_charge": false, + "minecraft:current_down": false, + "minecraft:bubble_column_up": false, + "minecraft:composter": false, + "minecraft:enchanted_hit": false, + "minecraft:spit": false, + "minecraft:crit": false, + "minecraft:heart": false, + "minecraft:dolphin": false, + "minecraft:dust_plume": false, + "minecraft:scrape": false, + "minecraft:dripping_water": false, + "minecraft:dripping_dripstone_water": false, + "minecraft:falling_dripstone_water": false, + "minecraft:falling_water": false, + "minecraft:effect": false, + "minecraft:instant_effect": false, + "minecraft:entity_effect": false, + "minecraft:ambient_entity_effect": false, + "minecraft:enchant": false, + "minecraft:squid_ink": false, + "minecraft:glow_squid_ink": false, + "minecraft:explosion": false, + "minecraft:firework": false, + "minecraft:cherry_leaves": false, + "minecraft:egg_crack": false, + "minecraft:flame": false, + "minecraft:soul_fire_flame": false, + "minecraft:flash": false, + "minecraft:falling_spore_blossom": false, + "minecraft:snowflake": false, + "minecraft:wax_off": false, + "minecraft:smoke": false, + "minecraft:campfire_cosy_smoke": false, + "minecraft:elder_guardian": false, + "minecraft:large_smoke": false, + "minecraft:gust": false, + "minecraft:gust_dust": false, + "minecraft:gust_emitter": false, + "minecraft:shriek": false, + "minecraft:damage_indicator": false, + "minecraft:dripping_obsidian_tear": false, + "minecraft:falling_obsidian_tear": false, + "minecraft:landing_obsidian_tear": false, + "minecraft:lava": false, + "minecraft:dripping_lava": false, + "minecraft:dripping_dripstone_lava": false, + "minecraft:falling_dripstone_lava": false, + "minecraft:falling_lava": false, + "minecraft:landing_lava": false, + "minecraft:glow": false, + "minecraft:wax_on": false, + "minecraft:block_marker": false, + "minecraft:dripping_honey": false, + "minecraft:falling_honey": false, + "minecraft:landing_honey": false, + "minecraft:mycelium": false, + "minecraft:nautilus": false, + "minecraft:falling_nectar": false, + "minecraft:note": false, + "minecraft:cloud": false, + "minecraft:item": false, + "minecraft:small_flame": false, + "minecraft:rain": false, + "minecraft:sculk_charge_pop": false, + "minecraft:portal": false, + "minecraft:reverse_portal": false, + "minecraft:poof": false, + "minecraft:dust_color_transition": false, + "minecraft:dust": false, + "minecraft:falling_dust": false, + "minecraft:fishing": false, + "minecraft:campfire_signal_smoke": false, + "minecraft:item_slime": false, + "minecraft:witch": false, + "minecraft:dragon_breath": false, + "minecraft:underwater": false, + "minecraft:warped_spore": false, + "minecraft:crimson_spore": false, + "minecraft:spore_blossom_air": false, + "minecraft:totem_of_undying": false, + "minecraft:trial_spawner_detection": false, + "minecraft:vibration": false, + "minecraft:happy_villager": false, + "minecraft:angry_villager": false, + "minecraft:white_smoke": false, + "minecraft:soul": false, + "minecraft:sculk_soul": false, + "minecraft:splash": false, + "minecraft:bubble_pop": false, + "minecraft:explosion_emitter": false, + "minecraft:sneeze": false, + "minecraft:electric_spark": false + } + }, + "detail_settings": { + "sky": false, + "sun_moon": false, + "stars": false, + "rain_snow": false, + "biome_colors": false, + "sky_colors": false + }, + "render_settings": { + "fog_distance": 32, + "fog_start": 100, + "multi_dimension_fog_control": true, + "dimensionFogDistance": { + "minecraft:overworld": 0, + "minecraft:the_nether": 0, + "minecraft:the_end": 0 + }, + "light_updates": true, + "item_frame": true, + "armor_stand": true, + "painting": true, + "piston": true, + "beacon_beam": true, + "enchanting_table_book": true, + "item_frame_name_tag": true, + "player_name_tag": true + }, + "extra_settings": { + "overlay_corner": "TOP_LEFT", + "text_contrast": "SHADOW", + "show_fps": false, + "show_f_p_s_extended": true, + "show_coords": false, + "reduce_resolution_on_mac": true, + "use_adaptive_sync": false, + "cloud_height": 192, + "cloud_distance": 100, + "toasts": true, + "advancement_toast": true, + "recipe_toast": true, + "system_toast": true, + "tutorial_toast": true, + "instant_sneak": false, + "prevent_shaders": false, + "steady_debug_hud": true, + "steady_debug_hud_refresh_interval": 1 + }, + "super_secret_settings": { + "fetch_sodium_extra_crowdin_translations": false, + "sodium_extra_crowdin_project_identifier": "sodium-extra", + "fetch_sodium_crowdin_translations": false, + "sodium_crowdin_project_identifier": "sodium-fabric" + } +} \ No newline at end of file diff --git a/files/PolyMC/instances/common/config/sodium-options.json b/files/PolyMC/instances/common/config/sodium-options.json new file mode 100644 index 0000000..e650294 --- /dev/null +++ b/files/PolyMC/instances/common/config/sodium-options.json @@ -0,0 +1,25 @@ +{ + "quality": { + "weather_quality": "FAST", + "leaves_quality": "FAST", + "enable_vignette": false + }, + "advanced": { + "enable_memory_tracing": false, + "use_advanced_staging_buffers": false, + "cpu_render_ahead_limit": 4 + }, + "performance": { + "chunk_builder_threads": 0, + "always_defer_chunk_updates_v2": true, + "animate_only_visible_textures": true, + "use_entity_culling": true, + "use_fog_occlusion": true, + "use_block_face_culling": true, + "use_no_error_g_l_context": true + }, + "notifications": { + "has_cleared_donation_button": true, + "has_seen_donation_prompt": true + } +} \ No newline at end of file diff --git a/files/PolyMC/instances/common/minecraft/options.txt b/files/PolyMC/instances/common/minecraft/options.txt new file mode 100644 index 0000000..ba19459 --- /dev/null +++ b/files/PolyMC/instances/common/minecraft/options.txt @@ -0,0 +1,172 @@ +version:3700 +autoJump:true +operatorItemsTab:false +autoSuggestions:true +chatColors:true +chatLinks:true +chatLinksPrompt:true +enableVsync:false +entityShadows:false +forceUnicodeFont:false +discrete_mouse_scroll:false +invertYMouse:false +realmsNotifications:true +reducedDebugInfo:false +showSubtitles:false +directionalAudio:true +touchscreen:false +fullscreen:true +bobView:false +toggleCrouch:false +toggleSprint:false +darkMojangStudiosBackground:false +hideLightningFlashes:false +hideSplashTexts:false +mouseSensitivity:0.5 +fov:0.0 +screenEffectScale:1.0 +fovEffectScale:1.0 +darknessEffectScale:1.0 +glintSpeed:0.5 +glintStrength:0.75 +damageTiltStrength:1.0 +highContrast:false +narratorHotkey:true +gamma:0.0 +renderDistance:8 +simulationDistance:8 +entityDistanceScaling:1.0 +guiScale:2 +particles:1 +maxFps:260 +graphicsMode:0 +ao:false +prioritizeChunkUpdates:0 +biomeBlendRadius:1 +renderClouds:"false" +resourcePacks:["vanilla","fabric","presencefootsteps:default_sound_pack","continuity:default","continuity:glass_pane_culling_fix"] +incompatibleResourcePacks:[] +lastServer: +lang:fr_fr +soundDevice:"" +chatVisibility:0 +chatOpacity:1.0 +chatLineSpacing:0.0 +textBackgroundOpacity:0.5 +backgroundForChatOnly:true +hideServerAddress:false +advancedItemTooltips:true +pauseOnLostFocus:true +overrideWidth:0 +overrideHeight:0 +chatHeightFocused:1.0 +chatDelay:0.0 +chatHeightUnfocused:0.44366195797920227 +chatScale:1.0 +chatWidth:1.0 +notificationDisplayTime:1.0 +mipmapLevels:0 +useNativeTransport:true +mainHand:"right" +attackIndicator:1 +narrator:0 +tutorialStep:none +mouseWheelSensitivity:1.0 +rawMouseInput:true +glDebugVerbosity:1 +skipMultiplayerWarning:true +skipRealms32bitWarning:false +hideMatchedNames:true +joinedFirstServer:true +hideBundleTutorial:false +syncChunkWrites:true +showAutosaveIndicator:false +allowServerListing:true +onlyShowSecureChat:false +panoramaScrollSpeed:1.0 +telemetryOptInExtra:false +onboardAccessibility:false +key_key.attack:key.mouse.left +key_key.use:key.mouse.right +key_key.forward:key.keyboard.w +key_key.left:key.keyboard.a +key_key.back:key.keyboard.s +key_key.right:key.keyboard.d +key_key.jump:key.keyboard.space +key_key.sneak:key.keyboard.left.shift +key_key.sprint:key.keyboard.left.control +key_key.drop:key.keyboard.q +key_key.inventory:key.keyboard.e +key_key.chat:key.keyboard.t +key_key.playerlist:key.keyboard.tab +key_key.pickItem:key.mouse.middle +key_key.command:key.keyboard.slash +key_key.socialInteractions:key.keyboard.p +key_key.screenshot:key.keyboard.f2 +key_key.togglePerspective:key.keyboard.f5 +key_key.smoothCamera:key.keyboard.unknown +key_key.fullscreen:key.keyboard.f11 +key_key.spectatorOutlines:key.keyboard.unknown +key_key.swapOffhand:key.keyboard.f +key_key.saveToolbarActivator:key.keyboard.unknown +key_key.loadToolbarActivator:key.keyboard.x +key_key.advancements:key.keyboard.l +key_key.hotbar.1:key.keyboard.1 +key_key.hotbar.2:key.keyboard.2 +key_key.hotbar.3:key.keyboard.3 +key_key.hotbar.4:key.keyboard.4 +key_key.hotbar.5:key.keyboard.5 +key_key.hotbar.6:key.keyboard.6 +key_key.hotbar.7:key.keyboard.7 +key_key.hotbar.8:key.keyboard.8 +key_key.hotbar.9:key.keyboard.9 +key_key.worldeditcui.toggle:key.keyboard.unknown +key_key.worldeditcui.clear:key.keyboard.unknown +key_key.worldeditcui.chunk:key.keyboard.unknown +key_chunkloaders.keys.open_screen:key.keyboard.c +key_key.entityculling.toggle:key.keyboard.unknown +key_key.jade.config:key.keyboard.keypad.0 +key_key.jade.show_overlay:key.keyboard.keypad.1 +key_key.jade.toggle_liquid:key.keyboard.keypad.2 +key_key.jade.narrate:key.keyboard.keypad.5 +key_key.jade.show_details_alternative:key.keyboard.unknown +key_key.journeymap.zoom_in:key.keyboard.equal +key_key.journeymap.zoom_out:key.keyboard.minus +key_key.journeymap.minimap_type:key.keyboard.left.bracket +key_key.journeymap.minimap_preset:key.keyboard.backslash +key_key.journeymap.create_waypoint:key.keyboard.b +key_key.journeymap.toggle_waypoints:key.keyboard.z +key_key.journeymap.fullscreen_create_waypoint:key.keyboard.b +key_key.journeymap.fullscreen_chat_position:key.keyboard.c +key_key.journeymap.map_toggle_alt:key.keyboard.j +key_key.journeymap.fullscreen_waypoints:key.keyboard.n +key_key.journeymap.minimap_toggle_alt:key.keyboard.m +key_key.journeymap.fullscreen_options:key.keyboard.o +key_key.journeymap.fullscreen.north:key.keyboard.up +key_key.journeymap.fullscreen.south:key.keyboard.down +key_key.journeymap.fullscreen.east:key.keyboard.right +key_key.journeymap.fullscreen.west:key.keyboard.left +key_key.journeymap.fullscreen.disable_buttons:key.keyboard.h +key_key.modmenu.open_menu:key.keyboard.unknown +key_key.presencefootsteps.settings:key.keyboard.f10 +key_key.presencefootsteps.toggle:key.keyboard.unknown +key_iris.keybind.reload:key.keyboard.r +key_iris.keybind.toggleShaders:key.keyboard.k +key_iris.keybind.shaderPackSelection:key.keyboard.o +soundCategory_master:0.5049668874172185 +soundCategory_music:0.10915493 +soundCategory_record:0.05985915492957746 +soundCategory_weather:0.1056338028169014 +soundCategory_block:0.056338028169014086 +soundCategory_hostile:1.0 +soundCategory_neutral:0.056338028169014086 +soundCategory_player:1.0 +soundCategory_ambient:0.5070422535211268 +soundCategory_voice:1.0 +modelPart_cape:true +modelPart_jacket:true +modelPart_left_sleeve:true +modelPart_right_sleeve:true +modelPart_left_pants_leg:true +modelPart_right_pants_leg:true +modelPart_hat:true diff --git a/files/PolyMC/instances/common/mmc-pack.json b/files/PolyMC/instances/common/mmc-pack.json new file mode 100644 index 0000000..2e616e7 --- /dev/null +++ b/files/PolyMC/instances/common/mmc-pack.json @@ -0,0 +1,51 @@ +{ + "components": [ + { + "cachedName": "LWJGL 3", + "cachedVersion": "3.3.2", + "cachedVolatile": true, + "dependencyOnly": true, + "uid": "org.lwjgl3", + "version": "3.3.2" + }, + { + "cachedName": "Minecraft", + "cachedRequires": [ + { + "suggests": "3.3.2", + "uid": "org.lwjgl3" + } + ], + "cachedVersion": "1.20.4", + "important": true, + "uid": "net.minecraft", + "version": "1.20.4" + }, + { + "cachedName": "Intermediary Mappings", + "cachedRequires": [ + { + "equals": "1.20.4", + "uid": "net.minecraft" + } + ], + "cachedVersion": "1.20.4", + "cachedVolatile": true, + "dependencyOnly": true, + "uid": "net.fabricmc.intermediary", + "version": "1.20.4" + }, + { + "cachedName": "Fabric Loader", + "cachedRequires": [ + { + "uid": "net.fabricmc.intermediary" + } + ], + "cachedVersion": "0.15.7", + "uid": "net.fabricmc.fabric-loader", + "version": "0.15.7" + } + ], + "formatVersion": 1 +} diff --git a/files/PolyMC/instances/common/mods/fabric-api-0.97.0+1.20.4.jar b/files/PolyMC/instances/common/mods/fabric-api-0.97.0+1.20.4.jar new file mode 100644 index 0000000..ad3de9a Binary files /dev/null and b/files/PolyMC/instances/common/mods/fabric-api-0.97.0+1.20.4.jar differ diff --git a/files/PolyMC/instances/common/shaderpacks/ComplementaryReimagined_r5.1.1.zip b/files/PolyMC/instances/common/shaderpacks/ComplementaryReimagined_r5.1.1.zip new file mode 100644 index 0000000..67b3e4b Binary files /dev/null and b/files/PolyMC/instances/common/shaderpacks/ComplementaryReimagined_r5.1.1.zip differ diff --git a/files/PolyMC/instances/common/shaderpacks/ComplementaryUnbound_r5.1.1.zip b/files/PolyMC/instances/common/shaderpacks/ComplementaryUnbound_r5.1.1.zip new file mode 100644 index 0000000..81920e2 Binary files /dev/null and b/files/PolyMC/instances/common/shaderpacks/ComplementaryUnbound_r5.1.1.zip differ diff --git a/files/PolyMC/instances/instgroups.json b/files/PolyMC/instances/instgroups.json new file mode 100644 index 0000000..11a1e7e --- /dev/null +++ b/files/PolyMC/instances/instgroups.json @@ -0,0 +1,19 @@ +{ + "formatVersion": "1", + "groups": { + "Local": { + "hidden": false, + "instances": [ + "Clement", + "Ambre", + "Olivier" + ] + }, + "Zogg": { + "hidden": false, + "instances": [ + "Minecraft" + ] + } + } +} diff --git a/files/PolyMC/polymc.cfg b/files/PolyMC/polymc.cfg new file mode 100644 index 0000000..9d6b37a --- /dev/null +++ b/files/PolyMC/polymc.cfg @@ -0,0 +1,74 @@ +ApplicationTheme=system +AutoCloseConsole=false +AutoUpdate=true +CatStyle=BackgroundCat +CentralModsDir=mods +CloseAfterLaunch=true +ConsoleFont=Courier New +ConsoleFontSize=10 +ConsoleMaxLines=100000 +ConsoleOverflowStop=true +ConsoleWindowGeometry=AdnQywADAAAAAAB0AAAAZQAABMgAAALIAAAAdAAAAIMAAATIAAACyAAAAAAAAAAABgAAAAB0AAAAgwAABMgAAALI +ConsoleWindowState=AAAA/wAAAAD9AAAAAAAABFUAAAJGAAAABAAAAAQAAAAIAAAACPwAAAAA +EnableFeralGamemode=false +EnableMangoHud=false +FlameKeyOverride=$2a$10$bL4bIL5pUWqfcO7KQtnMReakwtfHbNKh6v1uTpKlzhwoueEJQnPnm +FlameKeyShouldBeFetchedOnStartup=false +IconTheme=pe_colored +IconsDir=icons +IgnoreJavaCompatibility=false +IgnoreJavaWizard=false +InstSortMode=Name +InstanceDir=instances +JProfilerPath= +JVisualVMPath= +JavaArchitecture= +JavaPath= +JavaRealArchitecture= +JavaTimestamp= +JavaVersion= +JsonEditor= +JvmArgs= +Language=fr +LastHostname= +LastOfflinePlayerName= +LastUsedGroupForNewInstance= +LaunchMaximized=true +MCEditPath= +MSAClientIDOverride= +MainWindowGeometry=AdnQywADAAAAAAFMAAAAhAAABIUAAALFAAABTAAAAKIAAASFAAACxQAAAAAAAAAABgAAAAFMAAAAogAABIUAAALF +MainWindowState=AAAA/wAAAAD9AAAAAAAAApsAAAHTAAAABAAAAAQAAAAIAAAACPwAAAADAAAAAQAAAAEAAAAeAGkAbgBzAHQAYQBuAGMAZQBUAG8AbwBsAEIAYQByAwAAAAD/////AAAAAAAAAAAAAAACAAAAAQAAABYAbQBhAGkAbgBUAG8AbwBsAEIAYQByAQAAAAD/////AAAAAAAAAAAAAAADAAAAAQAAABYAbgBlAHcAcwBUAG8AbwBsAEIAYQByAQAAAAD/////AAAAAAAAAAA= +MaxMemAlloc=8192 +MenuBarInsteadOfToolBar=false +MetaURLOverride= +MinMemAlloc=1024 +MinecraftWinHeight=480 +MinecraftWinWidth=854 +ModDownloadGeometry=AdnQywADAAAAAAECAAAAjwAABZsAAAMHAAABAgAAAK0AAAWbAAADBwAAAAAAAAAABgAAAAECAAAArQAABZsAAAMH +ModMetadataDisabled=false +NewInstanceGeometry=AdnQywADAAAAAAGJAAAAXAAABV4AAALvAAABiQAAAHoAAAVeAAAC7wAAAAAAAAAABgAAAAGJAAAAegAABV4AAALv +PagedGeometry=AdnQywADAAAAAAExAAAATwAABL0AAALTAAABMQAAAG0AAAS9AAAC0wAAAAAAAAAABgAAAAExAAAAbQAABL0AAALT +PastebinCustomAPIBase= +PastebinType=3 +PermGen=128 +PostExitCommand= +PreLaunchCommand= +ProxyAddr=127.0.0.1 +ProxyPass= +ProxyPort=8080 +ProxyType=Default +ProxyUser= +QuitAfterGameStop=false +RecordGameTime=true +SelectedInstance= +ShowConsole=false +ShowConsoleOnError=true +ShowGameTime=true +ShowGlobalGameTime=true +TheCat=false +UpdateChannel=59fa701c +UseDiscreteGpu=false +UseNativeGLFW=false +UseNativeOpenAL=false +UserAgentOverride= +WrapperCommand= diff --git a/files/install.cmd b/files/install.cmd new file mode 100644 index 0000000..4cc632f --- /dev/null +++ b/files/install.cmd @@ -0,0 +1,74 @@ +@echo off +SETLOCAL +REM 2024-04-08 +cls + +REM Define locale paths +set LPOLYMC=.\PolyMC +set LCOMMON=%LPOLYMC%%\instances\common + +REM Define current user PolyMC instances folder +set PROFILE=%APPDATA% +set POLYMC=%PROFILE%\PolyMC +set INSTANCES=%POLYMC%\instances + +CALL :doGlobal +CALL :doInstance Ambre +CALL :doInstance Clement +CALL :doInstance Olivier +CALL :doInstance Minecraft + +REM Exit with OK +EXIT /B 0 + +REM Proceed with PolyMC global configuration +:doGlobal + + REM Copy polymc.cfg + copy /Y %LPOLYMC%\polymc.cfg %POLYMC%\ + + REM Copy instgroups.json + copy /Y %LPOLYMC%\instances\instgroups.json %POLYMC%\instances\ + +EXIT /B 0 + +REM Proceed with PolyMC instance profile +:doInstance + + REM Define PolyMC 'instance' + set PolyMCinstance=%~1 + set INSTANCE=%INSTANCES%\%PolyMCinstance% + set MINECRAFT=%INSTANCE%\.minecraft + + REM Create instance folder + mkdir %INSTANCE% + + REM Define folders: mods, resourcepacks, shaderpacks + set CONFIG=%MINECRAFT%\config + set MODS=%MINECRAFT%\mods + set RESOURCESPACKS=%MINECRAFT%\resourcepacks + set SHADERPACKS=%MINECRAFT%\shaderpacks + + REM Create folders + mkdir %CONFIG%\jade + + REM Get current date + set NOW=%date:~6,4%%date:~3,2%%date:~0,2% + + REM Delete present files + del /F /Q %MODS%\*.* + del /F /Q %RESOURCESPACKS%\*.* + del /F /Q %SHADERPACKS%\*.* + + REM Copy new files + copy /Y %LCOMMON%\mmc-pack.json %INSTANCE% + copy /Y %LCOMMON%\minecraft\options.txt %MINECRAFT% + copy /Y %LCOMMON%\config\betterf3.json %CONFIG% + copy /Y %LCOMMON%\config\sodium-options.json %CONFIG% + copy /Y %LCOMMON%\config\sodium-extra-options.json %CONFIG% + copy /Y %LCOMMON%\config\jade.json %CONFIG%\jade + copy /Y %LCOMMON%\mods\*.* %MODS% + copy /Y %LCOMMON%\resourcepacks\*.* %RESOURCESPACKS% + copy /Y %LCOMMON%\shaderpacks\*.* %SHADERPACKS% + +EXIT /B 0 diff --git a/installer/mods.exe b/installer/mods.exe new file mode 100644 index 0000000..ca2a566 Binary files /dev/null and b/installer/mods.exe differ diff --git a/mods.nsi b/mods.nsi new file mode 100644 index 0000000..f68adf3 --- /dev/null +++ b/mods.nsi @@ -0,0 +1,390 @@ +;2024-04-14 + +;Define installer compression method and level +SetCompressor /SOLID LZMA + +;Activate CRC check +CRCCheck on + +;-------------------------------------------------------------------------------- +;Constants + +!define PRODUCT_YEAR "2024" +!define PRODUCT_VERSION "${PRODUCT_YEAR}.04.14.0" +!define PRODUCT_UUID "1e626553-03f9-47e1-a0cd-858e8effe76e" ;Change for each new product +!define PRODUCT_BRAND "Zogg" +!define PRODUCT_NAME "Mods" +!define PRODUCT_TAG ZoggMods +!define PRODUCT_URL "https://mods.zogg.fr" +!define PRODUCT_INSTALLER "mods.exe" +!define PRODUCT_UNINSTALLER "uninstall.exe" +!define PRODUCT_DESCRIPTION "PolyMC ${PRODUCT_NAME} for ${PRODUCT_BRAND} Minecraft server" +!define PRODUCT_TITLE "${PRODUCT_BRAND} ${PRODUCT_NAME}" +!define PRODUCT_COMPONENTS "Fabric mods, Ressources Packs & Shaders" + +!define PRODUCT_DEST "$LOCALAPPDATA" +!define PRODUCT_SMDIR "NSIS:StartMenuDir" + +!define PRODUCT_REGROOT HKCU +!define PRODUCT_REGPATH "${PRODUCT_BRAND}\${PRODUCT_NAME}" +!define PRODUCT_REG_INSTDIR "NSIS:InstallDir" + +!define UNINSTALL_REGROOT HKLM +!define UNINSTALL_REGPATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_REGPATH}" + +!define POLYMC_REGKEY "Software\PolyMC" +!define POLYMC_REGVAR "InstallDir" + + +;-------------------------------------------------------------------------------- +;Modern UI + + !include "MUI2.nsh" + !include "Library.nsh" + !include "x64.nsh" + !include "WinVer.nsh" + + +;-------------------------------------------------------------------------------- +;Macros + + !macro UninstallExisting exitcode uninstcommand + Push `${uninstcommand}` + Call UninstallExisting + Pop ${exitcode} + !macroend + Function UninstallExisting + Exch $1 ; uninstcommand + Push $2 ; Uninstaller + Push $3 ; Len + StrCpy $3 "" + StrCpy $2 $1 1 + StrCmp $2 '"' qloop sloop + sloop: + StrCpy $2 $1 1 $3 + IntOp $3 $3 + 1 + StrCmp $2 "" +2 + StrCmp $2 ' ' 0 sloop + IntOp $3 $3 - 1 + Goto run + qloop: + StrCmp $3 "" 0 +2 + StrCpy $1 $1 "" 1 ; Remove initial quote + IntOp $3 $3 + 1 + StrCpy $2 $1 1 $3 + StrCmp $2 "" +2 + StrCmp $2 '"' 0 qloop + run: + StrCpy $2 $1 $3 ; Path to uninstaller + StrCpy $1 161 ; ERROR_BAD_PATHNAME + GetFullPathName $3 "$2\.." ; $InstDir + IfFileExists "$2" 0 +4 + ExecWait '"$2" /S _?=$3' $1 ; This assumes the existing uninstaller is a NSIS uninstaller, other uninstallers don't support /S nor _?= + IntCmp $1 0 "" +2 +2 ; Don't delete the installer if it was aborted + Delete "$2" ; Delete the uninstaller + RMDir "$3" ; Try to delete $InstDir + RMDir "$3\.." ; (Optional) Try to delete the parent of $InstDir + Pop $3 + Pop $2 + Exch $1 ; exitcode + FunctionEnd + + +;-------------------------------------------------------------------------------- +;Variables + + Var StartMenuFolder + +;-------------------------------------------------------------------------------- +;General infos + + ;Properly display all languages + Unicode true + + ;The name of the installer + Name "${PRODUCT_TITLE}" + + ;The output file path of the installer to be created + OutFile "installer\${PRODUCT_INSTALLER}" + + ;The default installation directory + InstallDir "${PRODUCT_DEST}\${PRODUCT_REGPATH}" + + ;Registry key to check for a install directory from a previous installation + InstallDirRegKey ${PRODUCT_REGROOT} "Software\${PRODUCT_REGPATH}" "${PRODUCT_REG_INSTDIR}" + + ;Request application privileges for admin level privileges + RequestExecutionLevel admin + + ;Show the 'console' in uninstaller + ShowUninstDetails "show" + + +;-------------------------------------------------------------------------------- +;Interface Settings + + ;Warn the user before aborting the installer + !define MUI_ABORTWARNING + + ;Icon + !define MUI_ICON "datas\server-icon.ico" + !define MUI_UNICON "datas\server-icon.ico" + + ;Images + !define MUI_HEADERIMAGE + !define MUI_HEADERIMAGE_BITMAP "datas\header.bmp" ;150x57 + !define MUI_HEADERIMAGE_UNBITMAP "datas\header.bmp" ;150x57 + !define MUI_WELCOMEFINISHPAGE_BITMAP "datas\welcomefinish.bmp" ;164x314 + !define MUI_UNWELCOMEFINISHPAGE_BITMAP "datas\welcomefinish.bmp" ;164x314 + + ;Open website if checked + !define MUI_FINISHPAGE_SHOWREADME "" + !define MUI_FINISHPAGE_SHOWREADME_CHECKED + !define MUI_FINISHPAGE_SHOWREADME_TEXT "Ouvir la page web" + !define MUI_FINISHPAGE_SHOWREADME_FUNCTION openProductUrl + + !define MUI_STARTMENUPAGE_NODISABLE + !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${PRODUCT_BRAND}\${PRODUCT_NAME}" + !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" + !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${PRODUCT_BRAND}\${PRODUCT_NAME}" + !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_SMDIR}" + + +;-------------------------------------------------------------------------------- +;Installer pages + + ;Welcome page with name and version + !insertmacro MUI_PAGE_WELCOME + + ;Show a page where the user needs to accept a license + !insertmacro MUI_PAGE_LICENSE "datas\LICENSE" + + ;Show a page where the user can customize the components to be installed + !insertmacro MUI_PAGE_COMPONENTS + + ;Show a page where the user can customize the install directory + !insertmacro MUI_PAGE_DIRECTORY + + ;Start Menu Folder Page Configuration + !insertmacro MUI_PAGE_STARTMENU ZoggMods $StartMenuFolder + + ;Show a page where the progress of the install is listed + !insertmacro MUI_PAGE_INSTFILES + + ;Show final finish page + !insertmacro MUI_PAGE_FINISH + + +;-------------------------------------------------------------------------------- +;Uninstaller pages + + ;Welcome page to uninstaller + !insertmacro MUI_UNPAGE_WELCOME + + ;Show a page where the user needs to confirm the uninstall + !insertmacro MUI_UNPAGE_CONFIRM + + ;Show a page where the progress of the uninstall is listed + !insertmacro MUI_UNPAGE_INSTFILES + + ;Show final finish page + !insertmacro MUI_UNPAGE_FINISH + + +;-------------------------------------------------------------------------------- +;Translations + + !insertmacro MUI_LANGUAGE "French" + + +;-------------------------------------------------------------------------------- +;Version Tab (in the )Properties of the file) + + VIProductVersion "${PRODUCT_VERSION}" + VIAddVersionKey "ProductName" "${PRODUCT_TITLE}" + VIAddVersionKey "CompanyName" "${PRODUCT_BRAND}" + VIAddVersionKey "LegalCopyright" "${PRODUCT_BRAND} ${PRODUCT_YEAR}" + VIAddVersionKey "FileDescription" "${PRODUCT_DESCRIPTION}" + VIAddVersionKey "FileVersion" "${PRODUCT_VERSION}" + VIAddVersionKey "ProductVersion" "${PRODUCT_VERSION}" + VIAddVersionKey "LegalTrademarks" "${PRODUCT_BRAND}" + + +;-------------------------------------------------------------------------------- +;Installer Components + + ;Main component + Section "Composants" SecComposants + + ;Make this component mandatory so the user is not able to disable it + SectionIn RO + + ;Set output path to the installation directory + SetOutPath $INSTDIR + + ;Copy a file to the current SetOutPath directory + File /r "files\*.*" + + call addRegistryUninstall + WriteUninstaller "${PRODUCT_UNINSTALLER}" + + ; Add Start Menu entries + call addStartMenu + + ;Execute specific shell script + call runCommandBatch + + SectionEnd + + ;Uninstall component + Section "Uninstall" + + ;Remove files that were installed by the installer and the created uninstaller + ;Add 'RMDir /r "$INSTDIR\folder\*.*"' for every folder that was created in the installation directory + RMDir /r "$INSTDIR\*.*" + + ;Remove shortcuts if existing + call un.removeStartMenu + + ;Remove registry keys that were set by the installer + call un.removeRegistryUninstall + + ;Remove directories that were created by the installer + RMDir "$INSTDIR" + + SectionEnd + +;-------------------------------------------------------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecComposants ${LANG_FRENCH} "${PRODUCT_COMPONENTS}" + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecComposants} $(DESC_SecComposants) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + + +;-------------------------------------------------------------------------------- +;Functions + +;Add uninstall informations to registry +Function addRegistryUninstall + + ;Write the selected (either default or customized) installation path into the registry + WriteRegStr ${PRODUCT_REGROOT} "Software\${PRODUCT_REGPATH}" "${PRODUCT_REG_INSTDIR}" "$INSTDIR" + + ;Create an uninstaller that will also be recognized by Windows: + WriteRegStr ${UNINSTALL_REGROOT} "${UNINSTALL_REGPATH}" "DisplayName" "${PRODUCT_TITLE}" + WriteRegStr ${UNINSTALL_REGROOT} "${UNINSTALL_REGPATH}" "UninstallString" "$\"$INSTDIR\${PRODUCT_UNINSTALLER}$\"" + WriteRegStr ${UNINSTALL_REGROOT} "${UNINSTALL_REGPATH}" "QuietUninstallString" "$\"$INSTDIR\${PRODUCT_UNINSTALLER}$\" /S" + WriteRegDWORD ${UNINSTALL_REGROOT} "${UNINSTALL_REGPATH}" "NoModify" 1 + WriteRegDWORD ${UNINSTALL_REGROOT} "${UNINSTALL_REGPATH}" "NoRepair" 1 + WriteRegStr ${UNINSTALL_REGROOT} "${UNINSTALL_REGPATH}" "URLInfoAbout" "$\"${PRODUCT_URL}$\"" + +FunctionEnd + +;Add uninstall informations to registry +Function un.removeRegistryUninstall + + ;Remove registry keys that were set by the installer + DeleteRegKey ${UNINSTALL_REGROOT} "${UNINSTALL_REGPATH}" + + ;Remove installation path from registry + DeleteRegKey ${PRODUCT_REGROOT} "Software\${PRODUCT_REGPATH}" + +FunctionEnd + +; Add Start Menu entries +Function addStartMenu + + ;Create Start Menu shortcuts + !insertmacro MUI_STARTMENU_WRITE_BEGIN ${PRODUCT_TAG} + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" + CreateShortcut "$SMPROGRAMS\$StartMenuFolder\Uninstall ${PRODUCT_TITLE}.lnk" "$INSTDIR\${PRODUCT_UNINSTALLER}" + !insertmacro MUI_STARTMENU_WRITE_END + +FunctionEnd + +; Add Start Menu entries +Function un.removeStartMenu + + ;Remove shortcuts if existing + !insertmacro MUI_STARTMENU_GETFOLDER ${PRODUCT_TAG} $StartMenuFolder + Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall ${PRODUCT_TITLE}.lnk" + RMDir "$SMPROGRAMS\$StartMenuFolder" + +FunctionEnd + +;Open product's url +Function openProductUrl + + ExecShell "open" "${PRODUCT_URL}" + +FunctionEnd + +;Run on installer initialization +Function .onInit + setRebootFlag false + + ;Show a dialog where the user can select a supported language + !insertmacro MUI_LANGDLL_DISPLAY + + ;Check for previous installed version + call checkForPrevious + + ;Preliminary check for PolyMC installation + call checkForPolyMC +FunctionEnd + +;Execute specific shell script +Function runCommandBatch + + nsExec::ExecToLog /OEM '"$INSTDIR\install.cmd"' + Pop $0 + +FunctionEnd + +;Check for PolyMC to be installed +Function checkForPolyMC + + ClearErrors + + ;Check for registry key marker + ReadRegStr $R0 HKCU "${POLYMC_REGKEY}" "${POLYMC_REGVAR}" + IfErrors NotFound ;marker not found + + ;marker found, check for executable + IfFileExists "$R0\polymc.exe" Done + + ;PolyMC not found, offer possibility for force installation anyway + NotFound: + MessageBox MB_YESNO|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_USERICON "PolyMC est requis !$\r$\nVoulez-vous forcer l'installation ?" IDYES true IDNO false + true: + goto Done + false: + goto Exit + + ;In case of problem, open the product's url + Exit: + ExecShell "open" "${PRODUCT_URL}" + Quit + + Done: +FunctionEnd + +;Check for previous installed version +Function checkForPrevious + + ReadRegStr $0 ${UNINSTALL_REGROOT} "${UNINSTALL_REGPATH}" "UninstallString" + ${If} $0 != "" + ${AndIf} ${Cmd} `MessageBox MB_YESNO|MB_ICONQUESTION "Desinstaller la version precedente ?" /SD IDYES IDYES` + !insertmacro UninstallExisting $0 $0 + ${If} $0 <> 0 + MessageBox MB_YESNO|MB_ICONSTOP "Echec de la desinstallation, continuer quand meme ?" /SD IDYES IDYES +2 + Abort + ${EndIf} + ${EndIf} + +FunctionEnd