Skip to content

Commit

Permalink
[v1.7.11] Merge pull request #286 from bridge-core/dev
Browse files Browse the repository at this point in the history
  • Loading branch information
solvedDev authored Oct 29, 2020
2 parents 2b683df + 9aebd89 commit 9bdf35a
Show file tree
Hide file tree
Showing 11 changed files with 118 additions and 117 deletions.
19 changes: 16 additions & 3 deletions app/renderer/src/Project/RefreshCache.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,32 @@ export async function refreshCache(refresh_rp = false, reset = true) {
let explorer = refresh_rp ? CURRENT.RPFileExplorer : CURRENT.BPFileExplorer
if (explorer === undefined) return

await explorer.loading_promise
let files = explorer.getAllFiles()
if (reset) LightningCache.init()

for (let filePath of files) {
if (FileType.get(filePath) === 'unknown') continue
const fileType = FileType.get(filePath)
if (fileType === 'unknown') continue

const fileContent = await FileSystem.loadFileAsTree(filePath)

if (fileContent instanceof JSONTree) {
await ComponentRegistry.parse(filePath, fileContent.toJSON(), false)
if (fileType === 'entity')
await ComponentRegistry.parse(
filePath,
fileContent.toJSON(),
false
)
else if (fileType === 'block')
await ComponentRegistry.parseBlock(
filePath,
fileContent.toJSON(),
false
)
await LightningCache.add(filePath, fileContent, false)
} else {
if (FileType.get(filePath) === 'function')
if (fileType === 'function')
await BridgeCore.beforeTextSave(fileContent, filePath)
}
}
Expand Down
2 changes: 1 addition & 1 deletion app/renderer/src/UI/ContextMenu/BPMore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ export default [
async () => {
let lw = new LoadingWindow()
await trash(CURRENT.PROJECT_PATH)
trigger('bridge:findDefaultPack', true)
trigger('bridge:findDefaultPack', true, true)
lw.close()
},
() => {}
Expand Down
54 changes: 20 additions & 34 deletions app/renderer/src/UI/Sidebar/Content/Explorer.vue
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ import {
LoadedProjects,
} from '../../Windows/Project/Chooser/definition'
import { loadProjects } from '../../Windows/Project/Chooser/load'
import { on } from '../../../AppCycle/EventSystem'
import { on, trigger } from '../../../AppCycle/EventSystem'
export default {
name: 'content-explorer',
Expand Down Expand Up @@ -149,7 +149,7 @@ export default {
project_select_size: window.innerWidth / 7.5,
no_projects: false,
loaded_file_defs: FileType.LIB_LOADED,
disposable: null,
disposables: [],
projectIcon: undefined,
}
},
Expand All @@ -159,9 +159,11 @@ export default {
EventBus.trigger('bridge:refreshExplorer')
)
EventBus.on('bridge:refreshExplorer', this.refresh)
EventBus.on('bridge:selectProject', this.selectProject)
this.disposables.push(on('bridge:selectProject', this.selectProject))
EventBus.on('bridge:loadedFileDefs', this.onFileDefsLoaded)
this.disposable = on('bridge:findDefaultPack', this.findDefaultProject)
this.disposables.push(
on('bridge:findDefaultPack', this.findDefaultProject)
)
window.addEventListener('resize', this.onResize)
this.findDefaultProject()
Expand All @@ -171,7 +173,8 @@ export default {
EventBus.off('bridge:refreshExplorer', this.refresh)
EventBus.off('bridge:selectProject', this.selectProject)
EventBus.off('bridge:loadedFileDefs', this.onFileDefsLoaded)
this.disposable.dispose()
this.disposables.forEach(disposable => disposable.dispose())
window.removeEventListener('resize', this.onResize)
},
computed: {
Expand Down Expand Up @@ -214,32 +217,12 @@ export default {
async refresh(force_val) {
this.projectIcon = this.loadProjectIcon()
if (this.force_project_algorithm) {
if (force_val) this.selected = force_val
console.log('[REFRESH RP] ' + this.selected)
this.loadDirectory(this.selected, true)
} else {
try {
await loadProjects()
this.items = LoadedProjects.map(
({ relativeProjectPath }) => relativeProjectPath
)
} catch (e) {
this.items = []
}
this.no_projects = false
console.log('[REFRESH BP] ' + this.selected)
if (this.items.length === 0) {
this.no_projects = true
}
this.loadDirectory(this.selected, true)
}
await this.findDefaultProject(true)
await this.loadDirectory(this.selected, true)
},
selectProject(val) {
this.loadDirectory(val, true)
async selectProject(val) {
await this.loadDirectory(val, true)
},
onFileDefsLoaded() {
this.loaded_file_defs = true
Expand Down Expand Up @@ -283,10 +266,10 @@ export default {
this.project_select_size = window.innerWidth / 7.5
},
async findDefaultProject(force_refresh = false) {
async findDefaultProject(forceRefresh = false, findBP = false) {
if (this.force_project_algorithm) {
this.selected = undefined
if (force_refresh) setRP(undefined)
if (forceRefresh) setRP(undefined)
this.selected = await this.force_project_algorithm()
} else {
try {
Expand All @@ -295,6 +278,7 @@ export default {
({ relativeProjectPath }) => relativeProjectPath
)
} catch (e) {
console.log(e)
this.items = []
}
this.no_projects = false
Expand All @@ -309,9 +293,11 @@ export default {
) {
this.no_projects = true
}
this.selected = this.selected
? this.selected
: this.findDefaultBPProject()
this.selected =
this.selected && !findBP
? this.selected
: this.findDefaultBPProject()
}
},
findDefaultBPProject() {
Expand Down
122 changes: 55 additions & 67 deletions app/renderer/src/UI/Windows/Project/Create/BP/Main.vue
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@

<p class="mt-10">
The target Minecraft version should be set to what version you
are developing for. Currently <strong>1.16.0</strong> is the
stable release and <strong>1.16.100</strong> is the beta
release.
are developing for. Currently
<strong>{{ MC_STABLE_VERSION }}</strong> is the stable release
and <strong>{{ MC_BETA_VERSION }}</strong> is the beta release.
</p>
<v-select
background-color="background"
Expand Down Expand Up @@ -89,7 +89,7 @@
<script>
import BaseWindow from '../../../Layout/Base'
import { CreateBP } from '../definition'
import fs from 'fs'
import { promises as fs } from 'fs'
import ContentWindow from '../../../Common/Content'
import { BASE_PATH } from '../../../../../constants'
import Vue from '../../../../../../main'
Expand All @@ -98,10 +98,12 @@ import Manifest from '../../../../../files/Manifest'
import uuidv4 from 'uuid/v4'
import CreateFiles from '../../../../../Project/CreateFiles'
import path from 'path'
import EventBus from '../../../../../EventBus'
import { once, trigger } from '../../../../../AppCycle/EventSystem'
import ProjectConfig from '../../../../../Project/Config'
import { getFormatVersions } from '../../../../../autoCompletions/components/VersionedTemplate/Common'
import { createInformationWindow } from '../../../Common/CommonDefinitions'
import { createErrorNotification } from '../../../../../AppCycle/Errors'
import { writeJSON } from '../../../../../Utilities/JsonFS'
export default {
name: 'CreateBP',
Expand All @@ -124,74 +126,60 @@ export default {
this.createProject()
}
},
createProject() {
async createProject() {
CreateBP.close()
let l_w = new LoadingWindow('project.').show()
let b_path = BASE_PATH
let lW = new LoadingWindow('project.').show()
window.setTimeout(() => {
fs.mkdir(
b_path + this.projectName,
{ recursive: true },
err => {
if (err && err.message.includes('already exists'))
return l_w.hide()
else if (err) {
l_w.hide()
throw err
}
try {
await fs.mkdir(
path.join(BASE_PATH, this.projectName, 'bridge'),
{
recursive: true,
}
)
} catch (err) {
if (err && err.message.includes('already exists')) {
return lW.hide()
} else if (err) {
lW.hide()
createErrorNotification(err)
return
}
}
fs.writeFile(
path.join(
b_path,
this.projectName,
'/manifest.json'
),
new Manifest(
'data',
this.registerClientData,
undefined,
this.targetVersion
).get(),
async () => {
if (
err &&
err.message.includes('already exists')
)
return l_w.hide()
if (err) {
l_w.hide()
throw err
}
await fs.writeFile(
path.join(BASE_PATH, this.projectName, '/manifest.json'),
new Manifest(
'data',
this.registerClientData,
undefined,
this.targetVersion
).get()
)
//CREATE DEFAULT FILES
await CreateFiles.createBPFiles(
path.join(b_path, this.projectName),
{
name: this.projectName,
description: this.projectDescription,
projectTargetVersion: this
.targetVersion,
}
)
//Create config file
await writeJSON(
path.join(BASE_PATH, this.projectName, 'bridge/config.json'),
{
prefix: this.projectNamespace,
formatVersion: this.targetVersion,
}
)
EventBus.trigger(
'bridge:selectProject',
this.projectName
)
this.$root.$emit('refreshExplorer')
ProjectConfig.setFormatVersion(
this.targetVersion
)
ProjectConfig.setPrefix(this.projectNamespace)
l_w.hide()
//Create default files
await CreateFiles.createBPFiles(
path.join(BASE_PATH, this.projectName),
{
name: this.projectName,
description: this.projectDescription,
projectTargetVersion: this.targetVersion,
}
)
this.reset()
}
)
}
)
}, 50)
trigger('bridge:selectProject', this.projectName)
lW.hide()
this.reset()
},
reset() {
this.projectName = ''
Expand Down
5 changes: 4 additions & 1 deletion app/renderer/src/UI/Windows/Project/Create/definition.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { createWindow } from '../../create'
import CreateRPComponent from './RP/Main.vue'
import CreateBPComponent from './BP/Main.vue'
import { MC_BETA_VERSION, MC_STABLE_VERSION } from '../../../../constants'

export const CreateRP = createWindow(CreateRPComponent, {
RPName: '',
Expand All @@ -9,10 +10,12 @@ export const CreateRP = createWindow(CreateRPComponent, {

export const CreateBP = createWindow(CreateBPComponent, {
targetVersions: [],
targetVersion: '',
targetVersion: MC_STABLE_VERSION,
projectName: '',
projectDescription: '',
projectNamespace: 'bridge',
registerClientData: false,
isFullscreen: false,
MC_BETA_VERSION,
MC_STABLE_VERSION,
})
1 change: 1 addition & 0 deletions app/renderer/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export * from '../../shared/DefaultDir'
export const BASE_PATH = BP_BASE_PATH

export const MC_BETA_VERSION = '1.16.100'
export const MC_STABLE_VERSION = '1.16.0'

export const browser_window = remote.getCurrentWindow()

Expand Down
22 changes: 17 additions & 5 deletions app/renderer/src/plugins/CustomComponents.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,16 @@ export default class ComponentRegistry {

//Save that this file is using the specific custom component inside the LightningCache

let apply_data = this.components[component_name].onApply(
component_data,
location
)
let apply_data: any = {}
try {
apply_data = this.components[component_name].onApply(
component_data,
location
)
} catch (err) {
createErrorNotification(err)
}

if (typeof apply_data !== 'object' || Array.isArray(apply_data)) {
createErrorNotification(
new Error(`Invalid data for component "${component_name}"`)
Expand Down Expand Up @@ -200,7 +206,13 @@ export default class ComponentRegistry {

if (c !== undefined) {
usedComponents.push(componentName)
const data = component.onApply(c, 'components')
let data: any = {}
try {
data = component.onApply(c, 'components')
} catch (err) {
createErrorNotification(err)
}

if (typeof data === 'object')
MASK.set(`component@${componentName}`, data)
else
Expand Down
1 change: 1 addition & 0 deletions app/renderer/src/plugins/Disposables.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { IDisposable } from '../Types/disposable'
const DisposableStore = new Map<string, IDisposable[]>()

export function set(pluginId: string, disposables: IDisposable[]) {
if (DisposableStore.has(pluginId)) clear(pluginId)
DisposableStore.set(pluginId, disposables)
}

Expand Down
2 changes: 1 addition & 1 deletion app/shared/app_version.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/**
* Current bridge. app version
*/
export default 'v1.7.10'
export default 'v1.7.11'
Loading

0 comments on commit 9bdf35a

Please sign in to comment.