Class: ForgeInstallerProfileInput

Inherits:
BaseInput
  • Object
show all
Defined in:
lib/wonko_the_sane/input/forge_installer_profile_input.rb

Instance Method Summary collapse

Methods inherited from BaseInput

#logger

Constructor Details

#initialize(artifact) ⇒ ForgeInstallerProfileInput

Returns a new instance of ForgeInstallerProfileInput.



2
3
4
# File 'lib/wonko_the_sane/input/forge_installer_profile_input.rb', line 2

def initialize(artifact)
  @artifact = artifact
end

Instance Method Details

#parse(data, version) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/wonko_the_sane/input/forge_installer_profile_input.rb', line 6

def parse(data, version)
  object = JSON.parse data, symbolize_names: true
  info = object[:versionInfo]
  file = WonkoVersion.new

  file.uid = @artifact
  file.version = version
  file.time = info[:time]
  file.type = info[:type]
  file.client.mainClass = info[:mainClass]
  file.client.minecraftArguments = info[:minecraftArguments]
  file.client.assets = info[:assets]
  file.requires << Referenced.new('net.minecraft', object[:install][:minecraft])
  libraries = info[:libraries].map { |obj| MojangInput.sanitize_mojang_library obj }.flatten 1
  file.client.downloads = libraries
  file.common.folders['minecraft/mods'] = ['mc.forgemods']
  file.common.folders['minecraft/mods'] << 'mc.forgecoremods' if object[:install][:minecraft].match /[^1]*1\.[0-6]/
  file.common.folders['minecraft/coremods'] = ['mc.forgecoremods'] if object[:install][:minecraft].match /[^1]*1\.[0-6]/
  file.server.downloads = libraries
  file.server.launchMethod = 'java.mainClass'
  file.server.extra[:forgeLibraryName] = %W(net.minecraftforge:forge:#{object[:install][:minecraft]}-#{version}:universal net.minecraftforge:forge:#{object[:install][:minecraft]}-#{version} net.minecraftforge:forge:#{version}:universal net.minecraftforge:forge:#{version} net.minecraftforge:minecraftforge:#{object[:install][:minecraft]}-#{version}:universal net.minecraftforge:minecraftforge:#{object[:install][:minecraft]}-#{version} net.minecraftforge:minecraftforge:#{version}:universal net.minecraftforge:minecraftforge:#{version})

  BaseSanitizer.sanitize file,
                         MojangExtractTweakersSanitizer,
                         MojangSplitLWJGLSanitizer,
                         ForgeRemoveMinecraftSanitizer,
                         ForgeFixJarSanitizer,
                         ForgePackXZUrlsSanitizer,
                         ForgeServerMainClassSanitizer
end